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

#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就能做到

原文地址:https://www.cnblogs.com/AfterTheRainOfStars/p/3702838.html