Qt 常用文件对话框及消息对话框使用

文章目录

  • 1、文件对话框
  • 2、颜色对话框
  • 3、字体对话框
  • 4、标准输入对话框
    • 4.1、标准字符串输入对话框
    • 4.2、标准int数据类型对话框
    • 4.3、标准条目输入对话框
    • 4.4、标准double输入框
  • 5、进度条对话框
  • 6、错误对话框
  • 7、向导对话框
  • 8、消息对话框
    • 8.1、问题消息框
    • 8.2、信息消息框
    • 8.3、警告消息框
    • 8.4、错误消息框
    • 8.5、关于Qt消息框
    • 8.6、关于消息对话框
    • 8.7、自定义消息对话框

下载
https://gitee.com/xiaozhu0809/qt-common-standards-dialog-box/tree/master/

Qt 常用文件对话框及消息对话框使用_第1张图片

1、文件对话框

Qt 常用文件对话框及消息对话框使用_第2张图片

#include 
// 1、父对象
// 2、对话框标题
// 3、默认路径,.表示当前
// 4、c++ files(*.cpp);; 文件筛选
// 返回值:返回选择的目录路径
QString sPath = QFileDialog::getOpenFileName(this,"文件对话框",".","c++ files(*.cpp);;");

// 要同时选择多个文件对话框
QStringList filename = QFileDialog::getOpenFileNames(this,"文件对话框","D:","files(*.cpp);;");

2、颜色对话框

Qt 常用文件对话框及消息对话框使用_第3张图片

#include 
#include 
// 1、设置默认颜色为黄色
// 返回值 color选中的颜色
QColor color = QColorDialog::getColor(Qt::yellow);

3、字体对话框

Qt 常用文件对话框及消息对话框使用_第4张图片

#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);

4、标准输入对话框

4.1、标准字符串输入对话框

Qt 常用文件对话框及消息对话框使用_第5张图片

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()<<"成功";
}

4.2、标准int数据类型对话框

Qt 常用文件对话框及消息对话框使用_第6张图片

// 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()<<"成功";

4.3、标准条目输入对话框

Qt 常用文件对话框及消息对话框使用_第7张图片

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()<<"成功";
}

4.4、标准double输入框

Qt 常用文件对话框及消息对话框使用_第8张图片

// 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()<<"成功";

5、进度条对话框

Qt 常用文件对话框及消息对话框使用_第9张图片

#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() << "复制结束";

6、错误对话框

Qt 常用文件对话框及消息对话框使用_第10张图片

#include 
QErrorMessage* errordlg = new QErrorMessage(this);
errordlg->setWindowTitle("错误对话框");
errordlg->showMessage("这里是出错信息");

7、向导对话框

Qt 常用文件对话框及消息对话框使用_第11张图片

#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();

8、消息对话框

8.1、问题消息框

Qt 常用文件对话框及消息对话框使用_第12张图片

// 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;
}

8.2、信息消息框

Qt 常用文件对话框及消息对话框使用_第13张图片


    // 1、指定父对象
    // 2、窗体标题
    // 3、对话框内容
    QMessageBox::information(this,"信息提示框","这是信息提示框");

8.3、警告消息框

Qt 常用文件对话框及消息对话框使用_第14张图片

    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;
    }

8.4、错误消息框

Qt 常用文件对话框及消息对话框使用_第15张图片


    QMessageBox::critical(this,"错误消息框","发生大错误");

8.5、关于Qt消息框

Qt 常用文件对话框及消息对话框使用_第16张图片

 
    QMessageBox::aboutQt(this,"关于消息框Qt");

8.6、关于消息对话框

Qt 常用文件对话框及消息对话框使用_第17张图片

    QMessageBox::about(this,"关于消息框","这是关于消息框");

8.7、自定义消息对话框

Qt 常用文件对话框及消息对话框使用_第18张图片

    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");
    }

你可能感兴趣的:(Qt,qt,开发语言)