Qt学习
Binary Oracle
一名热爱开源和技术的Coder , 开源框架spring committer , golang开源网络库netpoll committer; (脱产备战25考研中,停更一年)
展开
-
QT从控件部分知识点整理
QT中的工具栏和菜单栏QMainWindow菜单栏创建演示:工具栏创建演示:状态栏创建演示:铆接部件(浮动窗口)创建演示:中心部件创建演示:资源文件添加QMainWindow菜单栏在为空的状态下,什么都不会显示菜单栏创建演示: //菜单栏创建---菜单栏最多只能有一个 QMenuBar*b=menuBar(); //将菜单栏放入到窗口中---菜单栏在为空的状态下,什么都不会显示 setMenuBar(b); //创建菜单 QMenu *fileMen原创 2021-07-14 10:05:05 · 325 阅读 · 0 评论 -
Qt中的lambda表达式
Qt中的lambda表达式lambda用法超详细讲解 [=]{btn->setText("我的名字叫开机");}; 这是lambda表达式函数的声明,不是调用 QPushButton* btn=new QPushButton("我的名字叫做关机",this); resize(600,400); btn->resize(200,100); //lambda表达式在Qt中应用 [=]{btn->setText("我的名字叫开机");}();//原创 2021-04-11 22:58:04 · 8324 阅读 · 2 评论 -
Qt自定义信号和槽
案例需求: 创建一个老师类和学生类,下课后,老师触发饿了的信号,学生响应老师饿了的信号,并且请老师吃饭老师类.h#ifndef TEACHER_H#define TEACHER_H#include <QObject>class Teacher : public QObject{ Q_OBJECTpublic: explicit Teacher(QObject *parent = nullptr); //自定义信号,写到signal下signals:原创 2021-04-09 23:17:30 · 263 阅读 · 1 评论 -
Qt信号和槽入门介绍和使用
Qt中如何把发出动作的某个东西和动作本身连接起来,从而触发一个事件呢?通过上图可得:Qt中通过connect函数来进行连接,从而触发一个事件代码演示前,我们需要之前信号这个东西在帮助文档里面怎么找到,首先我们这里是创建一个按钮控件。实现点击按钮,关闭窗口,那么就应该去父类QPushButton类中找signal信号函数:处理的槽函数:关闭当前窗口,当前窗口所属于的类是QWidget,因此去QWidget类里面找实现关闭功能的槽函数下面通过代码演示: QPushButton* mybt原创 2021-04-09 18:38:12 · 243 阅读 · 0 评论 -
Qt对象树
对象模型(对象树)类似于c++中虚析构实现的功能一样,在释放父类对象的同时调用子类的析构函数释放子类对象也c++调用析构函数的区别是:会先调用父类的析构函数,然后一层层往下调用子类析构,直到调用到底层子类析构,然后再把底层子类挨个往上释放,直到基类对象被释放的时候结束,这里注意:在调用析构函数的同时会执行里面的代码在Qt中创建对象的时候会提供一个Parent对象指针,下面来解释这个parent到底是干什么的。 QObject是以对象树的形式组织起来的。 当你创建一个QObject对象时,原创 2021-04-09 17:46:49 · 361 阅读 · 0 评论 -
Qt之按钮相关基本操作
使用按钮控件需要包含头文件:QPushButton按钮创建和显示: //创建一个btn的按钮对象 QPushButton* btn=new QPushButton; //显示该按钮,调用show函数显示按钮 //show用顶层的方式弹出,即会独立显示一个按钮窗口 btn->show();如何将按钮显示到当前对象所处的窗口中呢? //创建一个btn的按钮对象 QPushButton* btn=new QPushButton; //原创 2021-04-08 22:12:06 · 1115 阅读 · 0 评论 -
Qt学习-----------7之lambda表达式
lambda表达式c++11中lambda表达式用于定义并创建匿名的函数对象lambda表达式的基本构成:[函数参数对象](操作符重载函数参数)mutable->返回值{函数体};void(Teacher::*tsignal)(QString)=&Teacher::hungry; //函数地址就是函数的名字 void(Student::*ssignal)(QString)=&Student::treat; connect(tt,tsignal,st,原创 2021-02-05 11:25:23 · 225 阅读 · 0 评论 -
QT学习---------6之信号和槽的拓展
信号和槽的拓展拓展1.信号可以连接信号2.一个信号可以连接多个槽3.多个信号可以连接同一个槽函数4.信号和槽的参数必须类型一一对应5.信号的参数个数可以多于槽函数,但类型也要对应6.断开信号 disconnect(tt,tsignal2,st,ssignal2);Widget.cpp#include "widget.h"#include "ui_widget.h"#include"student.h"#include"teacher.h"#include<QPushButt原创 2021-02-05 10:13:36 · 321 阅读 · 0 评论 -
Qt学习--------5之自定义信号和槽
自定义信号和槽自定义信号:写到signal下返回值是void,只需要声明,不需要实现可以有参数,可以重载自定义槽:早期版本是写在public slots:下的,高级版本写在public或者全局函数下返回值是void需要写声明和实现可以有参数,可以发生重载触发自定义信号:emit 自定义信号名分别创建老师和学生的.cpp和.h文件,然后在teacher.h里面的signal:下写上void hungry()函数的声明无需写定义,在student.h里面public下写上槽函数void原创 2021-02-04 21:34:15 · 188 阅读 · 0 评论 -
Qt学习-------4之信号和槽
Qt学习------4信号和槽(1)connect(信号发送者,发送的具体信号,信号接收者,信号的处理(槽))信号和槽的优点:松散耦合,信号发送端和信号接收端本身没有关系,通过connect链接将两端耦合在一起去帮助文档中找相关函数:槽的英文:slot //创建一个自己按钮的对象 NewPushButton *btn3=new NewPushButton; btn3->setText("关闭程序"); //移动按钮位置 btn3->mov原创 2021-02-04 17:41:29 · 210 阅读 · 0 评论 -
Qt学习------03之对象树
Qt学习------03对象树:1.当创建的对象在堆区的时候,如果指定的父亲是QObject派生下来的类或QObject子类派生下来的类,可以不用管理释放操作,会将对象放入到对象树种2.一定程度上简化了内存的回收机制简单理解:用new语句动态创建在堆区的内存,可以由父类在调用自身析构函数的同时也释放子类在堆区的内存后续持续更新…可点击主页查看...原创 2021-02-04 15:40:04 · 162 阅读 · 0 评论 -
Qt学习----02之常用操作
Qt学习-----02命名规范和快捷键:按钮控件相关常用操作#include "widget.h"#include "ui_widget.h"#include <QPushButton> //按钮控件的头文件Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget){ ui->setupUi(this); //创建一个按钮(动态方式创建) QPush原创 2021-02-04 15:17:23 · 187 阅读 · 0 评论 -
Qt学习--01之认识Qt
Qt学习—01Qt下载地址:Qt下载网址注意:1.所创建项目路径不能有中文2.所创建项目名称不能有中文和空格3.默认创建有窗口类 widget,基类有三种选择:QWidget所有窗口的基类,QMainWindow带一些菜单栏,状态栏,工具栏的窗口,QDialog对话框窗口main.cpp里面的函数介绍:#include "widget.h"#include <QApplication> //包含一个应用程序类的头文件//main程序的入口 argv命令行变量的数组 ar原创 2021-02-04 14:11:17 · 237 阅读 · 0 评论