qt学习2

一.按钮

1.按钮属性的设置

创建按钮的方法一:

    //在窗口中添加按钮
    QPushButton *button = new QPushButton;
    //另外创建一个窗口显示按钮
    //button->show();

    //在当前窗口中显示按钮
    button->setParent(this);

    //**************按钮属性的设置*************
    //设置按钮的内容
    button->setText("第一个按钮");

    //设置按钮的显示位置
    button->move(100,100);

    //设置按钮的大小
    button->setFixedSize(100,100);

呈现的效果:
在这里插入图片描述
创建按钮的方法二:

QPushButton *button = new QPushButton("第二个按钮",this);

两个方法的区别:

  • 方法一窗口为默认大小,按钮显示在左上角
  • 窗口是根据按钮的大小来创建的

2.对象树

用来表示Qt对象间父子关系,在Qt中每一个QObject对象(包括其子类)都有一个子对象列表
特点有:

  • 用来表示组件间的包含关系:如窗口中的按钮,窗口就是父,按钮就是子
  • 当父对象析构的时候,在子对象列表中的所有对象都会被析构
  • 在一定程度上解决了内存问题,简化内存回收

3.Qt窗口坐标体系

其Qt图形化界面都是以左上角为原点,向右为x轴,向下为y轴

二.信号和槽机制

  • 当发生某件事时会发出一个信号,其信号是广播形式发出,
  • 当每个对象对其信号感兴趣是会接受其信号,并触发某种动作,其动作就是槽
  • 可以将该事件和该对象使用连接函数进行绑定

1.连接函数

//参数含义:信号发出者,信号,信号接受者,接受信号后的动作
connect(sender,signal,receiver,slot)

2.自定义信号和槽

步骤:

  • 确定场景
  • 创建自定义信号发出类和信号接受类
  • 在发出类中声明信号(可以只声明),在信号接受类中声明槽函数并实现
  • 信号声明在signals中,槽可以一般声明在public slots,也可以声明在public或者全局中
  • 创建发出类的对象和接受类的对象,创建连接
  • 使用emit关键字发出信号

举例:

#include <QDebug>
//发出信号的类
class Teacher :public QObject
{
	Q_OBJECT
public:
	explicit Teacher(QObject *parent = 0);
signals:
	void hungury();
public slots:
}

//接受信号的类
class Student :public QObject
{
	Q_OBJECT
public:
	explicit Student (QObject *parent = 0);
signals:

public slots:
	void treat();
}

void Student::treat(){
	qDebug()<<"请老师吃饭";
}

//触发函数
void ClassOver(){
	//使用emit关键词发出信号
	emit teacher->hungury();
}

搞钱的第二十一天,加油

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值