Qt 03对话框

本文详细介绍了如何在Qt应用中使用QDialog对话框,包括文件、消息、输入、颜色和字体选择对话框的创建与处理,以及通过信号槽机制绑定按钮点击事件实现相应功能。
摘要由CSDN通过智能技术生成

0.绑定同一个槽函数

基类都是QDialog
笔记中都是通过按钮触发对话框
在这里插入图片描述

connect(ui->btnFile,&QPushButton::clicked,this,&Widget::dialogShow);
connect(ui->btnColor,&QPushButton::clicked,this,&Widget::dialogShow);
connect(ui->btnFont,&QPushButton::clicked,this,&Widget::dialogShow);
connect(ui->btnMsg,&QPushButton::clicked,this,&Widget::dialogShow);
connect(ui->btnInput,&QPushButton::clicked,this,&Widget::dialogShow);
//五个按钮同时同时绑定一个槽函数,槽函数中判断信号来实现对应功能

通过静态方法强转

为什么要强转:
    connect函数的返回值是QObject *类型的,而按钮(对象)是QPushButton *类型的,
    一个槽函数就要判断是哪一个按钮触发
通过静态方法强转:
      QPushButton *b=static_cast<QPushButton *>(sender());
          将QObject * 强转为QPushButton *sender();返回当前槽函数信号的触发者对象首地址

1.文件对话框—

#include <QFileDialog>

getOpenFileNames():
     QStringList files=QFileDialog::getOpenFileNames();    //默认打开当前项目的bulid目录
     QStringList files=QFileDialog::getOpenFileNames(this,"源文件","../;",
                                                   "All(*);;源文件(*.c *.cpp);;头文件(*.h)");
    arg1:指定父对象  arg2:对话框标题    arg3:工作路径    arg4:筛选过滤文件

getSaveFileName():
    保存文件

isEmpty(); 判空

size():求元素个数(大小)<==>lenth();

files.at(i)<==>files[i]

append():在末尾追加数据,自动添加每行的换行符
if(b==ui->btnFile)
    {
         qDebug()<<"file...";
         QStringList files=QFileDialog::getOpenFileNames(this,"源文件","../;",
                                                         "All(*);;源文件(*.c *.cpp);;头文件(*.h)");
         if(files.isEmpty())
         {
             qDebug()<<"未选择文件";
             return ;
         }
         qDebug()<<files;
         for(int i=0;i<files.size();i++)
            ui->textEdit->append(files.at(i));
    }

2.消息对话框—

#include <QMessageBox>

warning:  警告消息对话框
    QMessageBox::warning(this,"警告","操作错误");
                        对象   title   显示的信息
    warning返回按钮(消息对话框的按钮)编号,标准按钮返回标准编码,自定义按钮返回按钮序号012....
    标准按钮:
        QMessageBox::warning(this,"警告","错误警告",QMessageBox::Yes,QMessageBox::No);
    自定义按钮:
        QMessageBox::warning(this,"警告","错误警告","确定","取消");
    
critical:
    和上面同理;
    QMessageBox::critical(this,"错误","操作错误",QMessageBox::Yes , QMessageBox::No);
    QMessageBox::critical(this,"错误","操作错误",QMessageBox::Yes | QMessageBox::No);        
question:
    和上面同理;
information:
    和上面同理;
if(b==ui->btnMsg)
    {
         qDebug()<<"msg...";
         QMessageBox::warning(this,"警告","操作错误");
         QMessageBox::critical(this,"错误","你滴错误大大滴",QMessageBox::Ok | QMessageBox::No);
         int ret=QMessageBox::critical(this,"错误","你在干神魔?","yes","no");
         if(ret==0)
         {
             qDebug() << "yes";
         }else if(ret==1){
             qDebug()<< "no";
         }
    }

3.输入对话框—

#include <QInputDialog>
输入:
    QInputDialog::getText();
    QInputDialog::getText(this,"输入","请输入密码");    
    arg2:title    arg3:提示信息
    返回值:输入的文本信息,QString类型,可以用一个text来接受
         QString text=QInputDialog::getText(this,"输入","请输入密码");
    
    
    若要向textEdit文本编辑框追加整型数:
         ui->textEdit->append(QString::number(num));
       或ui->textEdit->append(QString().arg());
输入的内容打印进textEdit文本编辑框中
    if(b==ui->btnInput)
    {
         qDebug()<<"input...";
         QString text=QInputDialog::getText(this,"输入","请输入密码");
         if(text.isEmpty())
         {
             QMessageBox::warning(this,"warning","未输入数据");
         }
         ui->textEdit->append(text);    //textTdit是一个文本编辑框
    }

4.颜色对话框—

#include <QColorDialog>

设置颜色:
    QColorDialog::getColor();
    会打开一个颜色选择的对话框,让用户选择颜色,用户选择了颜色,返回该颜色
颜色设置是否有效:
     color.isValid();    //有效返回true,否则faluse
设置文本颜色:
    setTextColor();

    if(b==ui->btnColor)
    {
         qDebug()<<"color...";
         QColor color = QColorDialog::getColor(Qt::red);
         if(color.isValid())
             ui->textEdit->setTextColor(color);
    }

5.字体对话框—

#include <QFontDialog>

打开字体对话框
        QFontDialog::getFont();
        用于显示一个字体选择对话框,让用户选择字体样式和大小。
        选择后会返回一个Font对象,通过这个对象可以获取该选择的字体属性
        bool ok;
        QFont font=QFontDialog::getFont(&ok);
        弹出对话框来显示字体选择,选择后如果点击了确认,那么ok就为true,反之false
设置字体:
    setFont();
    ui->textEdit->setFont(font);
   if(b==ui->btnFont)
    {
         qDebug()<<"font...";
         bool ok;
         QFont font=QFontDialog::getFont(&ok);
         if(ok)
         {
             ui->textEdit->setFont(font);        //将文本编辑框选中的字体设置颜色
         }
    }    

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值