删除QToolBar时,toolbarBreak将消失



当我执行下面的示例代码时,我首先创建两个工具栏,中间有一个分隔符,然后删除第二个工具栏。问题是,当我这样做时,工具栏Break也会消失。

当我重新初始化t2时,不再有中断。工具栏Break真的是";消失了";在这里要解决此问题,我需要在重新初始化工具栏之前调用addToolBarBreak();。但是我是否创建了以前的工具栏Break的副本?

或者我应该在删除t2之前调用removeToolbarBreak(t2)吗?

MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
auto* t1 = new QToolBar(this);
t1->setMovable(false);
t1->addAction("Hello t1 Action");
auto* t2 = new QToolBar(this);
t2->setMovable(false);
t2->addAction("Hello t2 Action");
addToolBar(t1);
addToolBarBreak();
addToolBar(t2);
delete t2;
t2 = new QToolBar(this);
t2->setMovable(false);
t2->addAction("Hello t2 Action");
// addToolBarBreak(); // fixes the problem
addToolBar(t2);
}

是的,布局会处理它!我今天自己调试了Qt代码。请参阅此处,在QToolBarAreaLayout::takeAt(int *x, int index)中,中断将被删除。

相关内容

  • 没有找到相关文章

最新更新