QT 自学内容 day03 listWidget ,treeWidget,tableWidget ,stackedWidget,模态,和非模态 多种 对话框的的使用

1.我的界面设计

QT 自学内容 day03 listWidget ,treeWidget,tableWidget ,stackedWidget,模态,和非模态 多种 对话框的的使用_第1张图片

 


2.建立一个模态对话框

头文件:#include //对话框

代码:

    //点击新建按钮,弹出一个对话框
    //使用信号连接函数
    connect(ui->actionnew,&QAction::triggered,[=](){
        //对话框 分类
        //模态对话框(不可以对其他窗口进行操作)  非模态对话框(可以对其他窗口进行操作)
        //模态创建 阻塞
        QDialog dlg(this);
        dlg.resize(200,200);//这个窗口开小了,他会有错误的提示
        dlg.exec();//模态窗口显示
        qDebug()<<"模态对话框弹出来了";

    });


3.建立一个非模态的对话框

头文件:#include //对话框

代码:

connect(ui->actionopen,&QAction::triggered,[=](){


        //非模态对话框
        QDialog * dlg2 = new QDialog(this);//创建对象
        dlg2->resize(200,200);//这个窗口开小了,他会有错误的提示
        dlg2->show();//这个是非模态对话框的显示
        dlg2->setAttribute(Qt::WA_DeleteOnClose);//该Qt窗口在退出时自动能够delete掉自己,因此,添加这样的一句代码:
        setAttribute (Qt::WA_DeleteOnClose);
        qDebug()<<"非模态对话框弹出来了";
    });


4.建立一个错误对话框

头文件:#include

代码:

 connect(ui->actioncuowu,&QAction::triggered,[=](){
        //错误对话框
        //第一个参数  父亲是谁  ,  第二个参数  对话框的名字   第三个参数  对话框的提示信息
        //QMessageBox::critical(this,"critical","错误对话框");//建立一个错误类型的对话框
        QMessageBox::critical(this,"critical","错误对话框");
    });


5.建立一个信息对话框

头文件:#include

代码:

connect(ui->actionxinxi,&QAction::triggered,[=](){
        //信息对话框
        //第一个参数  父亲是谁  ,  第二个参数  对话框的名字   第三个参数  对话框的提示信息
        QMessageBox::information(this,"info","信息对话框");//建立一个信息类型的对话框
    });

6.建立一个提问对话框

头文件:#include

代码:

connect(ui->actionxuanze,&QAction::triggered,[=](){
        //提问对话框
        //第一个参数  父亲是谁  ,  第二个参数  对话框的名字   第三个参数  对话框的提示信息     第四个参数,选择的选项是哪两个   第五个个对话框是默认是哪个,或者说开始系统为你选的那个
       //这个函数有返回值的  就是第四个参数之间的两个中的一个
        if(QMessageBox::Save == QMessageBox::question(this,"que","提问对话框",QMessageBox::Save | QMessageBox::No,QMessageBox::Save ))//建立一个信息类型的对话框
        {
                 qDebug()<<"选择的是保存";
        }
        else
        {
                qDebug()<<"选择的是  NO ";
        }

    });

7.建立一个警告对话框

头文件:#include

代码:

 connect(ui->actionqinggao,&QAction::triggered,[=](){
            //警告对话框
            //第一个参数  父亲是谁  ,  第二个参数  对话框的名字   第三个参数  对话框的提示信息
            QMessageBox::warning(this,"warninf","警告对话框");//建立一个信息类型的对话框
        });

8.建立一个获得颜色参数的对话框

头文件:#include

#include //颜色文件框

