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)将其删除;