触发 Qt 动作的常用方法是使用信号槽连接。由于我的功能不是插槽,因此还有其他方法吗?比如一些直接调用?
问问题
5654 次
3 回答
14
您可以使用 Qt 5 中的新语法将信号连接到非插槽方法QObject::connect
。它看起来像这样:
connect(action, &QAction::triggered, this, &MyClass::doSomeFunction);
在这个例子中,MyClass::doSomeFunction
不需要是一个插槽。这里有更深入的解释。
如果你真的想触发一个 QAction,你可以直接这样做,而不使用信号或槽:
action->trigger();
于 2013-02-04T16:00:26.393 回答
0
您可以添加将与信号连接的插槽,并且可以在其中调用您的函数。
于 2013-02-04T15:57:51.000 回答
0
如果在 main() 中连接,它可以是这样的:
void windowAbout(){
QMessageBox aboutMB(QMessageBox::NoIcon, "About", "This is a weather forcast !");
aboutMB.setIconPixmap(QPixmap(":/icon.ico"));
aboutMB.exec();
}
int main(){
......
QObject::connect(aboutAction, &QAction::triggered, &app, &windowAbout);
......
}
于 2016-11-16T07:24:47.063 回答