3

私は、数十のウィンドウと数百の異なる種類のウィジェットを備えた大規模な (100 + KLOC) Qt アプリを担当しています。

今日、あるユーザーから、アプリの大きなウィンドウの一部を 13 インチのラップトップのディスプレイにうまくフィットさせる方法はないかと尋ねられました。

もちろん、ウィンドウのスペース効率を高めたり、GUI を再編成してさまざまなものを表示/非表示できるようにしたり、フォントを小さくしたりする方法はありますが、彼が本当に望んでいるのは単純な方法だと思います。ウィンドウ全体を一定の割合で均一に縮小します.... AppleのExposeが行うことや、一部のVNCクライアントが行うことのような効果。

私の質問は...コードベースの大部分を変更/再設計することなく、ウィンドウ全体を x% 縮小するように Qt に指示する方法はありますか? QPainter には setScale() メソッドがあり、QGraphicsView では優れたグローバル スケーリングが可能であることはわかっていますが、私のアプリは QWidgets の階層の多様性であるため、特定の QWidget 内でスケーリングするだけでなく、階層全体をスケーリングする方法が必要になります。キャンバス。

4

2 に答える 2

0

メインプログラムと使用しているGUIについてはわかりませんが、QMainWindowに基づくGUiを使用していると仮定すると、これは機能します。

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Window w;
    w.show();

w.resize(new_width, new_height);

return a.exec();
}

ウィンドウ付き:

namespace Ui {
    class Window;
}

class Window : public QMainWindow
{
    Q_OBJECT

public:
    explicit Window(QWidget *parent = 0);
    ~Window();

private:
    Ui::Window *ui;
};

QMLを使用していると仮定すると、qmlファイルを表示する責任のあるクラスに同じメソッドがあります。

于 2012-02-09T19:36:11.327 に答える
0

スタイルシートを使用して、ウィジェットの余白と間隔を変更したり、フォントを小さく変更したりできます。それ以外の場合は、おそらく UI デザインを再考する必要があります。

于 2012-02-08T08:41:26.803 に答える