0

子が追加されたときに子タブに合わせて QTabWidget を自動的にサイズ変更しようとしていますが、それができませんでした。Qt Designer を使用してフォームを作成し、次のように単一継承アプローチを使用してこれを継承しました。

class MyWidget : public QWidget
{
    Q_OBJECT

public:
    MyWidget(QWidget *parent = 0);
private:
    Ui::MyForm ui;
};

QTabWidget があり、addTab() を使用して QTabWidget にオブジェクトのインスタンスを追加しています。QTabWidget を表示すると、MyWidget インスタンスに合わせてサイズ変更されていないことに気付きました。QTabWidget インスタンスのサイズが自動的に変更されるようにするにはどうすればよいですか?

4

3 に答える 3

2

Designerでは、ウィジェットにレイアウトを追加してください。ウィジェットの背景をクリックして、レイアウトを適用するときにウィジェット全体に適用されるようにします。秘訣は、フォームが構築されているベース(親)ウィジェットには、フォーム内のアイテムだけでなく、レイアウトが必要なことです。

グリッドは一般的に非常に使いやすいです。しかし、時には他のものが優れています。Designerは使いにくい場合があり、慣れるまでに時間がかかります。基本的に、すべてのウィジェットにはおそらくレイアウトが適用されているはずです。そうしないと、奇妙なことが起こる可能性があります。

于 2009-05-12T19:28:41.230 に答える
1

これは Creator のバグだと思います (少なくとも V4.7.4 オープンソースの場合)。私の解決策は次のとおりです。

メイン プロジェクトで QTabWidget オブジェクトを作成しないでください。

独立して作成します (Qt-> Form-class を作成して)。

次に、3 つのファイル (.h、cpp、.ui) をプロジェクトにコピーし、プロジェクトに追加します。

その結果、メインウィンドウのサイズ変更に合わせてサイズが変更されます。

于 2011-12-20T14:57:53.533 に答える
0

ウィジェットを親ウィジェットに合わせるには、特定のレイアウト (グリッド、水平、垂直など) を使用する必要があります。

于 2009-05-09T18:08:38.730 に答える