创建QT项目

文章介绍了QT编程中的基本概念,如使用QApplication创建和管理窗口,窗口的尺寸、标题设置,以及信号槽机制如何实现事件处理。还涉及了类的命名规则和pro文件的作用。
摘要由CSDN通过智能技术生成

1.QT写代码的框架。

#include "widget.h"
#include <QApplication>       //QT的框架头文件

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);    //QT的框架初始化
    Widget w;   //定义一个窗口对象
    w.show();   //将创建的窗口空间显示

    return a.exec();   //让程序一直执行,相当于while(1)
}


 

2.创建空项目。

#include "widget.h"
#include <QApplication>       //QT的框架头文件
#include <QDebug>   //调试类

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);    //QT的框架初始化
    Widget w;   //定义一个窗口对象
    w.resize(400,300);  //设定窗口的大小
    w.setWindowTitle("hello qt");  //设置窗口的标题
    w.show();   //将创建的窗口空间显示

    qDebug()<<"hello";  //应用程序输出hello
    return a.exec();   //让程序一直执行,相当于while(1)
}


 

3.QT命名规则。

对于类的命名  大驼峰法(单词首字母大写)。

对于函数的命名   小驼峰法(单词首字母小写,后面的单词首字母大写)。

4.pro文件。

QT一个类对应一个头文件,类名就是头文件名称。

QApplication应用程序:

1.管理图形用户界面应用程序的控制流和主要设置。

2.是Qt的整个后台管理的命脉它包含主事件循坏,在其中来自窗口系统和其他资源的所有事件处理和调度。它也是应用程序的初始化和结束,并且提供对话管理。

3.对于任何一个使用Qt的图形用户界面应用程序,都正好存在一个QApplication对象,而不论这个应用程序时在同一时间内是不是又0、1、2或者更多个窗口。

a.exec():

程序进入消息循坏,等待对用户输入进行响应。这里main()把控制权转交给Qt,Qt完成事件处理工作,当应用程序退出的时候exec()的值就会返回。在exec()中,Qt接受并处理用户和系统的事件并且把它们传递给适当的窗口部件。

信号与槽

信号槽时Qt框架引以为豪的机制之一。所谓信号错,实际就是观察者模式。当某个事件发生之后,比如,按键检测到自己被点了一下,他就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,他就会使用连接(connect)函数,意思就是,将想要处理的信号和自己的一个函数(称之为槽(slot))绑定未处理这个信号。也就是说,当信号发出时,被连接的槽函数就会自动被回调。

conne()函数最常用的一般形式:

connect(sender,signal,receiveer,slot);

sender:发出信号的对象,signal:发送对象发出的信号,receiver:接收信号的对象,

slot:接收对象在接收到信号之后需要调用的函数(槽函数)。

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

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    //创建一个按钮,点击按钮关闭窗口
    QPushButton *p = new QPushButton("关闭",this);
    //设置连接 点击按钮会产生信号 ,会调用窗口的关闭函数
    connect(p,&QPushButton::clicked,this,&QWidget::close);


}

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


自定义槽函数

widget.c

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    button = new QPushButton;
    button->setParent(this);
    button->setText("打印千峰物联网牛逼");
    //注册信号与槽的连接
    //槽函数可以是普通的成员函数
    //如果信号没有参数,槽函数也不能又参数,
    //如果信号又参数,槽函数可以有参数也可以没有
    connect(button,&QPushButton::pressed,this,&Widget::print);

}

void Widget::print()
{

    qDebug()<<"千峰物联网";
}


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

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QPushButton>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = nullptr);
    ~Widget();
    QPushButton *button;

public slots:   //公有权限槽函数
    void print();  //槽函数
private:
    Ui::Widget *ui;
};

#endif // WIDGET_H

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值