首页 文章

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

提问于
浏览
1

我想使用QToolButton类的autorepeat功能 .

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

有任何想法吗?谢谢

2 回答

  • 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 .

相关问题