霍亚飞 的QT Creator快速入门学习笔记-第三章(1)

mywidget.h文件代码

#ifndef MYWIDGET_H
#define MYWIDGET_H

#include <QWidget>
#include <QWizard>
class QErrorMessage;


namespace Ui {
class MyWidget;
}

class MyWidget : public QWidget
{
    Q_OBJECT

public:
    explicit MyWidget(QWidget *parent = 0);
    ~MyWidget();

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_7_clicked();

    void on_pushButton_8_clicked();

private:
    Ui::MyWidget *ui;
private:
    QErrorMessage *errordlg;
private:
    //Ui::MyWidget *ui;
    QWizardPage*createPage1();//新添加
    QWizardPage*createPage2();//新添加
    QWizardPage*createPage3();//新添加
};

#endif // MYWIDGET_H

mywidget.cpp文件

#include "mywidget.h"
#include "ui_mywidget.h"
#include <QDebug>
#include <QColorDialog>
#include <QFileDialog>
#include <QFontDialog>
#include <QInputDialog>
#include <QMessageBox>
#include <QProgressDialog>
#include <QErrorMessage>
#pragma execution_character_set("utf-8")
MyWidget::MyWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::MyWidget)
{
    ui->setupUi(this);
    errordlg = new QErrorMessage(this);
}

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

void MyWidget::on_pushButton_clicked()
{
    QColorDialog dialog(Qt::red,this);//创建对象
    dialog.setOption(QColorDialog::ShowAlphaChannel);//显示alpha选项
    dialog.exec();                                   //以模态方式运行对话框
    QColor color = dialog.currentColor();            //获取当前颜色
    qDebug()<<"color:"<<color;                       //输出颜色信息
}

void MyWidget::on_pushButton_2_clicked()
{
    //文件对话框语句1
    QString fileName = QFileDialog::getOpenFileName(this,tr("文件对话框"),
                                                    "D:",tr("图片文件(*png *jpg)"));
    //文件对话框语句2
    //QString fileName = QFileDialog::getOpenFileName(this,tr("文件对话框"),
    //                                                "D:",tr("图片文件(*png *jpg);;文本文件(*txt)"));
    qDebug()<<"fileName"<<fileName;
}

void MyWidget::on_pushButton_3_clicked()
{
    //ok用于标记是否单击了OK按钮
    bool ok;
    QFont font = QFontDialog::getFont(&ok,this);
    //如果单击OK按钮,那么让“字体对话框”按钮使用新字体
    //如果单击Cancel按钮,那么输出信息
    if(ok)ui->pushButton_3->setFont(font);
    else qDebug()<<tr("没有选择字体");
}

void MyWidget::on_pushButton_4_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("请输入-1000到1000之间的数值"),0.00,-1000,1000,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;
}

void MyWidget::on_pushButton_5_clicked()
{
    //问题对话框
    int ret1 = QMessageBox::question(this,tr("问题对话框"),
                                     tr("你了解QT吗?"),QMessageBox::Yes,QMessageBox::No);
    if(ret1 == QMessageBox::Yes)qDebug()<<tr("问题!");
    //提示对话框
    int ret2 = QMessageBox::information(this,tr("提示对话框"),
                                        tr("这是Qt书籍!"),QMessageBox::Ok);
    if(ret2 == QMessageBox::Ok)qDebug()<<tr("提示!");
    //警告对话框
    int ret3 = QMessageBox::warning(this,tr("警告对话框"),
                                    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("jafeilinx致力于QT的工作"));
}

void MyWidget::on_pushButton_6_clicked()
{
    QProgressDialog dialog(tr("文件复制进度"),tr("取消"),0,5000,this);
    dialog.setWindowTitle(tr("进度对话框"));  //设置窗口标题
    dialog.setWindowModality(Qt::WindowModal);//将对话框设置为模态
    dialog.show();
    for(int i = 0;i<5000;i++){   //演示复制进度
        dialog.setValue(i);      //设置进度条的当前值
        QCoreApplication::processEvents(); //避免界面冻结
        if(dialog.wasCanceled())break;    //按下取消按钮则中断
    }
    dialog.setValue(50000);//这样才显示100%,因为for循环中少加了一个数
    qDebug()<<tr("复制结束");

}

void MyWidget::on_pushButton_7_clicked()
{
    errordlg->setWindowTitle(tr("错误信息对话框"));
    errordlg->showMessage(tr("这里是出错信息"));
}
QWizardPage *MyWidget::createPage1() //向导页面1
{
    QWizardPage *page = new QWizardPage;
    page->setTitle(tr("介绍"));
    return page;
}
QWizardPage *MyWidget::createPage2() //向导页面2
{
    QWizardPage *page = new QWizardPage;
    page->setTitle(tr("用户选择信息"));
    return page;
}
QWizardPage *MyWidget::createPage3() //向导页面1
{
    QWizardPage *page = new QWizardPage;
    page->setTitle(tr("结束"));
    return page;
}
void MyWidget::on_pushButton_8_clicked()
{
    QWizard wizard(this);
    wizard.setWindowTitle(tr("向导对话框"));
    wizard.addPage(createPage1());
    wizard.addPage(createPage2());
    wizard.addPage(createPage3());
    wizard.exec();
}

* main.cpp*

#include "mywidget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MyWidget w;
    w.show();

    return a.exec();
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值