在 "dialog.cpp" 文件的构造函数中添加如下代码:
```cpp
inputBtn = new QPushButton;
inputBtn->setText(tr("标准输入对话框实例"));
添加布局管理:
mainLayout->addWidget(inputBtn, 3, 0);
最后添加事件关联:
// 创建控件的对象
// 布局设计
connect(inputBtn, SIGNAL(clicked()), this, SLOT(showinputDlg()));
// 事件关联
```
其中,槽函数showinputDlg的实现代码如下:
```cpp
void Dialog::showinputDlg()
{
inputDlg = new InputDlg(this);
inputDlg->show();
}
```
标准字符串输入对话框通过QInputDialog类的静态函数getText()完成,getText()函数形式如下:
```cpp
QString getText(
QWidget* parent,
const QString& title,
const QString& label,
QLineEdit::EchoMode mode = QLineEdit::Normal,
const QString& text = QString(),
bool* ok = nullptr,
Qt::WindowFlags flags = Qt::WindowFlags()
);
```
其中,参数说明如下:
- parent:标准输入对话框的父窗口
- title:标准输入对话框的标题名
- label:标准输入对话框的标签提示
- mode:指定标准输入对话框中QLineEdit控件的输入模式
- text:标准字符串输入对话框弹出时QLineEdit控件中默认出现的文字
- ok:指示标准输入对话框的哪个按钮被触发,若为true,则表示用户单击了"OK"(确定)按钮;若为false,则表示用户单击了"Cancle"(取消)按钮。
- flags:指明标准输入对话框的窗体标识
接着上述的程序,完成"inputdlg.cpp"文件中的槽函数ChangeName的实现。具体代码如下:
```cpp
void InputDlg::ChangeName()
{
bool ok;
QString text = QInputDialog::getText(this, tr("标准字符串输入对话框"),
tr("请输入姓名:"), QLineEdit::Normal, nameLabel2->text(), &ok);
if (ok && !text.isEmpty())
nameLabel2->setText(text);
在"inputdlg.cpp"文件的开始部分添加头文件:
#include <QInputDialog>
标准条目选择对话框是通过QInputDialog类的静态函数getItem()来完成的,getItem()函数形式如下:
```cpp
QString getItem(
QWidget* parent,
const QString& title,
const QString& label,
const QStringList& items,
int current = 0,
bool editable = true,
bool* ok = nullptr,
Qt::WindowFlags flags = Qt::WindowFlags()
);
其中,参数说明如下:
- parent:标准输入对话框的父窗口
- title:标准输入对话框的标题名
- label:标准输入对话框的标签提示
- items:指定标准输入对话框中QComboBox控件显示的可选条目为一个QStringList对象。
- current:标准条目选择对话框弹出时QComboBox控件中默认显示的条目序号。
- editable:指定QComboBox控件中显示的文字是否可编辑
- ok:指示标准输入对话框的哪个按钮被触发,若ok为true,则表示用户单击了"OK"(确定)按钮;若ok为false,则表示用户单击了"Cancle"(取消)按钮。
- flags:指明标准输入对话框的窗体标识
同上,接着上述的程序,完成"inputdlg.cpp"文件中的槽函数ChangeSex()的实现。具体代码如下:
```cpp
void InputDlg::ChangeSex()
{
QStringList sexItems;
sexItems << tr("男") << tr("女");
bool ok;
QString sexItem = QInputDialog::getItem(this, tr("标准条目选择对话框"),
tr("请选择性别:"), sexItems, 0, false, &ok);
if (ok && !sexItem.isEmpty())
sexLabel2->setText(sexItem);
}
```
再次运行程序,单击"修改性别"按钮后出现对话框,可以在该对话框内选择性别,如图4.5所示。
标准整型输入对话框是通过QInputDialog类的静态函数getInt()来完成的,getInt()函数形式如下:
```cpp
int getInt(
QWidget* parent,
const QString& title,
const QString& label,
int value = 0,
int minValue = -2147483647,
int maxValue = 2147483647,
int step = 1,
bool* ok = nullptr,
Qt::WindowFlags flags = Qt::WindowFlags()
);
```
其中,参数说明如下:
- parent:标准输入对话框的父窗口
- title:标准输入对话框的标题名
- label:标准输入对话框的标签提示
- value:标准整型输入对话框弹出时QSpinBox控件中默认显示的值
- minValue:标准整型输入对话框中QSpinBox控件允许输入的最小值
- maxValue:标准整型输入对话框中QSpinBox控件允许输入的最大值
- step:标准整型输入对话框中QSpinBox控件的步长
- ok:指示标准输入对话框的哪个按钮被触发,若ok为true,则表示用户单击了"OK"(确定)按钮;若ok为false,则表示用户单击了"Cancle"(取消)按钮。
- flags:指明标准输入对话框的窗体标识
接着上述的程序,完成"inputdlg.cpp"文件中的槽函数ChangeAge()的实现。具体代码如下:
void InputDlg::ChangeAge()
{
bool ok;
int age = QInputDialog::getInt(this, tr("标准整型输入对话框"),
tr("请输入年龄:"), ageLabel2->text().toInt(), 0, 100, 1, &ok);
if (ok)
ageLabel2->setText(QString::number(age));
}
```
再次运行程序,单击"修改年龄"按钮后出现对话框,可以在该对话框内输入年龄,如图4.5所示。
标签:ok,Qt,对话框,标准,QString,cpp,操作,输入,函数 From: https://blog.csdn.net/lsh11111/article/details/142369648