web-dev-qa-db-ja.com

Qt:QMainWindowのサイズを設定する

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

24
dadod2

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);
27
zeFree

QMainWindowコンストラクターのどこかで、これを実行します。

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

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

39
muesli

QDesktopWidgetavailableGeometry(QWidget*)メソッドを使用できます。これにより、このウィジェットが現在表示されている画面のジオメトリが得られます。
例えば:

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

ここで、thisはMainWindowポインターです。これは、複数の画面を使用するときに機能します。

4
user3413918