QT ToolBar 工具欄浮動狀態


想實時獲取到 QT ToolBar 工具欄浮動的狀態,以實時調整窗體的布局。 先使用查找引擎,發現找不到什么有用的文章。 只能查 QT Help,最后獲取到使用 SIGNAL topLevelChanged 可以達到目的。

於是寫了如下的代碼,沒有使用 QT IDE 集成環境的提示(失敗在這里,在自己還不熟悉 QT SIGNAL 的情況下):

connect(toolBar,SIGNAL(topLevelChanged()),this,SLOT(toolBarFloat()));

 

定義 SLOT toolBarFloat:

void MainWindow::toolBarFloat(bool topLevel)
{
    qDebug() << "toolBar floating: " << topLevel;
}

 聲明 SLOT:

public slots:
    void toolBarFloat(bool topLevel);

 

都是按 SIGNAL 的原型:

void QToolBar::topLevelChanged(bool topLevel) [signal]

 運行后發現沒有實現想要的目的,即沒有執行 MainWindow::toolBarFloat 函數。

查來查去也沒有發現什么問題,最后重寫了 connect 語句,使用了 QT IDE 的提示。完成的語句如下:

connect(toolBar,SIGNAL(topLevelChanged(bool)),this,SLOT(toolBarFloat(bool)));

 拖動工具欄浮動/停靠窗體時,在“應用程序輸出”窗體中終於看到如下的內容:

toolBar floating:  true
toolBar floating:  false

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM