在某些场景(比如说:车机系统、医疗仪器等)可能需要确保软件的全屏显示,本次探讨的是如何实现全屏与退出全屏。
实现全屏的几种方式
//<1>
this->setWindowState(this->windowState() ^ Qt::WindowFullScreen);
//<2>
showFullScreen();
//<3>
this->setWindowFlags(windowFlags() | Qt::FramelessWindowHint);//无边框
this->setWindowFlag(Qt::WindowStaysOnTopHint, true);//置顶显示
//程序所在屏幕尺寸
QRect rc;
QScreen* scr = QApplication::screenAt(QCursor::pos());
if(scr == nullptr){
int idx = QApplication::desktop()->screenNumber(this);
rc= QApplication::screens().at(idx)->availableGeometry();
}
else{
rc= scr->availableGeometry();
}
this->setGeometry(rc);
示例代码
#include <QApplication>
#include <QWidget>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QPushButton>
#include <QObject>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget* w = new QWidget();
QVBoxLayout* layout = new QVBoxLayout(w);
QHBoxLayout* layoutButtons = new QHBoxLayout;
QPushButton* buttonShowFull = new QPushButton("FullScreen");
QPushButton* buttonShowNormal = new QPushButton("Normal");
layoutButtons->addStretch(1);
layoutButtons->addWidget(buttonShowFull);
layoutButtons->addSpacing(20);
layoutButtons->addWidget(buttonShowNormal);
layoutButtons->addStretch(1);
layout->addStretch(1);
layout->addLayout(layoutButtons);
layout->addStretch(1);
QObject::connect(buttonShowFull, &QPushButton::clicked, [=](){
w->showFullScreen();
});
QObject::connect(buttonShowNormal, &QPushButton::clicked, [=](){
w->showNormal();
});
w->show();
return a.exec();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)