我想使用QToolButton类的autorepeat功能。
问题是在使用QToolBar :: addAction()时会自动创建实例,而我无法找到实现它们的方法:QToolBar :: widgetForAction()在这种情况下似乎不起作用(总是返回NULL)。
有什么想法吗? 感谢
答案 0 :(得分:0)
似乎没有简单的方法。我找到的最好的是使用QObject :: findChldren:
foreach(QToolButton* pButton, pToolBar->findChildren<QToolButton*>()) {
if (pButton->defaultAction() == pTheActionIWant) {
...
}
}
答案 1 :(得分:0)
事实上,在我的情况下不会返回NULL,也许你正在做一些不同的事情。我的代码如下:
QToolButton* button = dynamic_cast<QToolButton*>(
ui.toolBar->widgetForAction(ui.action));
对我而言,它按预期工作......也许你不是在施展?如果我不进行转换,此方法返回QWidget *和我的编译器发出错误。
仅供参考,我使用的是Visual Studio 2005和Qt 4.6。