當我執行以下示例代碼時,我首先創建兩個工具列,它們之間有一個中斷,然后洗掉第二個工具列。問題是當我這樣做時,toolbarBreak 也會消失。
當我重新初始化 t2 時,不再有中斷。這里的toolbarBreak 真的“消失”了嗎?為了解決這個問題,我需要addToolBarBreak();在重新初始化工具列之前呼叫。但是我是否創建了我之前使用的 toolbarBreak 的副本?
或者我應該removeToolbarBreak(t2)在洗掉 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);
}
uj5u.com熱心網友回復:
是的,布局會照顧它!我今天自己除錯了Qt代碼。看到這里,在QToolBarAreaLayout::takeAt(int *x, int index)休息時將被洗掉。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/379729.html
