QT随笔5-模态对话框

话不多说直接上代码

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QColorDialog>
#include <QFileDialog>
#include <QFontDialog>
#include <QInputDialog>
#include <QMessageBox>
#include <QProgressDialog>
#include <QErrorMessage>


Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    errordlg = new QErrorMessage(this);
}

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


void Widget::on_btnColor_clicked()
{
//    QColor color = QColorDialog::getColor(Qt::red,this,tr(u8"颜色对话框"));
//    qDebug()<<"color:"<<color;

    QColorDialog dialog(Qt::red,this);//创建对象
    dialog.setOption(QColorDialog::ShowAlphaChannel);//显示
    dialog.exec();
    QColor color = dialog.currentColor();
    qDebug()<<"color:"<<color;

}

void Widget::on_btnFile_clicked()
{
    QString fileName = QFileDialog::getOpenFileName(this,tr(u8"文件对话框"),
                                          "D:",tr(u8"图片文件(* png * jpg)"));
}

void Widget::on_btnFont_clicked()
{
   bool ok;
   QFont font = QFontDialog::getFont(&ok,this);
   if(ok)
   {
       ui->btnFont->setFont(font);
   }
   else
   {
       qDebug(u8"没有选择字体");
   }
}

void Widget::on_btnInput_clicked()
{
    bool ok;
    //获取字符串
    QString string = QInputDialog::getText(this,tr(u8"输入对话框"),tr(u8"请输入用户名"),
                                           QLineEdit::Normal,tr("admin"),&ok);
    if(ok) qDebug()<<"string:"<<string;

    //获取整数
    int value = QInputDialog::getInt(this,tr(u8"输入对话框"),tr(u8"请输入-1000~1000的整数"),
                                     100,1000,-1000,10,&ok);
    if(ok) qDebug()<<"value:"<<value;

    //获取浮点数
    double dValue = QInputDialog::getDouble(this,tr(u8"输入对话框"),tr(u8"请输入-1000~1000的小数"),
                                            0.00,-1000,1000,2,&ok);
    if(ok) qDebug()<<"dValue:" <<dValue;

    //获取条目
    QStringList items;
    items<<u8"条目1"<<u8"条目2";
    QString item = QInputDialog::getItem(this,u8"输入对话框",u8"请选择一个条目",
                                         items,0,true,&ok);
    if(ok) qDebug()<<"item:"<<item;

}

void Widget::on_btnMessage_clicked()
{
    //问题对话框
    int ret1 = QMessageBox::question(this,u8"问题对话框",u8"你了解QT吗",QMessageBox::Yes,QMessageBox::No);
    if(ret1 == QMessageBox::Yes) qDebug()<<u8"问题";

    //提示对话框
    int ret2 = QMessageBox::information(this,u8"提示对话框",u8"这是QT书籍",QMessageBox::Ok);
    if(ret2 == QMessageBox::Ok) qDebug()<<u8"提示";

    //警告对话框
    int ret3 = QMessageBox::warning(this,u8"警告对话框",u8"不能提前结束",QMessageBox::Abort);
    if(ret3 == QMessageBox::Abort) qDebug()<<u8"警告";

    //错误对话框
    int ret4 = QMessageBox::critical(this,u8"错误对话框",u8"发现一个严重错误,需要关闭程序",QMessageBox::YesAll);
    if(ret4 == QMessageBox::YesAll) qDebug()<<u8"错误";

    QMessageBox::about(this,u8"帮助对话框",u8"学习永不止步");
}

void Widget::on_btnProgress_clicked()
{
    QProgressDialog dialog(u8"文件复制进度",u8"取消",0,50000,this);
    dialog.setWindowTitle(u8"进度对话框");
    dialog.setModal(Qt::WindowModal);
    dialog.show();
    for(int i=0;i<50000;i++)
    {
        dialog.setValue(i);
        QCoreApplication::processEvents();
        if(dialog.wasCanceled()) break;
    }

    dialog.setValue(50000);
    qDebug()<<u8"复制结束";
}

void Widget::on_btnError_clicked()
{
    errordlg->setWindowTitle(u8"错误消息对话框");
    errordlg->showMessage(u8"这是出错信息");
}

void Widget::on_btnGuide_clicked()
{

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值