下载
https://gitee.com/xiaozhu0809/qt-common-standards-dialog-box/tree/master/
#include
// 1、父对象
// 2、对话框标题
// 3、默认路径,.表示当前
// 4、c++ files(*.cpp);; 文件筛选
// 返回值:返回选择的目录路径
QString sPath = QFileDialog::getOpenFileName(this,"文件对话框",".","c++ files(*.cpp);;");
// 要同时选择多个文件对话框
QStringList filename = QFileDialog::getOpenFileNames(this,"文件对话框","D:","files(*.cpp);;");
#include
#include
// 1、设置默认颜色为黄色
// 返回值 color选中的颜色
QColor color = QColorDialog::getColor(Qt::yellow);
#include
bool ok;
// ok 表示函数是否调用成功
QFont font = QFontDialog::getFont(&ok);
if(ok)
{
qDebug()<<"成功";
}
demo内部代码
void Dialog::showFileDlg()
{
// . 表示当前目录
QString sPath = QFileDialog::getOpenFileName(this,"文件对话框",".","c++ files(*.cpp);;");
m_fileLineEdit->setText(sPath);
}
void Dialog::showColorDlg()
{
QColor color = QColorDialog::getColor(Qt::yellow);
if(color.isValid())
// 设置调色板颜色
m_colorFrame->setPalette(QPalette(color));
}
void Dialog::showFontDlg()
{
bool ok;
QFont font = QFontDialog::getFont(&ok);
// 判断是否成功
if(ok)
{
m_fontLineEdit->setFont(font);
}
}
m_colorFrame->setFrameStyle(QFrame::Box);
// 可以填充背景
m_colorFrame->setAutoFillBackground(true);
bool ok;
// 1、父对象
// 2、窗体标题
// 3、对话框标题
// 4、QLineEdit::Normal 普通对话框
// 5、m_nameLabel->text() 设置默认值
// ok 函数调用是否成功
QString str = QInputDialog::getText(this,"标准字符串输入对话框","编辑姓名:",QLineEdit::Normal,m_nameLabel->text(),&ok);
if(ok&&!str.isEmpty()) // isEmpty 空就返回true
{
qDebug()<<"成功";
}
// 1、指定父窗体
// 2、设置窗体标题
// 3、设置标题
// 4、设置默认年龄
// 5、0设置最小值
// 6、120设置最大值
// 7、每次增长
// 8、函数是否调用成功
bool ok;
int age = QInputDialog::getInt(this,"标准int数据类型对话框","选择年龄",m_ageLabel->text().toUInt(),0,120,1,&ok);
if(ok)
qDebug()<<"成功";
QStringList sexList;
sexList<<"男"<<"女"<<"未知";
// 1、指定父窗体
// 2、设置窗体标题
// 3、设置标题
// 4、设置条目
// 5、0 默认选中第一个
// 6、是否可以编辑
// 7、ok是否调用成功
bool ok;
QString sexStr = QInputDialog::getItem(this,"标准条目输入对话框","选择性别:",sexList,0,false,&ok);
if(ok&&!sexStr.isEmpty())
{
qDebug()<<"成功";
}
// 1、指定父窗体
// 2、设置窗体标题
// 3、设置标题
// 4、设置默认值
// 5、0设置最小值
// 6、100设置最大值
// 7、设置精度
// 8、函数是否调用成功
bool ok;
double score = QInputDialog::getDouble(this,"标准double输入框","请打分:",m_scoreLabel->text().toDouble(),0,100,1,&ok);
if(ok)
qDebug()<<"成功";
#include
#include
#include
QProgressDialog dialog("文件复制进度", "取消", 0, 50000, this);
dialog.setWindowTitle("进度对话框"); // 设置对话框标题
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); // 这样才能显示100% 因为for少了一个数
qDebug() << "复制结束";
#include
QErrorMessage* errordlg = new QErrorMessage(this);
errordlg->setWindowTitle("错误对话框");
errordlg->showMessage("这里是出错信息");
#include
QWizardPage * QtText::createPage1()
{
QWizardPage* page = new QWizardPage;
page->setWindowTitle("介绍");
return page;
}
QWizardPage * QtText::createPage2()
{
QWizardPage* page = new QWizardPage;
page->setWindowTitle("用户选择信息");
return page;
}
QWizardPage * QtText::createPage3()
{
QWizardPage* page = new QWizardPage;
page->setWindowTitle("结束");
return page;
}
QWizard wizard(this);
wizard.setWindowTitle("向导对话框");
wizard.addPage(createPage1()); // 添加向导页面
wizard.addPage(createPage2()); // 添加向导页面
wizard.addPage(createPage3()); // 添加向导页面
wizard.exec();
// 1、指定父对象
// 2、窗体标题
// 3、对话框内容
// 4、两个按钮
// 5、默认选中
int res = QMessageBox::question(this,"问题消息框","您已打开问题消息框,是否关闭",
QMessageBox::Ok|
QMessageBox::Cancel,
QMessageBox::Ok);
switch(res)
{
case QMessageBox::Ok:
m_tipLabel->setText("问题消息框-确定");
break;
case QMessageBox::Cancel:
m_tipLabel->setText("问题消息框取消");
break;
}
// 1、指定父对象
// 2、窗体标题
// 3、对话框内容
QMessageBox::information(this,"信息提示框","这是信息提示框");
int res = QMessageBox::warning(this,"警告消息框","您有未保存的数据,是否保存",
QMessageBox::Save|
QMessageBox::Discard|
QMessageBox::Cancel,
QMessageBox::Save);
switch(res)
{
case QMessageBox::Save:
m_tipLabel->setText("警告消息框-保存");
break;
case QMessageBox::Discard:
m_tipLabel->setText("警告消息框-忽略");
break;
case QMessageBox::Cancel:
m_tipLabel->setText("警告消息框-取消");
break;
}
QMessageBox::critical(this,"错误消息框","发生大错误");
QMessageBox::aboutQt(this,"关于消息框Qt");
QMessageBox::about(this,"关于消息框","这是关于消息框");
QMessageBox customMsgBox;
customMsgBox.setWindowTitle("自定义消息对话框");
// 添加按钮
QPushButton* yes = customMsgBox.addButton("yes",QMessageBox::ActionRole);
QPushButton* no = customMsgBox.addButton("no",QMessageBox::ActionRole);
QPushButton* cancel = customMsgBox.addButton(QMessageBox::Cancel);
// 设置图标
customMsgBox.setIconPixmap(QPixmap("E:\\Users\\ljc\\Documents\\DialogTest\\1.png"));
customMsgBox.exec();
// 判断点击按钮
if(customMsgBox.clickedButton() == yes)
{
m_customLabel->setText("点击yes");
}
else if(customMsgBox.clickedButton() == no)
{
m_customLabel->setText("点击no");
}
else
{
m_customLabel->setText("点击cancel");
}