day1 QT 入门与基础控件

本文介绍了Qt中的三种界面框架:QWidget作为基础窗口类,QDialog用于创建对话框,而QMainWindow适用于复杂的主窗口。还详细讲解了四种布局管理器:垂直布局、水平布局、网状布局和表格布局,并提供了代码示例。此外,文中列举了多种输入输出控件,如QLineEdit、QTextEdit和QLabel,以及它们在GUI应用中的作用。
摘要由CSDN通过智能技术生成

qt下载方法:https://www.yuque.com/uh1h8r/dqrma0/

目录

界面框架

种类

特点:

1、QWidget

2、QDialog

3、QMainWindow

布局管理器

输入输出控件


界面框架

种类

QWidget、QDialog、QMainWindow

特点:

1、QWidget

  • QWidget是Qt中所有用户界面控件的基类
  • 它表示一个矩形的窗口区域,可以包含其他的子控件
  • 继承自QWidget的控件可以被用户交互,并且可以包含其他的子控件。
  • QWidget可以用于创建应用程序的主窗口或者子窗口。

2、QDialog

  • QDialog是QWidget的子类,用于创建对话框。
  • 对话框是一种特殊类型的窗口,通常用于与用户进行交互,提供额外的选项或接收用户的输入。
  • QDialog提供了一些常用的对话框样式,例如消息框、文件选择框、颜色选择框等。
  • 对话框可以自定义,可以根据需要添加自己的控件和逻辑。

3、QMainWindow

  • QMainWindow是用于创建应用程序的主窗口的类,通常用于创建具有复杂布局和多个功能区域的应用程序窗口。
  • 与QWidget和QDialog不同,QMainWindow提供了一个主要的菜单栏、工具栏、状态栏和中央部件,使得创建复杂的多文档界面(MDI)应用程序更加方便。
  • 它通常用于创建大型的桌面应用程序。

布局管理器

头文件:

#include <QVBoxLayout> //垂直
#include <QHBoxLayout>  //水平
#include <QGridLayout>   //网状
#include <QFormLayout>   //表格

代码实现:

#if 0
    /*垂直布局实现*/
    QVBoxLayout *vbox = new QVBoxLayout;
    vbox->addWidget(le);
    vbox->addWidget(le1);
    vbox->addWidget(pb);

    this->setLayout(vbox);
#endif

#if 0
    /*水平布局实现*/
    QHBoxLayout *hbox = new QHBoxLayout;
    hbox->addWidget(le);
    hbox->addWidget(le1);
    hbox->addWidget(pb);

    this->setLayout(hbox);
#endif

#if 0
    /*网状布局实现*/
    QGridLayout *gbox = new QGridLayout;
    gbox->addWidget(le, 0, 0);
    gbox->addWidget(le1, 1, 1);
    gbox->addWidget(pb, 2, 2);

    this->setLayout(gbox);
#endif

#if 1
    /*表格布局实现*/
    QFormLayout *fbox = new QFormLayout;
    fbox->addRow("user", le);
    fbox->addRow("pawd", le1);
    fbox->addRow("", pb);

    this->setLayout(fbox);

 #endif

输入输出控件

输出控件:

 

输入控件 :

头文件:

                       //输入
#include <QLineEdit>   //用于单行文本输入
#include <QTextEdit>   //多行输入
#include <QComboBox>   //选择一个选项的下拉框
#include <QTimeEdit>   //编辑时间
#include <QDial>       //用于选择一个范围内的数值,类似于旋转拨盘
#include <QSlider>     //选择一个范围内的数值,类似于滑块
#include <QScrollBar>  //用于滚动一个可滚动窗口或者试图
                       //输出
#include <QLabel>      //用于显示文本或图像
#include <QLCDNumber>  //用于显示数字,类似于数码管显示屏
#include <QProgressBar>//用于展示任务的进度,如文件下载或操作的完成情况

代码实现:

  //input
    le = new QLineEdit;
    te = new QTextEdit;
    cd = new QComboBox;
    cd->addItem("read");
    cd->addItem("write");
    dl = new QDial;
    sd = new QSlider;
    sd->setOrientation(Qt::Horizontal);
    sb = new QScrollBar;
    sb->setOrientation(Qt::Horizontal);
    timee = new QTimeEdit;
    QVBoxLayout *vbox = new QVBoxLayout;
    vbox->addWidget(le);
    vbox->addWidget(te);
    vbox->addWidget(cd);
    vbox->addWidget(timee);
    vbox->addWidget(dl);
    vbox->addWidget(sd);
    vbox->addWidget(sb);


    //output
    lb = new QLabel("hello");
    lb1 = new QLabel;
    QPixmap pix("1.png");
    lb1->setFixedSize(100, 100);
    lb1->setScaledContents(true);
    lb1->setPixmap(pix);
    lcd = new QLCDNumber;
    pgd = new QProgressBar;
    QVBoxLayout *vbox1 = new QVBoxLayout;
    vbox1->addWidget(lb);
    vbox1->addWidget(lb1);
    vbox1->addWidget(lcd);
    vbox1->addWidget(pgd);

    QHBoxLayout *hbox = new QHBoxLayout;
    hbox->addLayout(vbox);
    hbox->addLayout(vbox1);
    this->setLayout(hbox);

    connect(dl, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)));
    connect(dl, SIGNAL(valueChanged(int)), pgd, SLOT(setValue(int)));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值