1

ほとんどのWidgetsinQt Creator's Designerモジュールを使用してアプリケーションを開発しました。ラップトップでの表示方法に応じて、サイズをハードコーディングしました。widgets昨日、デスクトップ(ラップトップよりも低い画面解像度)でアプリケーションを実行したとき、一部がMain Window widgets表示されず、起動時に表示さhorizontal scrollbarれ、スクロールして表示する必要がありましたwidgets。これは私のラップトップには当てはまりません。私には2つの問題があります:

  1. いくつかを使用して、すべてのウィジェット(コードによって実行時に追加されるウィジェットも含むresize factor)のサイズを変更することは可能ですか?たぶん起動時に、アプリケーションが実行されているハードウェアの画面解像度を取得し、ラップトップの解像度との比率を作成します。各ウィジェットにコードを追加せずに、この係数をすべてのウィジェットに掛けることは可能ですか?

  2. アプリケーションが実行されている画面の解像度を取得するにはどうすればよいですか?

PS:この問題を解決するための事実上の方法を知りたいのですが...ありがとうございます。

4

2 に答える 2

2

ウィジェットのサイズポリシーを管理するには、レイアウトを使用する必要があります。

Qtレイアウトは、ウィジェットに使用できるスペースの量が変更されたときにウィジェットを自動的に配置およびサイズ変更し、ウィジェットが一貫して配置され、ユーザーインターフェイス全体が引き続き使用できるようにします。」

Qtのレイアウトメカニズムに関する詳細については、この質問を確認することもできます。

QtのWebサイトには、このテーマに関する優れたドキュメントがあります。Qt Designerでのレイアウトの操作の詳細については、ここから開始できます。

于 2013-03-12T13:23:44.447 に答える
1

次のような関数を試すことができます。

resize(theDesktop-> screenGeometry()。width()* PERCENTAGE_OF_MONITOR_WIDTH_FOR_SCREEN、theDesktop-> screenGeometry()。height()* PERCENTAGE_OF_MONITOR_HEIGHT_FOR_SCREEN);

サイズ変更はQWidgetクラスのメンバー関数であり、PERCENTAGE_OF_MONITOR変数は、アプリケーションで使用するモニターのパーセンテージになります。

theDesktopのタイプはQDesktopWidgetです。

于 2013-03-12T18:54:29.210 に答える