Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Qt设计器的工具栏布局_Qt_Layout_Qt Designer_Qtoolbar - Fatal编程技术网

使用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); //... } 对于固定的位置和尺寸,一

我使用Qt设计器设计
.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。我的工具栏有按钮和复选框,我们的目标是使所有内容都可以通过布局进行缩放。