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