使用Qt设计器的工具栏布局
我使用Qt设计器设计使用Qt设计器的工具栏布局,qt,layout,qt-designer,qtoolbar,Qt,Layout,Qt Designer,Qtoolbar,我使用Qt设计器设计.ui文件,并在我的VS项目中编译它们。 我们有一个工具栏类,它派生自QToolbar 类初始化如下所示 MyToolBar::ToolBar(QWidget* qWidgetParent) : ToolBar(qWidgetParent), mUiToolBar(new Ui::MyToolBar()) { mUiToolBar->setupUi(this); //... } 对于固定的位置和尺寸,一
.ui
文件,并在我的VS项目中编译它们。
我们有一个工具栏类,它派生自QToolbar
类初始化如下所示
MyToolBar::ToolBar(QWidget* qWidgetParent) :
ToolBar(qWidgetParent),
mUiToolBar(new Ui::MyToolBar())
{
mUiToolBar->setupUi(this);
//...
}
对于固定的位置和尺寸,一切都可以正常工作。但是如果我开始使用布局来自动格式化,那么一切都会被破坏。在这种情况下,所有内容都位于左上角位置
你知道这种情况下会发生什么吗?在QToolbar中使用布局的正确方法是什么
编辑:我已经从我的项目中复制了代码。在此MyToolBar中,ToolBar是由ToolBar派生的,ToolBar是一个用于管理相同功能的类。工具栏是由QToolBar派生的。我不认为工具栏应该有布局。你想用它实现什么 如果在左上角看到布局中的所有内容,则表明这些子窗口小部件没有添加到布局中(使用
QLayout::addWidget(…)
),或者布局没有添加到父窗口小部件中(您的工具栏,使用QWidget::setLayout(…)
)
另外,您可能打算调用
QToolBar(qwidgetpresent),
而不是工具栏(qwidgetpresent),
我不认为工具栏应该有布局。你想用它实现什么
如果在左上角看到布局中的所有内容,则表明这些子窗口小部件没有添加到布局中(使用QLayout::addWidget(…)
),或者布局没有添加到父窗口小部件中(您的工具栏,使用QWidget::setLayout(…)
)
另外,您可能打算调用
QToolBar(qwidgetpresent),
而不是工具栏(qwidgetpresent),
您忘记调用QToolBar::addWidget()
,但您正在将小部件的父级设置为QToolBar
小部件
这将在(0,0)位置(相对于父项)创建所有小部件,但它不会按照您的预期对它们进行布局。您忘记调用
QToolBar::addWidget()
,但您正在将小部件的父项设置为QToolBar
小部件
这将在(0,0)位置(相对于父对象)创建所有小部件,但不会按照您的预期进行布局。您可以演示如何将小部件添加到
MyToolBar
?我假设MyToolbar
是从QToolBar
继承的,而不是从Toolbar
继承的?这是复制代码的错误。MyToolBar由ToolBar和QToolBar组成。我编辑了我的帖子。你能展示一下你是如何将小部件添加到MyToolBar
?我假设MyToolbar
是从QToolBar
继承的,而不是从Toolbar
继承的?这是复制代码的错误。MyToolBar由ToolBar和QToolBar组成。我编辑我的帖子。我认为最好是删除布局。我找不到良好的小部件布局依赖项。@然后,norca使用QToolBar::addWidget(…)函数将小部件添加到工具栏中。但通常QToolBar应该只有QActions,您可以使用QToolBar::addAction(…)添加QActions。我的工具栏有按钮和复选框,我们的目标是让所有内容都可以通过布局进行缩放。我认为最好是删除布局。我找不到良好的小部件布局依赖项。@然后,norca使用QToolBar::addWidget(…)函数将小部件添加到工具栏中。但通常情况下,QToolBar应该只有QActions,您可以使用QToolBar::addAction(…)添加QActions。我的工具栏有按钮和复选框,我们的目标是使所有内容都可以通过布局进行缩放。