代码:

 connect(ui->actioncolor,&QAction::triggered,[=](){
            //颜色对话框
            QColor color =QColorDialog::getColor(QColor(255,0,0));//打开颜色选择窗口,开始默认停留在 255 ,0,0 区域
            qDebug()<<"r = "< connect(ui->actionwenzi,&QAction::triggered,[=](){
            //文件对话框 参数 父亲  参数二  标题   参数三  默认打开的路径  参数四 过滤文件格式
           //功能获得需要文件的 文件路径
            QString str= QFileDialog::getOpenFileName(this,"打开文件","D:");//没有第四个
            qDebug()<


10.建立一个获得选择 字体参数的对话框

头文件:#include

#include //字体选择的对话框

代码:

 connect(ui->actionziti,&QAction::triggered,[=](){
            //字体对话框
           bool flag;
           //QFont font = QFontDialog::getFont(&flag,QFont("华文彩云",36));//第二个参数是,初始的位置
            QFont font = QFontDialog::getFont(&flag);//不同的字体,有的功能不同,有的字体没有加粗和倾斜
           qDebug()<<" 字体 "<

11.完整的代码:

mainWinow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include 

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

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

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

main.cpp

#include "mainwindow.h"
#include 

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

    return a.exec();
}

mainWindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include //对话框
#include //文字输出
#include 
#include 
#include //颜色文件框
#include //字符串
#include //文件对话框
#include //字体选择的对话框


MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //点击新建按钮,弹出一个对话框
    connect(ui->actionnew,&QAction::triggered,[=](){
        //对话框 分类
        //模态对话框(不可以对其他窗口进行操作)  非模态对话框(可以对其他窗口进行操作)
        //模态创建 阻塞
        QDialog dlg(this);
        dlg.resize(200,200);//这个窗口开小了,他会有错误的提示
        dlg.exec();//模态窗口显示
        qDebug()<<"模态对话框弹出来了";

    });
    connect(ui->actionopen,&QAction::triggered,[=](){


        //非模态对话框
        QDialog * dlg2 = new QDialog(this);//创建对象
        dlg2->resize(200,200);//这个窗口开小了,他会有错误的提示
        dlg2->show();//这个是非模态对话框的显示
        dlg2->setAttribute(Qt::WA_DeleteOnClose);//该Qt窗口在退出时自动能够delete掉自己,因此,添加这样的一句代码:
        setAttribute (Qt::WA_DeleteOnClose);
        qDebug()<<"非模态对话框弹出来了";
    });
    connect(ui->actioncuowu,&QAction::triggered,[=](){
        //错误对话框
        //第一个参数  父亲是谁  ,  第二个参数  对话框的名字   第三个参数  对话框的提示信息
        //QMessageBox::critical(this,"critical","错误对话框");//建立一个错误类型的对话框
        QMessageBox::critical(this,"critical","错误对话框");
    });

    connect(ui->actionxinxi,&QAction::triggered,[=](){
        //信息对话框
        //第一个参数  父亲是谁  ,  第二个参数  对话框的名字   第三个参数  对话框的提示信息
        QMessageBox::information(this,"info","信息对话框");//建立一个信息类型的对话框
    });

    connect(ui->actionxuanze,&QAction::triggered,[=](){
        //提问对话框
        //第一个参数  父亲是谁  ,  第二个参数  对话框的名字   第三个参数  对话框的提示信息     第四个参数,选择的选项是哪两个   第五个个对话框是默认是哪个,或者说开始系统为你选的那个
       //这个函数有返回值的  就是第四个参数之间的两个中的一个
        if(QMessageBox::Save == QMessageBox::question(this,"que","提问对话框",QMessageBox::Save | QMessageBox::No,QMessageBox::Save ))//建立一个信息类型的对话框
        {
                 qDebug()<<"选择的是保存";
        }
        else
        {
                qDebug()<<"选择的是  NO ";
        }

    });

        connect(ui->actionqinggao,&QAction::triggered,[=](){
            //警告对话框
            //第一个参数  父亲是谁  ,  第二个参数  对话框的名字   第三个参数  对话框的提示信息
            QMessageBox::warning(this,"warninf","警告对话框");//建立一个信息类型的对话框
        });

        connect(ui->actioncolor,&QAction::triggered,[=](){
            //颜色对话框
            QColor color =QColorDialog::getColor(QColor(255,0,0));//打开颜色选择窗口,开始默认停留在 255 ,0,0 区域
            qDebug()<<"r = "<actionziti,&QAction::triggered,[=](){
            //字体对话框
           bool flag;
           //QFont font = QFontDialog::getFont(&flag,QFont("华文彩云",36));//第二个参数是,初始的位置
            QFont font = QFontDialog::getFont(&flag);//不同的字体,有的功能不同,有的字体没有加粗和倾斜
           qDebug()<<" 字体 "<

第二个内容设计:

登陆界面的设计:

ui  图片:

QT 自学内容 day03 listWidget ,treeWidget,tableWidget ,stackedWidget,模态,和非模态 多种 对话框的的使用_第2张图片


第三个内容:

listWidget ,treeWidget,tableWidget ,stackedWidget,区域的使用

界面设计:(资源自己找 !!!! )

ui 图片

QT 自学内容 day03 listWidget ,treeWidget,tableWidget ,stackedWidget,模态,和非模态 多种 对话框的的使用_第3张图片

完成的结果:

QT 自学内容 day03 listWidget ,treeWidget,tableWidget ,stackedWidget,模态,和非模态 多种 对话框的的使用_第4张图片


代码:

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include 

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

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

private:
    Ui::Widget *ui;
};

#endif // WIDGET_H

main.cpp

#include "widget.h"
#include 

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

    return a.exec();
}

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include 
#include 
#include 
#include 
#include 

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

    //利用listWidget 写诗
//    QListWidgetItem *item=new QListWidgetItem("小超是猪吗?--》yes");//建立内容对象
//    ui->listWidget->addItem(item);//给list 写入内容

    //listWidget 使用
    QStringList list;
    list<<"asdasda"<<"13223123"<<"dasdasdasd"<<"52455457";
    ui->listWidget->addItems(list);//多行输入  给list 写入内容


    //treeWidget 树控件使用
    //设置水平头
    ui->treeWidget->setHeaderLabels(QStringList()<<"英雄"<<"英雄介绍");

    QTreeWidgetItem * litem1 =new QTreeWidgetItem(QStringList()<<"力量");
    QTreeWidgetItem * litem2 =new QTreeWidgetItem(QStringList()<<"敏捷");
    QTreeWidgetItem * litem3 =new QTreeWidgetItem(QStringList()<<"智力");
    //加载顶层的节点
    ui->treeWidget->addTopLevelItem(litem1);
    ui->treeWidget->addTopLevelItem(litem2);
    ui->treeWidget->addTopLevelItem(litem3);
    //追加子节点
    QStringList hero;
    hero<<"力量大哥"<<"前排坦克";
    QTreeWidgetItem * l1 =new QTreeWidgetItem(hero);
    litem1->addChild(l1);

    //tableWidget 控件的使用
    //设置列数
    ui->tableWidget->setColumnCount(3);
    //设置水平表头
    ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<"姓名"<<"性别"<<"年龄");
    //设置行数
    ui->tableWidget->setRowCount(5);

    //设置正文
    //一个一个的设置
    //ui->tableWidget->setItem(0,0,new QTableWidgetItem("亚瑟"));
    QStringList nameList;
    nameList<< "亚瑟"<<"赵云"<<"张飞"<<"关羽"<<"花木兰";
    QList sexList;
    sexList<<"男"<<"男"<<"男"<<"男"<<"女";
    for(int i=0;i<5;i++)
    {
        int col=0;
        ui->tableWidget->setItem(i,col++,new QTableWidgetItem(nameList[i]));//输入姓名
        ui->tableWidget->setItem(i,col++,new QTableWidgetItem(sexList[i]));//输入性别
        ui->tableWidget->setItem(i,col++,new QTableWidgetItem(QString::number(i+18)));//QSTring::number 字符串转化为数字
    }

    //scrollarea 按键  滚轮的区域
    connect(ui->s1,&QPushButton::clicked,[=](){   //s1 是按钮
    ui->stackedWidget->setCurrentIndex(2);

    });

    //toolBox 按钮   打开所需关系的区域
    connect(ui->s2,&QPushButton::clicked,[=](){   //s2 是按钮
    ui->stackedWidget->setCurrentIndex(0);

    });

    //Tabwidget 按钮   网页模式的区域
    connect(ui->s3,&QPushButton::clicked,[=](){   //s3 是按钮
    ui->stackedWidget->setCurrentIndex(1);

    });

    //利用QLable 显示图片
    ui->label->setPixmap(QPixmap(":/image_jk/1.jpg"));

    //显示动态的图片
    //QMovie * movie = new QMovie(":/路径.gif");
    //ui->label->setMovie((movie));
    //播放gif
   // movie->start();

}

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

 

 


 

你可能感兴趣的:(QT,语言的学习,qt,开发语言)