首页 > 代码库 > qt5.2.1在linux下去除最大化和最小化按钮

qt5.2.1在linux下去除最大化和最小化按钮

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <QtGui/QGuiApplication>
#include <QDebug>
#include <QScreen>
#include "qtquick2applicationviewer.h"
 
int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);
 
    QScreen *screen=app.screens()[0];
 
    int width=screen->size().width();
    int height=screen->size().height();
 
    QtQuick2ApplicationViewer viewer;
    viewer.setMainQmlFile(QStringLiteral("qml/untitled2/main.qml"));
 
    viewer.setMaximumSize(QSize(500,500));
    viewer.setMinimumSize(QSize(500,500));
 
    viewer.setFlags(Qt::WindowCloseButtonHint);//Qt::FramelessWindowHint |
 
    viewer.setPosition(width/2 - viewer.width()/2 , height/2 - viewer.height()/2 );
    viewer.show();
    return app.exec();
}

viewer.setMaximumSize(QSize(500,500));

viewer.setMinimumSize(QSize(500,500));

viewer.setFlags(Qt::WindowCloseButtonHint);

只需要这三句就行,前两句是固定了这个窗口的大小。

经过实验发现,如果不固定窗口大小就直接设置viewer.setFlags(Qt::WindowCloseButtonHint);窗口还会显示最大化按钮(无最小化)

只有固定了窗口大小才行。

但是,如果单独只固定窗口大小,那连程序退出键都没有。

可能有更好的方法我没有发现

这是在linux上的,windows上我试过qt4.8.1的,可以直接通过setWindowFlags就能做到