QT学习笔记2
QPushButton常用API
1、QPushButton(): 初始化对象
2、show(): 跳出窗口显示
3、move(): 设置按钮位置
4、setParent(): 设置父级窗口
5、setText(): 设置文本内容
窗口常用API
1、resize(): 设置窗口大小
2、setFixedSize: 设置窗口固定大小
3、setWindowTitle: 设置窗口标题
信号和槽
1、连接函数:connect()
2、参数列表:信号发送者,信号,信号接收者,处理的函数
3、松散耦合:信号发送者和信号接收者独立开来
connect(btn,$QPsuhButton::clicked,wight,$QWight::close)
自定义信号和槽
创建Teacher类和Student类都继承于QObejct类,Teacher发送信号,Student接收信号并处理`
触发信号关键字 emit
Teacher.h
class Teacher : public QObject
{
Q_OBJECT
public:
explicit Teacher(QObject *parent = nullptr);
signals:
//自定义信号写在signals下
//返回值为void
//只需声明,不需重载
//可以有参数,也可以重载
void hungry();
public slots:
};
#endif // TEACHER_H
Student.h
class Student : public QObject
{
Q_OBJECT
public:
explicit Student(QObject *parent = nullptr);
signals:
public slots:
//与信号不同的地方在于,自定义槽需要声明和实现
void treat();
};
Student.cpp
void Student::treat()
{
qDebug()<<"aa";
}
自定义信号和槽重载
信号和槽发生重载时,会导致connect中无法具体识别到具体信号和槽,这时候就需要用到函数指针指向具体的信号和槽,便于connect函数辨别。
函数指针:其本质是一个指针变量,该指针指向这个函数
//使用函数指针 返回值类型 + (指针变量) + (参数列表)
void(Teacher:: *teacherSignal)(QString) = Teacher::hungry;
void(Student:: *studentSlot)(QString) = Student::treat;
connect(teacher,teacherSignal,student,studentSlot);