我用这条线已经禁用X按钮,在Qt的从我的对话框:如何禁用使用Qt的Alt + F4窗口关闭?
myDialog->setWindowFlags(Qt::Dialog | Qt::Desktop)
但使用此代码我无法检测Alt键 + F4:
void myClass::keyPressEvent(QKeyEvent *e)
{
if ((e->key()==Qt::Key_F4) && (e->modifiers()==Qt::AltModifier))
doSomething();
}
什么我应该做的检测Alt键 + F4或Qt中禁用它?
你已经得到了两个错误:它是'keyPressEvent(QKeyEvent * EVT)''Press'不'Pressed'和类型是不同的。但是,应用此修复程序...它运行良好。 :) – 2017-01-12 20:03:49
只是重写keyPressEvent(QKeyEvent * EVT)和留空,可能会引起其他问题,如不输入工作可能需要关键的行为,例如,当我们要允许用户通过点击回车键继续。因此,在这种特定情况下定义我们不想明确允许的密钥会更好。换句话说,最好调用BaseWidget :: keyPressEvent(evt),其中BaseWidget是继承的东西(可以是QWidget,QDialog等) – 2017-08-29 14:25:14