Qt-动作多次触发时打开对话框
我希望在连续多次触发某个动作时出现一个通知对话框(基本上有点像启用粘滞键)。我知道我基本上可以用Qt-动作多次触发时打开对话框,qt,qt-signals,qaction,Qt,Qt Signals,Qaction,我希望在连续多次触发某个动作时出现一个通知对话框(基本上有点像启用粘滞键)。我知道我基本上可以用connect(这个->触发器,信号(trigger()),这个,SLOT(onTrigger())来检测单个触发器,但是我怎么能检测它发生10次呢 谢谢 附注-我如何才能执行“不再显示此消息”QCheckBox?您可以通过以下方式实现插槽: void MyClass::onTrigger() { static int count = 0; if (count++ == 10) {
connect(这个->触发器,信号(trigger()),这个,SLOT(onTrigger())
来检测单个触发器,但是我怎么能检测它发生10次呢
谢谢
附注-我如何才能执行“不再显示此消息”QCheckBox?您可以通过以下方式实现插槽:
void MyClass::onTrigger()
{
static int count = 0;
if (count++ == 10) {
// show the dialog here
}
}
您需要一个外部计数器作为连接方法,否则QObject无法在开箱即用的情况下为您执行此操作。我将写下:
MyClass::MyClass(QObject *parent) : QObject(parent), m_cnt(0)
{
...
// Removed the needless this usage
connect(trigger, SIGNAL(triggered()), SLOT(onTrigger()));
...
}
void MyClass::onTrigger()
{
if (m_cnt++ == 10) {
m_dialog.show();
// or: m_dialog.exec();
}
}
我认为您缺少签名中的返回类型。请重置计数器。@user2672165,我看不出每单击10次左右就显示对话框的要求。我会小心在类方法中使用静态变量。它们在该类的所有实例中共享。