QT对话框
1、颜色对话框
在ui界面创建一个push button,之后转到槽,选择clicked
添加头文件#include
之后添加以下代码,getcolor(设置初始颜色,指定父窗口,设置对话框标题,显示alpha透明度设置)
#include <QColorDialog>
void MyWidget::on_pushButton_clicked()
{
// QColor color=QColorDialog::getColor(Qt::red,this,tr("颜色对话框"),QColorDialog::ShowAlphaChannel);
// qDebug()<<"color:"<<color;
//分步写,跟上面两行代码的效果一样
QColorDialog dialog(Qt::red,this);
dialog.setOption(QColorDialog::ShowAlphaChannel);
dialog.setWindowTitle(tr("颜色对话框"));
dialog.exec();
QColor color=dialog.currentColor();
qDebug()<<"color:"<<color;
}
2、文件对话框
不同类型之间要用“;;”隔开
void MyWidget::on_pushButton_4_clicked()
{
// QString fileName=QFileDialog::getOpenFileName(this, tr("文件对话框"),"D:",tr("图片文件(*png *jpg);;文本文件(*txt)"));
QStringList fileName=QFileDialog::getOpenFileNames(this, tr("文件对话框"),"D:",tr("图片文件(*png *jpg)"));
qDebug()<<"fileNme:"<<fileName;
QString fileSave=QFileDialog::getExistingDirectory(this,tr("文件夹路径"),"D:");
qDebug()<<"fileSave:"<<fileSave;
// QString fileSave=QFileDialog::getSaveFileName(this,tr("保存"),"D:",tr("图片文件(*png *jpg)"));
// qDebug()<<"fileSave:"<<fileSave;
}
3、字体对话框
void MyWidget::on_pushButton_2_clicked()
{
//ok是否单机了OK按钮
bool ok;
QFont font=QFontDialog::getFont(&ok,this);
//如果单机了OK按钮,那么让字体对话框按钮使用新字体
//如果单机了cancel按钮,那么输出信息
if(ok){
ui->pushButton_2->setFont(font);
}
else{
qDebug()<<tr("没有选择字体");
}
}
4、输入对话框
getInt(父窗口,窗口标题,对话框标签显示文本,默认数值,最小值,最大值,每次变化的值,是否按下ok)
void MyWidget::on_pushButton_5_clicked()
{
bool ok;
QString string=QInputDialog::getText(this,tr("输入字符串对话框"),tr("请输入用户名"),QLineEdit::Normal,tr("admin"),&ok);
if(ok)qDebug()<<"string:"<<string;
int value1=QInputDialog::getInt(this,tr("请输入整数对话框"),tr("请输入-1000到1000的整数"),100,-1000,1000,10,&ok);
if(ok)qDebug()<<"value1:"<<value1;
double value2=QInputDialog::getDouble(this,tr("输入浮点对话框"),tr("请输入-10到10的值"),0.00,-10,10,2,&ok);
if(ok)qDebug()<<"value2:"<<value2;
QStringList items;
items<<tr("条目1")<<tr("条目2");
QString item=QInputDialog::getItem(this,tr("输入条目对话框"),tr("请选择或输入一个条目"),items,0,true,&ok);
if(ok)qDebug()<<"item:"<<item;
}
5、消息对话框
void MyWidget::on_pushButton_3_clicked()
{
int ret1=QMessageBox::question(this,tr("问题对话框"),tr("你了解QT吗?"),QMessageBox::Yes,QMessageBox::No);
if(ret1==QMessageBox::Ok)qDebug()<<tr("问题!");
int ret2=QMessageBox::information(this,tr("提示对话框"),tr("这是QT书籍!"),QMessageBox::Ok);
if(ret2==QMessageBox::Ok)qDebug()<<tr("提示!");
int ret3=QMessageBox::warning(this,QString("警告对话框!"),tr("不能提前结束!"),QMessageBox::Abort);
if(ret3==QMessageBox::Abort)qDebug()<<tr("警告");
int ret4=QMessageBox::critical(this,tr("严重错误对话框"),tr("严重错误,关闭所有文件!"),QMessageBox::YesAll);
if(ret4==QMessageBox::YesAll)qDebug()<<tr("错误");
QMessageBox::about(this,tr("关于对话框"),tr("yafeilinux致力于Qt及Qt Creator的普及工作"));
}
6、进度对话框
void MyWidget::on_pushButton_6_clicked()
{
QProgressDialog dialog(tr("文件复制进度"),tr("取消"),0,50000,this);
dialog.setWindowTitle(tr("进度对话框"));
dialog.setWindowModality(Qt::WindowModal);
dialog.show();
for(int i=0;i<50000;i++)
{
dialog.setValue(i);
QCoreApplication::processEvents();//避免界面冻结
if(dialog.wasCanceled())break;
}
dialog.setValue(50000);
qDebug()<<tr("复制结束!");
}
还没有评论,来说两句吧...