2009-11-20 74 views
1

我想使用QToolButton類的自動重複功能。如何在qtoolbar的qaction上設置auto = repeat?

問題是,實例是在使用QToolBar :: addAction()時自動創建的,我無法找到達到它們的方法:QToolBar :: widgetForAction()在這種情況下似乎不起作用返回NULL)。

任何想法? 謝謝

回答

0

似乎沒有簡單的方法。我發現最好的方法是使用的QObject :: findChldren:

foreach(QToolButton* pButton, pToolBar->findChildren<QToolButton*>()) { 

    if (pButton->defaultAction() == pTheActionIWant) { 
     ... 
    } 
} 
0

事實上,在我的情況下不返回NULL,也許你正在做的事情不同。我的代碼如下:

QToolButton* button = dynamic_cast<QToolButton*>(
    ui.toolBar->widgetForAction(ui.action)); 

對我來說,它的工作原理....也許你不是在鑄造?如果我不投射,這個方法返回一個QWidget *和我的編譯器問題和錯誤。

僅供參考,我正在使用Visual Studio 2005與Qt 4.6。

+0

我使用的Qt 4.5,他們可能已經修復它。 – gregseth

相關問題