尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

QT_QInputDialog类输入对话框

QT_QInputDialog类输入对话框 文章目录QT_QInputDialog类输入对话框五种静态便捷方法getText() — 获取单行文本getInt() — 获取整数getDouble() — 获取浮点数getItem() — 从下拉列表选择getMultiLineText() — 获取多行文本Qt 5.2 引入参数说明总结案例QT_QInputDialog类输入对话框QInputDialog 是 Qt 提供的一个标准输入对话框类用于从用户那里快速获取单个输入值字符串、数字或列表选项。它继承自 QDialog属于 Qt Widgets 模块无需自定义 UI 即可实现多种输入交互。头文件与引入#includeQInputDialog五种静态便捷方法QInputDialog 提供了 5 个静态方法可以直接通过类名调用无需手动创建对象getText() — 获取单行文本boolok;QString textQInputDialog::getText(this,// 父窗口输入对话框,// 标题请输入你的名字,// 提示标签QLineEdit::Normal,// 回显模式Normal正常, Password密码默认文字,// 默认值ok// 是否点击了确定);if(ok!text.isEmpty()){qDebug()用户输入了text;}将 QLineEdit::Normal 改为 QLineEdit::Password 即可实现密码输入显示为 * 号。getInt() — 获取整数boolok;intnumQInputDialog::getInt(this,输入整数,请输入年龄,18,// 默认值0,// 最小值150,// 最大值1,// 步长点上下箭头每次增减多少ok);if(ok){qDebug()年龄num;}getDouble() — 获取浮点数boolok;doublepriceQInputDialog::getDouble(this,输入价格,请输入商品价格,99.99,// 默认值0.0,// 最小值9999.0,// 最大值2,// 小数位数ok);if(ok){qDebug()价格price;}getItem() — 从下拉列表选择QStringList items;items苹果香蕉橙子葡萄;boolok;QString itemQInputDialog::getItem(this,选择水果,请选择你喜欢的水果,items,// 选项列表0,// 默认选中第0项false,// false只能选true还可以自己输入ok);if(ok!item.isEmpty()){qDebug()用户选择了item;}getMultiLineText() — 获取多行文本Qt 5.2 引入boolok;QString textQInputDialog::getMultiLineText(this,输入地址,请输入详细地址,默认地址内容,ok);if(ok!text.isEmpty()){qDebug()地址text;}参数说明总结参数说明parent父窗口通常传this控制对话框居中显示和生命周期title对话框标题栏文字label输入框上方的提示文字ok布尔指针用户点确定时为true点取消时为falsevalue/text输入框的默认值案例dialog.h#ifndefDIALOG_H#defineDIALOG_H#includeQDialog#includeQGridLayout#includeQLineEdit#includeQPushButton#includeQLabel#includeQInputDialogclassDialog:publicQDialog{Q_OBJECTpublic:Dialog(QWidget*parentnullptr);~Dialog();private:QGridLayout*glayout;QPushButton*inputStuNoBtn;QLineEdit*inputStuNoLineEdit;QPushButton*inputStuNameBtn;QLineEdit*inputStuNameLineEdit;QPushButton*inputStuSexBtn;QLineEdit*inputStuSexLineEdit;QPushButton*inputStuScoreBtn;QLineEdit*inputStuScoreLineEdit;privateslots:voidmodifyStudentNo();voidmodifyStudentSex();voidmodifyStudentName();voidmodifyStudentScore();};#endif// DIALOG_Hdialog.cpp#includedialog.hDialog::Dialog(QWidget*parent):QDialog(parent){resize(260,110);setWindowTitle(标准对话框测试);//布局glayoutnewQGridLayout(this);inputStuNoBtnnewQPushButton;inputStuNoBtn-setText(学生学号);inputStuNoLineEditnewQLineEdit(请输入学号);inputStuNoLineEdit-setReadOnly(true);inputStuNameBtnnewQPushButton;inputStuNameBtn-setText(学生姓名);inputStuNameLineEditnewQLineEdit(请输入学生明明);inputStuNameLineEdit-setReadOnly(true);inputStuSexBtnnewQPushButton;inputStuSexBtn-setText(学生性别);inputStuSexLineEditnewQLineEdit(选择性别);inputStuSexLineEdit-setReadOnly(true);inputStuScoreBtnnewQPushButton;inputStuScoreBtn-setText(学生成绩);inputStuScoreLineEditnewQLineEdit(输入成绩);inputStuScoreLineEdit-setReadOnly(true);glayout-addWidget(inputStuNoBtn,0,0);glayout-addWidget(inputStuNoLineEdit,0,1);glayout-addWidget(inputStuNameBtn,1,0);glayout-addWidget(inputStuNameLineEdit,1,1);glayout-addWidget(inputStuSexBtn,2,0);glayout-addWidget(inputStuSexLineEdit,2,1);glayout-addWidget(inputStuScoreBtn,3,0);glayout-addWidget(inputStuScoreLineEdit,3,1);connect(inputStuNoBtn,SIGNAL(clicked()),this,SLOT(modifyStudentNo()));connect(inputStuSexBtn,SIGNAL(clicked()),this,SLOT(modifyStudentSex()));connect(inputStuNameBtn,SIGNAL(clicked()),this,SLOT(modifyStudentName()));connect(inputStuScoreBtn,SIGNAL(clicked()),this,SLOT(modifyStudentScore()));}Dialog::~Dialog(){}voidDialog::modifyStudentNo(){boolisbool;QString strTextQInputDialog::getText(this,标准输入对话框,请输入学号,QLineEdit::Normal,inputStuNoLineEdit-text(),isbool);if(isbool!strText.isEmpty()){inputStuNoLineEdit-setText(strText);}}voidDialog::modifyStudentSex(){QStringList strSexItems;strSexItems男女;boolisbool;QString strSelectSexItemsQInputDialog::getItem(this,标准输入对话框,请选择性别,strSexItems,0,false,isbool);if(isbool!strSexItems.isEmpty()){inputStuSexLineEdit-setText(strSelectSexItems);}}voidDialog::modifyStudentName(){boolisbool;QString strTextQInputDialog::getText(this,标准输入对话框,请输入姓名,QLineEdit::Normal,inputStuNameLineEdit-text(),isbool);if(isbool!strText.isEmpty()){inputStuNameLineEdit-setText(strText);}}voidDialog::modifyStudentScore(){boolisbool;doublescoreQInputDialog::getDouble(this,标准输入对话框,请输入成绩,inputStuScoreLineEdit-text().toDouble(),0,100,1,isbool);if(isbool){inputStuScoreLineEdit-setText(QString::number(score));}}效果
返回列表