天天看点

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

<code>#include &lt;qtgui/qguiapplication&gt;</code>

<code>#include &lt;qdebug&gt;</code>

<code>#include &lt;qscreen&gt;</code>

<code>#include "qtquick2applicationviewer.h"</code>

<code>int</code> <code>main(</code><code>int</code>

<code>argc,</code><code>char</code>

<code>*argv[])</code>

<code>{</code>

<code>    </code><code>qguiapplication app(argc, argv);</code>

<code>    </code><code>qscreen *screen=app.screens()[0];</code>

<code>    </code><code>int</code>

<code>width=screen-&gt;size().width();</code>

<code>height=screen-&gt;size().height();</code>

<code>    </code><code>qtquick2applicationviewer viewer;</code>

<code>    </code><code>viewer.setmainqmlfile(qstringliteral(</code><code>"qml/untitled2/main.qml"</code><code>));</code>

<code>    </code><code>viewer.setmaximumsize(qsize(500,500));</code>

<code>    </code><code>viewer.setminimumsize(qsize(500,500));</code>

<code>    </code><code>viewer.setflags(qt::windowclosebuttonhint);</code><code>//qt::framelesswindowhint |</code>

<code>    </code><code>viewer.setposition(width/2 - viewer.width()/2 , height/2 - viewer.height()/2 );</code>

<code>    </code><code>viewer.show();</code>

<code>    </code><code>return</code>

<code>app.exec();</code>

<code>}</code>

viewer.setmaximumsize(qsize(500,500));

viewer.setminimumsize(qsize(500,500));

viewer.setflags(qt::windowclosebuttonhint);

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

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

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

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

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

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