Qt第十四天

标准对话框

QFileDialog文件对话框
QColorDialog颜色对话框
QFontDialog字体对话框
QInputDialog输入对话框
QMessageBox消息框

dialog.h

#ifndef DIALOG_H
#define DIALOG_H


#include <QDialog>


namespace Ui {
class Dialog;
}


class Dialog : public QDialog
{
    Q_OBJECT


public:
    explicit Dialog(QWidget *parent = nullptr);
    ~Dialog();


private slots:
    void on_pushButton_clicked();


    void on_pushButton_2_clicked();


    void on_pushButton_3_clicked();


    void on_pushButton_4_clicked();


    void on_pushButton_5_clicked();


    void on_pushButton_6_clicked();


    void on_pushButton_13_clicked();


    void on_pushButton_14_clicked();


    void on_pushButton_15_clicked();


    void on_pushButton_16_clicked();






    void on_pushButton_7_clicked();


    void on_pushButton_8_clicked();


    void on_pushButton_9_clicked();


    void on_pushButton_10_clicked();


    void on_pushButton_11_clicked();


    void on_pushButton_12_clicked();


    void on_pushButton_17_clicked();


private:
    Ui::Dialog *ui;
};


#endif // DIALOG_H


dialog.cpp

#include "dialog.h"
#include "ui_dialog.h"


#include<QFileDialog>
#include<QColorDialog>
#include<QFontDialog>
#include<QLineEdit>
#include<QInputDialog>
#include<QPlainTextEdit>
#include<QMessageBox>


Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
}


Dialog::~Dialog()
{
    delete ui;
}


void Dialog::on_pushButton_clicked()//打开单个文件
{
    QString curPath=QDir::currentPath();
    QString dlgTital="选择一个文件";//设置对话框标题
    QString filter="文本文件(*.txt);;图片文件(*.jpg*.gif);;所有文件(*.*)";//设置筛选
    QString aFileName=QFileDialog::getOpenFileName(this,dlgTital,curPath,filter);
    if(!aFileName.isEmpty())
    {
        ui->plainTextEdit->appendPlainText(aFileName);
    }
}


void Dialog::on_pushButton_2_clicked()//打开多个文件
{
    QString curPath=QDir::currentPath();
    QString dlgTital="选择多个文件";//设置对话框标题
    QString filter="文本文件(*.txt);;图片文件(*.jpg*.gif);;所有文件(*.*)";//设置筛选
    QStringList aFileNames=QFileDialog::getOpenFileNames(this,dlgTital,curPath,filter);
    for(int i=0;i<aFileNames.count();i++)
    {
        ui->plainTextEdit->appendPlainText(aFileNames.at(i));
    }
}


void Dialog::on_pushButton_3_clicked()//选择已有目录
{
    QString curPath=QCoreApplication::applicationDirPath();
    QString dlgTital="选择一个目录";
    QString selectedDir=QFileDialog::getExistingDirectory(this,dlgTital,curPath,QFileDialog::ShowDirsOnly);//QFileDialog::ShowDirsOnly表示只显示目录
    if(!selectedDir.isEmpty())
    {
        ui->plainTextEdit->appendPlainText(selectedDir);
    }
}


void Dialog::on_pushButton_4_clicked()//保存文件
{
    QString curPath=QCoreApplication::applicationDirPath();
    QString dlgTital="保存文件";
    QString filter= "文本文件(*.txt);;图片文件(*.jpg*.gif);;所有文件(*.*)";//设置筛选
    QString aFileName=QFileDialog::getSaveFileName(this,dlgTital,curPath,filter);
    if(!aFileName.isEmpty())
    {
        ui->plainTextEdit->appendPlainText(aFileName);
    }
}




