如何在qtoolbar中的qaction上设置auto = repeat?

时间:2009-11-20 10:56:33

标签: c++ qt

我想使用QToolButton类的autorepeat功能。

问题是在使用QToolBar :: addAction()时会自动创建实例,而我无法找到实现它们的方法:QToolBar :: widgetForAction()在这种情况下似乎不起作用(总是返回NULL)。

有什么想法吗? 感谢

2 个答案:

答案 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。