Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 如何使用QWidget.addAction()添加操作?_Qt - Fatal编程技术网

Qt 如何使用QWidget.addAction()添加操作?

Qt 如何使用QWidget.addAction()添加操作?,qt,Qt,在Qt中,我想使用QWidget.addAction()在小部件中添加一些操作。 我可以用QToolBar.addAction()轻松地完成它,但当我使用QWidget.addAction()时,它不起作用 如何使用QWidget.addAction() 以下是我的功能: void Reb::addActionToBar(QString *tabName, QAction *action) { //if tab exist, just add the action, else:

在Qt中,我想使用
QWidget.addAction()
在小部件中添加一些操作。 我可以用
QToolBar.addAction()
轻松地完成它,但当我使用
QWidget.addAction()
时,它不起作用

如何使用
QWidget.addAction()

以下是我的功能:

void Reb::addActionToBar(QString *tabName, QAction *action)
{
    //if tab exist, just add the action, else:

    tab_widget->addTab(new QWidget(), *tabName);
    for(int i = 0 ; i <= tab_widget->count() ; i++) {
        if(tab_widget->tabText(i) == tabName) {
            action.setParent(tab_widget->widget(i));
            tab_widget->widget(i)->addAction(action);
        }
    }
}
void Reb::addActionToBar(QString*tabName,QAction*action)
{
//如果选项卡存在,只需添加操作,否则:
tab_widget->addTab(新的QWidget(),*tabName);
对于(int i=0;i count();i++){
如果(tab_小部件->tabText(i)=tabName){
action.setParent(tab_小部件->小部件(i));
tab_widget->widget(i)->addAction(操作);
}
}
}
正如你所知,tab_小部件是一个QTabWidget。。。 我没有错误,但在选项卡中看不到我的操作。

不会将操作添加到UI中-根据右上下文菜单策略,显示小部件操作的唯一位置是在小部件的上下文菜单中

QTabWidget无法在其UI中显示操作。操作通常显示在工具栏或菜单栏中,因此需要在其中添加操作

作为旁注,无需通过指针传递QString,只需通过常量引用传递QString即可:

 void Reb::addActionToBar(const QString &tabName, QAction *action)

另外,您的代码有一个一次过的错误,请使用
icount()
而不是
i count()
来修复该错误。

您可以发布您尝试过的内容和收到的错误吗?我插入了部分代码,谢谢:)