qt c++ QDialog esc怎么退出而不是except
可以通过重写QDialog的keyPressEvent(QKeyEvent *event)方法来实现按下ESC键退出对话框而不是触发异常。
以下是一个示例:
#include <QDialog>
#include <QKeyEvent>
class MyDialog : public QDialog
{
public:
MyDialog(QWidget *parent = nullptr)
: QDialog(parent)
{
}
protected:
void keyPressEvent(QKeyEvent *event) override
{
if (event->key() == Qt::Key_Escape) {
// 在这里执行退出对话框的操作
close();
} else {
QDialog::keyPressEvent(event);
}
}
};
在上面的示例中,我们重写了keyPressEvent方法,如果按下的键是ESC键,则调用close()方法关闭对话框,否则调用基类的keyPressEvent方法处理其他键盘事件。
使用这个自定义的对话框类替代QDialog类,按下ESC键时将会退出对话框而不是触发异常
原文地址: https://www.cveoy.top/t/topic/ipUe 著作权归作者所有。请勿转载和采集!