问:MainWindow窗口如何固定?
项目要求将MainWindow窗口的标题栏屏蔽。就是只响应它的关闭按钮,对于最大化和最小化都不响应,而且也不能被鼠标拖动,请问有没有什么好的办法。
答:以下代码可以达到效果,可以看做是前面几个问题的综合示例:
#include <QtGui>
#include <QtCore>
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QMainWindow window;
window.setWindowFlags(window.windowFlags()
& ~Qt::WindowMaximizeButtonHint
& ~Qt::WindowMinimizeButtonHint
);
int titleBarHeight =
QApplication::style()->pixelMetric(QStyle::PM_TitleBarHeight);
QRect rect = QApplication::desktop()->availableGeometry();
rect.setTop(rect.top() + titleBarHeight);
window.setGeometry(rect);
window.setFixedSize(window.size());
window.showMaximized();
return app.exec();
}
style()、setGeometry()、setFixedSize()方法在涉及到界面布局时经常会用到,用法比较简单,可以查阅Qt Assistant。