QT入门开始

  一、创建一个简单的Qt程序

  启动QtCreate:New Project  -> Application  -> Qt Widgets Application  -> Choose  -> 文件名不能使用中文!

  基类选择:QWidget

     

     命名规范

//命名规范
类名 首字母大写,单词和单词之间首字母大写
函数名 变量名 首字母小写,单词和单词之间首字母大写

  widget

widget,窗体部件,该词起源于window gadget 窗口配件,这两个词,相当于Windows系统中的控件(control)和容器(container)
按钮、菜单、滚动条和框架都是窗口部件,窗口部件也可以包含其他窗口部件

  工程文件 .pro( 自动生成的 )

#-------------------------------------------------
#
# Project created by QtCreator 2022-04-11T14:26:56
#
#-------------------------------------------------

QT       += core gui   //QT 包含的模块: core  gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = HelloQt     //目标生成的.exe程序的名称
TEMPLATE = app        //模板  应用程序模板 Application

SOURCES += \           //源文件
        main.cpp \
        widget.cpp

HEADERS += \            //头文件
        widget.h

  头文件.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>  //包含头文件QWiget窗口类

class Widget : public QWidget //继承QWidget
{
    Q_OBJECT  //Q_OBJECT宏,允许类中使用信号和槽的机制

public:
    Widget(QWidget *parent = 0); //构造函数
    ~Widget();
};

#endif // WIDGET_H

   .cpp 文件

#include "widget.h"
#include <QLabel> //包含头文件QLabel

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{   //创建一个QLabel
    QLabel *label = new QLabel("Hello Qt!"); 
    //让label对象 依赖widget窗口中
    label->setParent(this);
}

Widget::~Widget()
{

}

  main文件(入口 )

#include "widget.h"
#include <QApplication> //包含一个应用程序类的头文件

//main程序入口, argc命令行变量的数量 argv命令行变量的数组
int main(int argc, char *argv[])
{    //a是应用程序的对象,在Qt中,应用程序对象,有且仅有一个
    QApplication a(argc, argv);
    //窗口对象,父类是QWiget
    Widget w;
    //窗口对象默认不会显示,必须要调用 show方法显示窗口
    w.show();
    //让应用程序对象进入消息循环
    //让代码阻塞到这行
    return a.exec();
}
  二、建立连接

  Qt的窗口部件可以发射信号(signal),信号可以与函数 ( 在 这里称为槽,slot) 相连接,以便在发射信号时,槽可以得到自动执行

#include "widget.h"
#include <QLabel>
#include <QPushButton>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    QLabel *label = new QLabel("Hello Qt!");
    label->setParent(this);

    QPushButton *button = new QPushButton("退出!");
    button->setParent(this);

    button->move(0,50);
    QObject::connect( button, &QPushButton::clicked ,
                        this, &Widget::close );
}

Widget::~Widget()
{

}
  三、窗口部件的布局

  用布局(layout)来管理窗口部件的几何形状,三个不同的布局:QHBoxLayout、QVBoxLayout、QGridLayout,QHBoxLayout类将小部件水平(horizontally)排列,QVBoxLayout类将小部件垂直(vertically)排列,QGridLayout类在网格(grid)中布局小部件

  布局管理器类,不是窗口部件,它们 派生自QLayout,也就是进一步  派生自QObject

#include <QApplication>
#include <QHBoxLayout>
#include <QSlider>
#include <QSpinBox>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    //主窗体
    QWidget *window = new QWidget;
    window->setWindowTitle("Enter You Age");

    //子窗体: 微调框 滑块
    QSpinBox *spinBox = new QSpinBox;
    QSlider *slider = new QSlider(Qt::Horizontal);
    spinBox->setRange(0,130);
    slider->setRange(0,130);

    //子窗体建立连接
    QObject::connect(spinBox,SIGNAL(valueChanged(int)),
                     slider,SLOT(setValue(int)));
    QObject::connect(slider,SIGNAL(valueChanged(int)),
                     spinBox,SLOT(setValue(int)));
    spinBox->setValue(35);

    //布局
    QHBoxLayout *layout = new QHBoxLayout;
    layout->addWidget(spinBox);
    layout->addWidget(slider);
    window->setLayout(layout);

    //显示
    window->show();

    return a.exec();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值