void Dialog::on_pushButton_5_clicked()//选择颜色
{
    QPalette pal=ui->plainTextEdit->palette();//获取现有的palette
    QString dlgTital="选择颜色";
    QColor iniColor=pal.color(QPalette::Text);//现有文字颜色
    QColor color=QColorDialog::getColor(iniColor,this,dlgTital);
    if(color.isValid())
    {
        pal.setColor(QPalette::Text,color);
        ui->plainTextEdit->setPalette(pal);
    }
}


void Dialog::on_pushButton_6_clicked()//选择字体
{
    QFont iniFont=ui->plainTextEdit->font();
    bool ok=false;
    QFont font=QFontDialog::getFont(&ok,iniFont);
    if(ok)
    {
        ui->plainTextEdit->setFont(font);
    }
}


void Dialog::on_pushButton_13_clicked()//输入字符串
{
    QString dlgTital="输入文字对话框";
    QString txtLabel="请输入文件名";
    QString defaultInput="新建文件.txt";
    QLineEdit::EchoMode echoMode=QLineEdit::Password;//密码输入
    bool ok=false;
    QString text=QInputDialog::getText(this,dlgTital,txtLabel,echoMode,defaultInput,&ok);
    if(ok&&!text.isEmpty())
    {
        ui->plainTextEdit->appendPlainText(text);
    }
}


void Dialog::on_pushButton_14_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);
    }
}


void Dialog::on_pushButton_15_clicked()//输入浮点数
{
    QString dlgTitle="输入浮点数对话框";
    QString txtLabel="输入一个浮点数";
    double defaultValue=3.13;
    double minValue=0, maxValue=10000;//范围
    int decimals=2;//小数点位数
    bool ok=false;
    double inputValue = QInputDialog::getDouble(this, dlgTitle,txtLabel,defaultValue, minValue,maxValue,decimals,&ok);
    if (ok) //确认选择
    {
        QString str=QString::asprintf("输入了一个浮点数:%.2f",inputValue);
        ui->plainTextEdit->appendPlainText(str);
    }
}


void Dialog::on_pushButton_16_clicked()//下拉列表选择
{
    QStringList items; //ComboBox 列表的内容
    items <<"优秀"<<"良好"<<"合格"<<"不合格";
    QString dlgTitle="条目选择对话框";
    QString txtLabel="请选择级别";
    int     curIndex=0; //初始选择项
    bool    editable=false; //ComboBox是否可编辑
    bool    ok=false;
    QString text = QInputDialog::getItem(this, dlgTitle,txtLabel,items,curIndex,editable,&ok);
    if (ok && !text.isEmpty())
        ui->plainTextEdit->appendPlainText(text);
}


void Dialog::on_pushButton_7_clicked()//question
{
    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消息框: 无选择");
}


void Dialog::on_pushButton_8_clicked()//information
{
    QString dlgTitle="information消息框";
    QString strInfo="文件已经打开,字体大小已设置";
    QMessageBox::information(this, dlgTitle, strInfo,QMessageBox::Ok,QMessageBox::NoButton);//缺省按钮
}


void Dialog::on_pushButton_9_clicked()//warning
{
    QString dlgTitle="warning 消息框";
    QString strInfo="文件内容已经被修改";
    QMessageBox::warning(this, dlgTitle, strInfo);
}


void Dialog::on_pushButton_10_clicked()//critical
{
    QString dlgTitle="critical消息框";
    QString strInfo="有不明程序访问网络";
    QMessageBox::critical(this, dlgTitle, strInfo);
}


void Dialog::on_pushButton_11_clicked()//about
{
    QString dlgTitle="about消息框";
    QString strInfo="我开发的数据查看软件 V2.11 \n 保留所有版权";
    QMessageBox::about(this, dlgTitle, strInfo);
}


void Dialog::on_pushButton_12_clicked()//aboutQt
{
    QString dlgTitle="aboutQt消息框";
    QMessageBox::aboutQt(this, dlgTitle);
}


void Dialog::on_pushButton_17_clicked()//清空文本框
{
    ui->plainTextEdit->clear();
}


dialog.ui
在这里插入图片描述运行结果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/theRookie1/article/details/84974542