标准对话框
常见的5个对话框:消息对话框、文件对话框、字体对话框、输入对话框、颜色对话框
1、标准消息对话框
QT的QMessageBox类提供了一个模式对话框,用于通知用户或询问用户问题并接收答案。
需包含相关头文件
总的来说,标准消息对话框QMessageBox类有六种消息框。
消息严重级别:
1.1 question
QMessageBox::question(this,
tr("弹窗标题"),
tr("弹窗内容"),
QMessageBox::Ok | QMessageBox::Cancel, //添加确认键和取消键
QMessageBox::Ok);
1.2 information
Information消息框具有和Question消息框一样的参数和返回值,其使用方法和解释都是一样的。
QMessageBox::information(this,
tr("Information消息框标题"),
tr("这是Information消息框的内容。"),
QMessageBox::Ok | QMessageBox::Cancel,
QMessageBox::Ok);
1.3 warning
QMessageBox::warning(this,
tr("Warning消息框"),
tr("您修改的内容还未保存,是否要保存对文档的修改?"),
QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel,
QMessageBox::Save);
1.4 Critical
在调用时,如果不指定后两个参数,即设置按钮和设置按下时的默认按钮。系统会默认指定。(上述四个消息框都一样。)
QMessageBox::critical(this, tr("Critical消息框"), tr("这是一个Critical消息框!"));
1.5 About
QMessageBox::about(this, tr("About消息框"), tr("这是一个About消息框测试!"));
1.6 AboutQt
AboutQt消息框显示了应用程序正在使用的Qt的版本号等信息。
它只能指定标题。
QMessageBox::aboutQt(this, tr("About Qt消息框"));
2、标准文件对话框
2.1、获取文件夹
void Widget::on_pushButton_9_clicked()
{
QString paht=QFileDialog::getExistingDirectory(this,"选文件夹",
"D:/");//起始路径
if(!paht.isEmpty())
{
ui->lineEdit_7->setText(paht);
}
}
2.2、获取一个文件
void Widget::on_pushButton_10_clicked()
{
QString paht=QFileDialog::getOpenFileName(this,"选文件夹",
"D:/",//起始路径
"All File (*);;Text Files (*.txt)");//筛选条件
if(!paht.isEmpty())
{
ui->lineEdit_8->setText(paht);
}
}
2.3、获取多个文件
void Widget::on_pushButton_11_clicked()
{
QStringList fileName=QFileDialog::getOpenFileNames(this,"选文件夹",
"D:/",//起始路径
"All Files (*);;Text Files (*.txt)");//筛选条件
if(!fileName.isEmpty())
{
for(int i=0;i<fileName.size();i++)
ui->textBrowser->append(fileName[i]);
}
}
2.4、保存文件
void Widget::on_pushButton_12_clicked()
{
//保存文件,不会给你创建文件然后保存,创建文件的代码得自己写,只会给你保存文件的路径
QString paht=QFileDialog::getSaveFileName(this,"选文件夹",
"D:/",//起始路径
"All File (*);;Text Files (*.txt)");//筛选条件
if(!paht.isEmpty())
{
ui->lineEdit_10->setText(paht);
}
}
3、标准字体对话框
void Widget::on_pushButton_8_clicked()
{
bool ok;
QFont font=QFontDialog::getFont(&ok,QFont("黑体"),//默认选择字体
this,"选择字体");
if(ok)
{
ui->lineEdit_6->setText(font.key());//字体的名字
ui->lineEdit_6->setFont(font);
}
}
4、标准颜色对话框
void Widget::on_pushButton_7_clicked()
{
QColor color=QColorDialog::getColor(Qt::red,//默认选择颜色
this,
"获取颜色");
if(color.isValid())
{
ui->lineEdit_5->setText(color.name()); //是显示的十六进制(HTML形式的)
//设置背景颜色,(用样式表更方便)
QPalette pa=ui->lineEdit_5->palette();
pa.setColor(QPalette::Base,color);
ui->lineEdit_5->setPalette(pa);
}
}
5、标准输入对话框
QInputDialog 有多种输入方式,下面介绍几种常用的
1、单行字符串输入
bool ok;
QString text=QInputDialog::getText(this,"提示","输入字符串",
QLineEdit::Normal,//QLineEdit
"默认显示内容",
&ok
);
if(ok&&!text.isEmpty())
{
ui->lineEdit_4->setText(text);
}
2、整数输入
点击按钮,在弹出的窗口选择数值,点击确定,lineEdit显示对应的值
void Widget::on_pushButton_clicked()
{
bool ok;
int i = QInputDialog::getInt(this,"提示","获取数字",
15,//默认值
0,//最小值
100,//最大值
1,//步长:
&ok//用来确定是否点了 确定
);
if(ok)
{
ui->lineEdit->setText(QString("%1").arg(i));//将获取到的数字转为字符串类型,并赋值给lineEdit
}
}
3、浮点数输入
void Widget::on_pushButton_2_clicked()
{
bool ok;
double i = QInputDialog::getDouble(this,"提示","获取小数",
15.36,//默认值
0,//最小值
100,//最大值
5,//显示小数点后几位
&ok//用来确定是否点了 确定
);
if(ok)
{
ui->lineEdit_2->setText(QString("%1").arg(i));//将获取到的数字转为字符串类型,并赋值给lineEdit
}
}
4、列表框选择输入
void Widget::on_pushButton_3_clicked()
{
QStringList items;
items<<"字符串1"<<"字符串2"<<"字符串3";
bool ok;
QString item = QInputDialog::getItem(this,"提示","获取字符串",
items,//默认值
0,//默认选中第几个
true,//内容是否可修改
&ok//用来确定是否点了 确定
);
if(ok&&!item.isEmpty())
{
ui->lineEdit_3->setText(item);
}
}
5、多行文本
bool ok;
QString text=QInputDialog::getMultiLineText(this,"提示","输入多行字符串","默认显示内容",&ok);
if(ok&&!text.isEmpty())
{
ui->textEdit->setText(text);
}
标签:ok,qt,对话框,tr,ui,QMessageBox,lineEdit
From: https://www.cnblogs.com/Mr-black-7/p/16816849.html