QT对话框

1、颜色对话框

在ui界面创建一个push button,之后转到槽,选择clicked

添加头文件#include <QColorDialog>

之后添加以下代码,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("复制结束!");
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值