我创建了许多QPushButtons,添加了点击信号和一个插槽名称'deneme()'到所有按钮QT DESIGNER和我想要做的事情; 当我点击任何按钮时,应该进行一些操作,最后应该禁用该按钮,但我们不知道点击了哪个按钮.我知道我可以禁用使用按钮setEnabled()和isEnabled(),但我不知道如何禁用它们.
bru*_*uno 28
如果我理解正确,你将各种连接QPushButtons到同一个插槽.在插槽内部,deneme()您想知道哪个按钮是clicked.你可以这样做:
void deneme() {
QPushButton * b = qobject_cast<QPushButton *>(sender());
if (b) {
if (b == button1) { //button1 clicked
//doSomething();
}
else {
if (b == button2) {
//doSomething();
}
}
b->setEnabled(false);
}
}
Run Code Online (Sandbox Code Playgroud)
为什么setEnabled不工作呢?参考.
所以简单的setEnabled(false); 足够.
QPushButton* button = new QPushButton(someParent);
button->setEnabled(false);
Run Code Online (Sandbox Code Playgroud)
如果在按钮的click事件上连接事件处理程序,您可能应该查看QT文档: Signal和slots
| 归档时间: |
|
| 查看次数: |
76207 次 |
| 最近记录: |