QT基础学习(7)---内置对话框


QT内置对话框

一、QT标准内置对话框

1.QColorDialog: 选择颜色;

2.QFileDialog: 选择文件或者目录;

3.QFontDialog: 选择字体;

4.QInputDialog: 允许用户输入一个值,并将其值返回;

5.QMessageBox: 模态对话框,用于显示信息、询问问题等;

6.QPageSetupDialog: 为打印机提供纸张相关的选项;

7.QPrintDialog: 打印机配置;

8.QPrintPreviewDialog:打印预览;

9.QProgressDialog: 显示操作过程

二、常用标准内置对话框使用

1.建立stddialog

2.修改widget.h文件

*** 各用法在示例中体现 ***

#ifndef WIDGET_H
#define WIDGET_H

//内置对话框头文件
#include <QWidget>
#include <QColorDialog>
#include <QErrorMessage>
#include <QFileDialog>
#include <QFontDialog>
#include <QInputDialog>
#include <QMessageBox>
#include <QProgressDialog>
//按钮头文件
#include <QPushButton>
//文本编辑器头文件
#include <QTextEdit>
#include <QDebug> //打印东西头文件 调试头文件


class Widget : public QWidget
{
Q_OBJECT


public:
Widget(QWidget *parent = 0);
~Widget();
public slots:
void stecolorf()  //设置颜色的槽函数
{
    //找到类名 加上相应的函数 函数在帮助中查找
    QColor c = QColorDialog::getColor(); //得到一个颜色
    te->setTextColor(c); //对话框得到颜色
 }
void showerr()  //设置弹错函数 常用于软件报错
{
    QErrorMessage *msg = QErrorMessage::qtHandler(); //得到一个QErrorMessage的对象
    msg->showMessage("出错!!! ");


}
void getfile()
{
    QString filename = QFileDialog::getOpenFileName(); //建立一个QString的对象 调用静态函数得到文件名
    qDebug()<<filename;                                //qDebug<<  打印东西  在这里打印文件名 打印到调试框中查看
    te->setText(filename);
}


void setfont()  //修改字体的大小
{   bool ok; //定义一个标志
    QFont myfont = QFontDialog::getFont(&ok); //定义一个标志传给getFont() 如果选择了则为ok
    if(ok)  //判断一下取字体成功没有
    te->setFont(myfont);


}
void getstr() //获取用户的输入
{
    QString str = QInputDialog::getText(this,"1+1=","请回答");  //获取用户输入的文字 设置对应参数  父亲,标题,标签显示的东西
    te->setText(str);


}
void showmsg()  //显示一个提示
{
    QMessageBox::information(this,"QQQ","hello","OK"); //弹出一个警告 设置对应参数 父亲,标题,文字,一般为按钮OK


}
void showprg()  //显示进度条  没有静态函数可使用 自己构造
{
QProgressDialog p;
p.setValue(50);   //设置一个值
p.exec();        //显示




}
private:
//设置各种对话框按钮
QPushButton *btcolor; //颜色对话框按钮
QPushButton *bterrm;
QPushButton *btfile;
QPushButton *btfont;
QPushButton *btinput;
QPushButton *btmsg;
QPushButton *btprg;


QTextEdit *te;


};


#endif // WIDGET_H

3.修改文件widget.cpp文件

*** 用法在实例中标注 ***

#include "widget.h"
#include <QVBoxLayout>
#include <QHBoxLayout>




Widget::Widget(QWidget *parent)
: QWidget(parent)
{
btcolor = new QPushButton("setcolor"); //颜色对话框按钮
bterrm  = new QPushButton("errmsg");//弹出错误
btfile  = new QPushButton("getfile");//弹出文件
btfont  = new QPushButton("setfont");//字体对话框
btinput = new QPushButton("getstr");//输入对话框
btmsg   = new QPushButton("msg");//消息对话框
btprg   = new QPushButton("progress");//进度对话框


te = new QTextEdit;


QVBoxLayout *vbox = new QVBoxLayout; //设置垂直布局
vbox->addWidget(btcolor);
vbox->addWidget(bterrm);
vbox->addWidget(btfile);
vbox->addWidget(btfont);
vbox->addWidget(btinput);
vbox->addWidget(btmsg);
vbox->addWidget(btprg);


//设置整体布局
QHBoxLayout *mainbox = new QHBoxLayout;//设置水平布局
mainbox->addLayout(vbox);  //添加整体布局用 addLayout()
mainbox->addWidget(te);  //添加文本框用 addWidget()
this->setLayout(mainbox);


//要使对话框有效果 自己编写相应的槽函数在 widget.h


connect(btcolor,SIGNAL(clicked(bool)),this,SLOT(stecolorf()));//修改字体颜色


connect(bterrm,SIGNAL(clicked(bool)),this,SLOT(showerr())); //报错


connect(btfile,SIGNAL(clicked(bool)),this,SLOT(getfile())); //打印文件名


connect(btfont,SIGNAL(clicked(bool)),this,SLOT(setfont())); //设置字体


connect(btinput,SIGNAL(clicked(bool)),this,SLOT(getstr())); //获取一个用户输入


connect(btmsg,SIGNAL(clicked(bool)),this,SLOT(showmsg())); //弹出一个警告


connect(btprg,SIGNAL(clicked(bool)),this,SLOT(showprg())); //显示一个进度的值


}


Widget::~Widget()
{


}

4.效果展示

在这里插入图片描述

各对话框功能均实现,可一一调试。

四、总结

调用标准内置对话框可以实现相应需求,组合使用完成所需,使功能更加完善。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值