Qt学习二:坐标系规则、log文件的输出以及信号与槽的使用

本文介绍了Qt编程中窗口坐标的规则,包括x轴向右递增,y轴向下递增,以及子窗口相对于父窗口的坐标。详细阐述了如何创建和定位子窗口,并展示了内存回收的顺序。同时,讲解了自定义信号和槽的使用方法,包括信号和槽的声明、连接以及参数传递。最后提到了信号与槽的连接特性,如一个信号可以连接多个槽,反之亦然,以及如何断开连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

窗口相对坐标:
x轴向右递增
y轴向下递增
子窗口坐标系是基于父窗口的

创建一个按钮:

#include <QPushButton>
QPushButton* btn=new QPushbutton(this)
btn.move(10,10)
btn.setFixedSized(200,200)
QPushButton* btn1=new QPushbutton(btn)#内嵌到btn中
btn1.move(10,10)
btn1.setFixedSized(100,100)

内存的回收
析构顺序:先析构子节点窗口,再释放父节点。
指定父对象的两种方式:
1、通过构造函数时直接指定
2、xx.setparent(QWidget *parent/QObject *parent)

debug输出调试信息

#include <QDebug>
aDebug()<<"输出信息“;

作用和C++中的cout<<类似

自定义信号与槽的使用
在对象的基础上实现的。直接新建c++class类,选中object
必须从QObject类或其子类中派生
引入Q_OBJTCT宏否则没有信号与槽的功能

自定义信号:
信号是类的成员函数
返回值是void类型
信号需要使用signals关键字进行声明,使用方法类似public等关键字
信号的调用:在信号函数前加关键字emit(加不加都可)

class Test:public QObject
{
Q_OBJECT
signals:
void testsignal()
#参数的作用是参数传递,谁调用信号函数就指定实参,实参最终会传递给槽函数。
void testsignal(int a )
}

自定义槽函数
其写法和普通函数的写法一样
返回值为void
槽函数需要制定多少参数需要看连接的信号参数的个数,槽函数参数的个数可以小于信号传递的参数(部分参数被忽略)支持重载,
虽然信号只是函数的声明,不涉及函数的定义,而函数中的参数的作用为:相当于槽函数的输入信号。可以理解为当某个动作执行时,有些输入变量是在事件触发的那一时刻产生的,为了将该时刻的信号传入槽函数,就诞生了信号的形参。

信号函数:
void testsig(int a,double b,float c)
槽函数:
void testslot(int a,double b)

拓展:
一个信号可以连接多个槽函数,发送一个信号多个动作执行
需要写多个connect函数
执行顺序是随机的
一个槽函数可以连接多个信号,处理动作是相同的
信号可以连接信号,信号的接受者可以继续发送信号而不一定要执行动作
信号槽是可以断开的
disconnect()

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值