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 意味着有一个布局。你想达到什么目的?

看到应该在布局中的左上角位置的所有内容表明这些子小部件未添加到布局(使用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 回答