QT学习之初识

初始创建空项目相关文件

#include "widget.h"

#include <QApplication>//包含一个应用程序类的头文件
//argc命令行变量的数量,argv命令行变量的数组
int main(int argc, char *argv[])
{
   
   
    //应用程序对象,在Qt中,应用程序对象有且只有一个
    QApplication a(argc, argv);
     //窗口对象,Widget父类->QWidget
    Widget w;
    //窗口对象默认不会显示,必须要调用show方法显示窗口
    w.show();
    //让应用程序对象进入消息循环,让代码阻塞在这行
    return a.exec();
}
#include "widget.h"
//命名规范:
//类名:首字母大写,单词和单词之间首字母大写
//函数名:变量名称 首字母大写,单词和单词之间首字母大写

//快捷键
//注释  ctrl+/
//运行  ctrl+r
//编译  ctrl+b
//查找  ctrl+f
//整行移动 ctrl+shift+上下
//帮助文档 F1
//自动对齐 ctrl+i
//同名之间的.h和.cpp文件切换 F4

Widget::Widget(QWidget *parent)//构造函数的实现,默认参数在声明和实现中只能有一个

    : QWidget(parent) //初始化列表
//格式:
//    以一个冒号开始,
//   接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟 一个放在括号中的初始值或表达式。
{
   
   
   
}

Widget::~Widget() {
   
   }//析构函数的实现

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

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

public:
    Widget(QWidget *parent = nullptr);//默认构造函数  只有声明没有实现,有参构造,有默认值
    ~Widget();//析构函数
};
#endif // WIDGET_H    //防止头文件重复包含

创建一个按钮

头文件 #include <QPushButton>
Widget::Widget(QWidget *parent)构造函数的实现中创建按钮

Widget::Widget(QWidget *parent)//构造函数的实现,默认参数在声明和实现中只能有一个

    : QWidget(parent) //初始化列表
//格式:
//    以一个冒号开始,
//   接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟 一个放在括号中的初始值或表达式。
{
   
   
   //创建一个按钮
    QPushButton *btn = new QPushButton;
   btn->show();//show()方法以顶层方式弹出窗口控件
}

show()方法以顶层方式弹出窗口控件
按钮和原窗口是独立的
在这里插入图片描述
//让btn对象 依附在Widget窗口中
btn->setParent(this);//把Widget的指针放进去
在这里插入图片描述

Widget::Widget(QWidget *parent)//构造函数的实现,默认参数在声明和实现中只能有一个

    : QWidget(parent) //初始化列表
//格式:
//    以一个冒号开始,
//   接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟 一个放在括号中的初始值或表达式。
{
   
   
   //创建一个按钮
    QPushButton *btn1 = new QPushButton;
    //btn1->show();//show()方法以顶层方式弹出窗口控件
    //让btn1对象 依附在Widget窗口中
    btn1->setParent(this);//把Widget的指针放进去
    //显示文本
    btn1->setText("第一个按钮");
    //第二种方法创建按钮,会按照控件的大小创建窗口
    QPushButton *btn2 = new QPushButton("第二个按钮",this);
    //上述代码只显示了一个按钮,第二个按钮把第一个按钮覆盖了
    //移动第二个按钮
    btn2->move(100,0);
    //重置窗口大小
    //resize(600,400);//只设定了初始大小,用户仍旧可以拖动修改
    //设置固定的窗口大小
    setFixedSize(600,400);
    //设置窗口标题
    setWindowTitle("窗口标题");
}

信号和槽函数

connect( 信号的发送者 ,发送的具体信号 ,信号的接受者, 信号的处理(槽))
信号槽的优点:松散耦合,信号发送者 和 信号的接受者 本身是没有关联的,通过connect连接,将两者耦合在一起

  //需求:点击按钮,关闭窗口
    //参数1 信号的发送者,参数2 发送的信号(函数的地址),参数3 信号的接受者,参数4 处理的槽函数
    //connect(btn2, &QPushButton::clicked, this,&Widge
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值