马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
一、概述
1.概述
Qt为应用程序设计提供了一些常用的标准对话框,如打开文件对话框、选择颜色对话框、信息提示和确认选择对话框、标准输入对话框等,用户无需自己设计这些常用的对话框,这样可以减少程序设计工作量。
2.实例
二、对话框范例
1.QFileDialog
1.1.打开一个文件
- void Dialog::on_openfileBtn_clicked()
- {
- QString curPath = QDir::currentPath();
- QString dlgTitle = "选择一个文件";
- QString filter = "文本文件(*.txt);;图片文件(*.jpg *.gif);;所有文件(*.*)";
- QString aFileName = QFileDialog::getOpenFileName(this,dlgTitle,curPath, filter);
- if(!aFileName.isEmpty()){
- ui->plainTextEdit->appendPlainText(aFileName);
- }
- }
复制代码 1.2.打开多个文件
- void Dialog::on_openfilesBtn_clicked()
- {//选择多个文件
- QString curPath = QDir::currentPath();
- QString dlgTitle = "选择多个文件";
- QString filter = "文本文件(*.txt);;图片文件(*.jpg *.gif);;所有文件(*.*)";
- QStringList fileList = QFileDialog::getOpenFileNames(this,dlgTitle, curPath, filter);
- for(int i = 0; i<fileList.count(); i++)
- {
- ui->plainTextEdit->appendPlainText(fileList.at(i));
- }
- }
复制代码 1.3.选择已有目次
- void Dialog::on_selectdirBtn_clicked()
- {
- QString curPath=QCoreApplication::applicationDirPath();
- QString dlgTitle = "选择一个目录";
- QString selectedDir = QFileDialog::getExistingDirectory(this, dlgTitle, curPath, QFileDialog::ShowDirsOnly);
- if(!selectedDir.isEmpty())
- ui->plainTextEdit->appendPlainText(selectedDir);
- }
复制代码 1.4.选择保存文件名
- void Dialog::on_saveasFile_clicked()
- {
- QString curPath = QCoreApplication::applicationDirPath();
- QString dlgTitle = "保存文件";
- QString filter = "h 文件(*.h);;c++文件(.cpp);;所有文件(*.*)";
- QString aFileName = QFileDialog::getSaveFileName(this, dlgTitle, curPath, filter);
- if(!aFileName.isEmpty())
- ui->plainTextEdit->appendPlainText(aFileName);
- }
复制代码 2.QColorDialog
- void Dialog::on_selectcolorBtn_clicked()
- {//选择颜色
- QPalette pal = ui->plainTextEdit->palette(); //获取现有palette,getColor需要一个初始颜色作为参数
- QColor iniColor = pal.color(QPalette::Text); //现有的文字颜色
- QColor color = QColorDialog::getColor(iniColor, this, "选择颜色");
- if(color.isValid()){
- pal.setColor(QPalette::Text, color);
- ui->plainTextEdit->setPalette(pal);
- }
- }
复制代码 3.QFontDialog
- void Dialog::on_selectfontBtn_clicked()
- {
- QFont iniFont = ui->plainTextEdit->font();
- bool ok = false; //由于getFont返回的font没有类似isValid的函数判断有效性,所以传入ok,返回true则有效
- QFont font = QFontDialog::getFont(&ok, iniFont);
- if(ok){
- ui->plainTextEdit->setFont(font);
- }
- }
复制代码 4.InputDialog标准输入对话框
4.1.输入字符串
- void Dialog::on_inputstrBtn_clicked()
- {//输入字符串
- QString dlgTitle = "输入文字对话框";
- QString txtLabel = "请输入文件名";
- QString defaultInput = "新建文件.txt";
- QLineEdit::EchoMode echoMode = QLineEdit::Normal;
- // QLineEdit::EchoMode echoMode = QLineEdit::Password;
- bool ok = false;
- QString text = QInputDialog::getText(this, dlgTitle, txtLabel,echoMode, defaultInput, &ok);
- if(ok && !text.isEmpty()){
- ui->plainTextEdit->appendPlainText(text);
- }
- }
复制代码 4.2.输入整数
- void Dialog::on_inputIntBtn_clicked()
- {//输入整数
- QString dlgTitle = "输入整数对话框";
- QString txtLabel = "设置字体大小";
- int defaultValue = ui->plainTextEdit->font().pointSize();
- int minValue = 6, maxValue = 50, stepValue = 1;
- bool ok = false;
- int inputValue = QInputDialog::getInt(this, dlgTitle, txtLabel, defaultValue, minValue, maxValue, stepValue, &ok);
- if(ok)
- {
- QFont font = ui->plainTextEdit->font();
- font.setPointSize(inputValue);
- ui->plainTextEdit->setFont(font);
- }
- }
复制代码 4.3.输入浮点数
- void Dialog::on_inputfloatBtn_clicked()
- {//输入浮点数
- QString dlgTitle = "输入浮点数对话框";
- QString txtLabel = "输入一个浮点数";
- float defaultValue = 3.13;
- float minValue = 0, maxValue = 1000;
- int decimals = 2; //小数点后的位数
- bool ok = false;
- float inputValue = QInputDialog::getDouble(this, dlgTitle, txtLabel, defaultValue, minValue, maxValue, decimals, &ok);
- if(ok)
- {
- QString str = QString::asprintf("输入了一个浮点数:%.2f", inputValue);
- ui->plainTextEdit->appendPlainText(str);
- }
- }
复制代码 4.4.条目自选输入
- void Dialog::on_entryBtn_clicked()
- {//条目选择输入
- QStringList items;
- items<<"优秀"<<"良好"<<"合格"<<"不合格";
- QString dlgTitle = "条目选择对话框";
- QString txtLabel = "请选择级别";
- int curIndex = 0; //初始选择项
- bool editable = true; //ComoBox 是否可编辑
- bool ok = false;
- QString text = QInputDialog::getItem(this, dlgTitle, txtLabel, items, curIndex, editable, &ok);
- if(ok && !text.isEmpty()){
- ui->plainTextEdit->appendPlainText(text);
- }
- }
复制代码 5.QMessageBox消息对话框
5.1.无返回值对话框范例
- //以下四种返回按钮只有ok,无需关心对话框的返回值
- void Dialog::on_informationBtn_clicked()
- {//information
- QString dlgTitle = "information消息框";
- QString strInfo = "文件已经打开,字体大小已设置";
- QMessageBox::warning(this, dlgTitle, strInfo, QMessageBox::Ok, QMessageBox::NoButton);
- }
- void Dialog::on_warningBtn_clicked()
- {//warning
- QString dlgTitle = "warning消息框";
- QString strInfo = "文件内容已经被修改";
- QMessageBox::information(this, dlgTitle, strInfo);
- }
- void Dialog::on_criticalBtn_clicked()
- {//critical
- QString dlgTitle = "warning消息框";
- QString strInfo = "文件内容已经被修改";
- QMessageBox::critical(this, dlgTitle, strInfo);
- }
- void Dialog::on_aboutBtn_clicked()
- {//about
- QString dlgTitle = "about消息框";
- QString strInfo = "我开发的数据查看软件V1.0 \n 保留所有权";
- QMessageBox::about(this, dlgTitle, strInfo);
- }
复制代码 5.2.有返回值对话框范例
- void Dialog::on_questionBtn_clicked()
- {
- QString dlgTitle = "Question消息框";
- QString strInfo="文件已被修改,是否保存修改?";
- QMessageBox::StandardButton defaultBtn = QMessageBox::NoButton;
- QMessageBox::StandardButton result;//返回选择的按钮
- result = QMessageBox::question(this, dlgTitle, strInfo, QMessageBox::Yes|QMessageBox::No|QMessageBox::Cancel, defaultBtn);
- if(result == QMessageBox::Yes)
- ui->plainTextEdit->appendPlainText("Question消息框:Yes被选择");
- else if(result == QMessageBox::No)
- ui->plainTextEdit->appendPlainText("Question消息框:No被选择");
- else if(result == QMessageBox::Cancel)
- ui->plainTextEdit->appendPlainText("Question消息框:Cancel被选择");
- else
- ui->plainTextEdit->appendPlainText("Question消息框:无选择");
- }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |