1

Qt Designer を使用してファイルを設計.uiし、VS-Project でコンパイルします。QToolbar から派生した Toolbar クラスがあります。

クラスの初期化はこんな感じ。

MyToolBar::ToolBar(QWidget* qWidgetParent) :
    ToolBar(qWidgetParent),
    mUiToolBar(new Ui::MyToolBar())
    {
        mUiToolBar->setupUi(this);
        //...
     }

すべてが固定位置とサイズで正常に機能します。しかし、自動フォーマット用のレイアウトを使い始めると、すべてが壊れてしまいます。この場合、すべてが左上の位置にあります。

この場合、何が起こるか考えていますか? QToolbar でレイアウトを使用する正しい方法は何ですか?

編集: プロジェクトからコードをコピーしました。この MyToolBar は、同じ機能を管理するためのクラスである ToolBar から派生しています。ToolBar は QToolBar から派生しています。

4

2 に答える 2

1

ToolBar が Layout を持つことを意図しているとは思いません。それで何を達成しようとしていますか?

レイアウトにあるはずのすべてが左上の位置に表示されている場合は、それらの子ウィジェットがレイアウトに追加されていないQLayout::addWidget(...)か ( を使用)、レイアウトが親ウィジェットに追加されていない (ツールバー、 を使用QWidget::setLayout(...)) ことを示しています。

QToolBar(qWidgetParent),また、おそらくの代わりにを呼び出すつもりでしToolBar(qWidgetParent),た。

于 2013-02-04T11:32:34.767 に答える
0

を呼び出すのを忘れてQToolBar::addWidget()いますが、ウィジェットの親をウィジェットに設定していQToolBarます。

これにより、すべてのウィジェットが(親に対して)(0,0)の位置に作成されますが、期待どおりにレイアウトされません。

于 2013-02-04T11:57:57.403 に答える