2013-04-29 18 views
17

私はQtを使い慣れていないので、QMainWindowのサイズを(例えば)ユーザーのデスクトップの70%に設定する方法があるかどうか疑問に思う。
ストレッチファクタを試しましたが、うまくいきませんでした。 QWidget::setFixedSizeが働いていたのですが、ピクセル番号でしかないと思います。Qt:QMainWindowのサイズを設定する

+1

は、このリンクを参照してください。 そして、あなたはそれの70%を計算することができます。 –

+0

amirは答えとして投稿します。 – UmNyobe

+0

大丈夫私はこれを試してみます:) – dadod2

答えて

19

Amir easに感謝します。問題は解決された。ここではそのためのコードです:

#include <QDesktopWidget> 
#include <QMainWindow> 
... 
QDesktopWidget dw; 
MainWindow w; 
... 
int x=dw.width()*0.7; 
int y=dw.height()*0.7; 
w.setFixedSize(x,y); 
+2

これはマルチモニターのセットアップにはあまり効果がありません。 – chwi

+2

@Wilhelmsen:この質問の答えのように 'QDesktiopWidget :: primaryScreen()'を使うことができます:http://stackoverflow.com/questions/17893328/qt-getting-the-screen-resolution-without-the-extended -モニター – vsz

4

あなたはQDesktopWidgetavailableGeometry(QWidget*)方法を使用することができ、これは、このウィジェットは、現在オンになっていることをあなたのスクリーンの形状を与えます。例えば
thisはメイン・ウィンドウポインタで

QRect screenSize = desktop.availableGeometry(this); 
this->setFixedSize(QSize(screenSize.width * 0.7f, screenSize.height * 0.7f)); 

。 これは複数の画面を使用する場合に機能します。

28

どこかQMainWindowのコンストラクタで、次の操作を行います。

resize(QDesktopWidget().availableGeometry(this).size() * 0.7);

これを使用可能な画面スペースの70%にウィンドウのサイズを変更します。

関連する問題