QDialog中setAutoDefault找不到标识符
时间: 2024-02-18 16:58:59 浏览: 33
如果您在使用Qt版本低于5.2的情况下,可能会出现找不到setAutoDefault()函数的情况。这是因为该函数是在Qt 5.2中引入的。
在这种情况下,您可以使用QPushButton的setDefault()函数来设置默认按钮,并将QDialog的默认按钮设置为空,以禁用自动默认按钮功能。示例代码如下:
```cpp
#include <QDialog>
#include <QKeyEvent>
#include <QPushButton>
class MyDialog : public QDialog {
public:
explicit MyDialog(QWidget *parent = nullptr) : QDialog(parent) {
QPushButton *defaultButton = new QPushButton(tr("OK"), this);
defaultButton->setDefault(true);
setDefaultButton(nullptr);
}
protected:
void keyPressEvent(QKeyEvent *event) override {
if (event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) {
event->ignore();
} else {
QDialog::keyPressEvent(event);
}
}
};
```
这里我们创建了一个名为"defaultButton"的QPushButton,并将其设置为默认按钮。然后我们调用setDefaultButton(nullptr)将QDialog的默认按钮设置为空来禁用自动默认按钮功能。最后,我们重写了keyPressEvent()事件处理函数,以便在按下Enter键时忽略该事件。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)