技术专栏
Qt入门(常用类、方法、信息槽)
常用类
QApplication a(argc, argv); //实例化一个应用
QLabel label("Hello world"); //标签
QPushButton button("Quit"); //button
MainWindow b;b.show(); //窗口
- 1
- 2
- 3
- 4
常用方法
QObject::connect()有五个重载
QMetaObject::Connection connect(const QObject *, const char *,const QObject *, const char *,Qt::ConnectionType);
QMetaObject::Connection connect(const QObject *, const QMetaMethod &,const QObject *, const QMetaMethod &,Qt::ConnectionType);
QMetaObject::Connection connect(const QObject *, const char *,const char *,Qt::ConnectionType) const;
QMetaObject::Connection connect(const QObject *, PointerToMemberFunction,const QObject *, PointerToMemberFunction,Qt::ConnectionType)
QMetaObject::Connection connect(const QObject *, PointerToMemberFunction,Functor);
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
注:Functor类型:这个类型可以接受 static 函数、全局函数以及 Lambda 表达式。
- qDebug()<<"" //类似cout的标准输出
信息槽
信息槽机制,通过QObject::connect()函数实现。
自定义信息槽。
注意:
(1)只有继承了QObject类的类,才具有信号槽的能力
(2)凡是QObject类(不管是直接子类还是间接子类),都应该在第一行代码写上Q_OBJECT,这个宏应该放在头文件中。
(3)实例
//!!! Qt5
#include <QObject>
////////// newspaper.h
class Newspaper : public QObject
{
Q_OBJECT
public:
Newspaper(const QString & name) :
m_name(name)
{
}
void send()
{
emit newPaper(m_name);
}
signals:
void newPaper(const QString &name);
private:
QString m_name;
};
////////// reader.h
#include <QObject>
#include <QDebug>
class Reader : public QObject
{
Q_OBJECT
public:
Reader() {}
void receiveNewspaper(const QString & name)
{
qDebug() << "Receives Newspaper: " << name;
}
};
////////// main.cpp
#include <QCoreApplication>
#include "newspaper.h"
#include "reader.h"
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
Newspaper newspaper("Newspaper A");
Reader reader;
QObject::connect(&newspaper, &Newspaper::newPaper,
&reader, &Reader::receiveNewspaper);
newspaper.send();
return app.exec();
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
<
原文:https://blog.csdn.net/u014451076/article/details/51125338
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包
点赞
收藏
评论
打赏
- 分享
- 举报
评论
0个
手气红包

相关专栏
-
浏览量:1248次2023-07-26 14:12:28
-
浏览量:699次2023-07-28 10:19:40
-
浏览量:2503次2020-08-19 18:24:06
-
浏览量:2413次2020-06-05 10:56:54
-
浏览量:3909次2017-11-15 11:12:04
-
浏览量:7750次2020-11-24 23:11:53
-
浏览量:7353次2020-11-24 23:18:39
-
浏览量:3370次2020-08-22 16:09:02
-
浏览量:3531次2020-08-18 20:09:59
-
浏览量:8465次2020-12-12 17:47:04
-
浏览量:8228次2020-12-12 17:55:00
-
浏览量:2045次2020-08-28 16:40:19
-
浏览量:1421次2023-09-20 17:34:18
-
浏览量:3036次2020-08-21 19:39:43
-
浏览量:15242次2020-11-12 21:55:56
-
浏览量:1042次2023-02-21 17:24:55
-
浏览量:2634次2022-12-08 23:43:55
-
浏览量:2370次2020-08-20 11:19:28
-
浏览量:1335次2022-12-16 12:31:41
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者

在学了在学了!
您的支持将鼓励我继续创作!
打赏金额:
¥1

¥5

¥10

¥50

¥100

支付方式:

举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注