Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 全屏小部件_C++_Linux_Qt_Widget_Fullscreen - Fatal编程技术网

C++ 全屏小部件

C++ 全屏小部件,c++,linux,qt,widget,fullscreen,C++,Linux,Qt,Widget,Fullscreen,如何使我的小部件全屏显示?我试过这样的方法: void MainWindow::SetFullScreen() { // Make our window without panels this->setWindowFlags( Qt::FramelessWindowHint | Qt::Tool | Qt::WindowStaysOnTopHint ); // Resize refer to desktop this->resize( QApplica

如何使我的小部件全屏显示?我试过这样的方法:

void MainWindow::SetFullScreen()
{
    // Make our window without panels
    this->setWindowFlags( Qt::FramelessWindowHint | Qt::Tool | Qt::WindowStaysOnTopHint );
    // Resize refer to desktop
    this->resize( QApplication::desktop()->size() );

    this->setFocusPolicy( Qt::StrongFocus );
    this->setAttribute(Qt::WA_QuitOnClose, true);

    qApp->processEvents();
    show();
    this->setFocus();
}
但小部件并没有覆盖在系统面板上。还有别的想法吗


OS:Linux

QWidget::showFullScreen()
是您所需要的—在我的项目中在Linux+Windows下工作多年—但请注意,此函数不应该有两次调用(例如,第一次调用
QMainWindo->showFullScreen()
,然后是
MyWidget->->showFullScreen()

再见,
Chris

此代码允许您通过双击设置全屏,并通过再次双击返回正常视图

void myWidget::mouseDoubleClickEvent(QMouseEvent *e) {
  QWidget::mouseDoubleClickEvent(e);
  if(isFullScreen()) {
     this->setWindowState(Qt::WindowMaximized);
  } else {
     this->setWindowState(Qt::WindowFullScreen);
  }
}

除非“MyWidget”是另一个窗口,否则MyWidget->showFullScreen()不会做任何事情。使用XRandr、Eyefinity或Xinerama进行多屏幕设置如何?这是否正常工作?多个屏幕应该可以工作-但是默认情况下showFullscreen()只使用一个屏幕-但是您可以确定整个桌面的大小(包括多个监视器/屏幕)并手动设置几何体…全屏工作,但我的窗口周围有一个白色框架-如何删除它?在我的例子中,白色框架来自中央小部件中使用的布局管理器中的边框。使用-layout->setContentsMargins(0,0,0,0)将其删除;