天天看點

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