Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/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
C++ 如何设置显示QToolBar的行?_C++_Qt - Fatal编程技术网

C++ 如何设置显示QToolBar的行?

C++ 如何设置显示QToolBar的行?,c++,qt,C++,Qt,我想问一下,是否有人知道如何在两行中显示两个Qtoolbar,一行在另一行之上?我找到了QStyleOptionToolBar类,但我不知道如何使用它 用鼠标拖动一个工具栏并将其置于另一个工具栏的下方很容易,所以我认为必须有一种方法可以从源代码中实现这一点 任何暗示都将不胜感激 克劳斯我认为当你添加两个工具栏时,如果你把它们放在同一个区域,它们会自动堆叠: QMainWindow *mainWin = get_main(); // however you get it mainWin->a

我想问一下,是否有人知道如何在两行中显示两个Qtoolbar,一行在另一行之上?我找到了QStyleOptionToolBar类,但我不知道如何使用它

用鼠标拖动一个工具栏并将其置于另一个工具栏的下方很容易,所以我认为必须有一种方法可以从源代码中实现这一点

任何暗示都将不胜感激


克劳斯

我认为当你添加两个工具栏时,如果你把它们放在同一个区域,它们会自动堆叠:

QMainWindow *mainWin = get_main(); // however you get it
mainWin->addToolBar(Qt::TopToolBarArea, new QToolBar);
mainWin->addToolBar(Qt::TopToolBarArea, new QToolBar);

这将产生两个工具栏,都位于顶部。

尝试在添加两个工具栏之间调用QMainWindow::addToolBarBreak(Qt::ToolBarArea)。

如果希望工具栏位于两行中,应按以下方式执行:

firstToolbar = new QToolBar(this);
secondToolbar = new QToolBar(this);

addToolBar(Qt::TopToolBarArea, firstToolbar);    
addToolBarBreak();
addToolBar(Qt::TopToolBarArea, secondToolbar);   

addToolBarBreak接受Qt::ToolBarArea,因此您可以指定要为哪个区域添加中断。默认情况下,它是Qt::TopToolBarArea。

谢谢!我已经试过了,它将两个工具栏放在一行中,但是我想在顶部两行显示两个工具栏,一行在另一行的下面。即使第二个工具栏太大,不再适合mainWin的宽度,它也不会自动推到第二行,但会被剪切,并且不会完全显示。Qt的文档不清楚如何将工具栏显式设置到第二行,我发现的唯一提示是QStyleOptionToolBar,其中有放置工具栏的选项,但我不了解如何使用此类…非常感谢,就这样!我以为我以前试过,但显然不是。。。我一定是在QMainWindow文档中遗漏了它。。。太多的深夜节目我想。。。