我希望在连续多次触发动作时出现通知对话框(所以基本上有点像StickyKeys的启用方式)。我知道我基本上可以connect(this->trigger, SIGNAL(triggered()), this, SLOT(onTrigger()))
来检测单个触发器,但是如何检测它何时发生10次?
感谢。
P.S - 我怎么能再做一次"不再显示这条消息" QCheckBox?
答案 0 :(得分:2)
您可以通过以下方式实现广告位:
void MyClass::onTrigger()
{
static int count = 0;
if (count++ == 10) {
// show the dialog here
}
}
答案 1 :(得分:0)
你需要一个外部计数器作为连接方法,或者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();
}
}