我有一个简单的GUI:
当单击QPushButton时,将显示一个数字(例如11) (我使用QLCDnumber )。当再次单击时,将显示另一个数字(例如10)。
我的目标是为此使用QAbstractButton::toggled ( bool )特性。
正如我所了解的,适当的信号插槽连接可能如下所示:
connect(ui.startstopButton, SIGNAL(toggled(bool)), thread, SLOT(start()));(我还使用线程,但它们并不是问题所在)
我的问题:在我的信号插槽语句中,“按钮切换”(= true)和“按钮没有切换”(ckecked = false)有什么区别?
我使用了像SIGNAL(toggled(bool = true))、SIGNAL(toggled(bool checked = true))或SIGNAL(toggled(true))这样的变体,但两者都不起作用。我总是收到调试器消息:
Object::connect: No such signal QPushButton::toggled(bool = true) in testthread.cpp:15
Object::connect: (sender name: 'startstopButton')我肯定已经启用了按钮的setCheckable。
发布于 2013-03-18 10:19:14
信号只是toggled(bool),接收端也有一个bool参数:
connect(ui.startstopButton, SIGNAL(toggled(bool)), thread, SLOT(start(bool)));这样,切换信号发送的布尔值,将由插槽接收。在槽函数中,可以检查接收到的布尔值是否为真。
这里假设线程: start ()是一些实际编写的函数,如果没有,则创建一个新的槽,它将检查布尔值,然后启动线程。
connect(ui.startstopButton, SIGNAL(toggled(bool)), threadStarter, SLOT(start(bool)));发布于 2013-03-18 10:21:45
你做不到。相反,您可以将它传递给您的自定义插槽:
void checkIt(bool checked) // This is a slot
{
}
// ...
connect(ui.startstopButton, SIGNAL(toggled(bool)), thread, SLOT(checkIt(bool)));https://stackoverflow.com/questions/15474297
复制相似问题