Qt入门(常用类、方法、信息槽)
2016-04-11 20:43
357 查看
常用类
QApplication a(argc, argv);//实例化一个应用
QLabel label("Hello world");//标签
QPushButton button("Quit");//button
MainWindow b;b.show();//窗口
常用方法
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);
注:Functor类型:这个类型可以接受 static 函数、全局函数以及 Lambda 表达式。
2.
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(); }
相关文章推荐
- QT中文乱码解决方法
- Qtcreator 修改工程名字的方法
- Qt 创建文件浏览器
- Qt QString.arg参数的一点注意
- Qt移动应用开发(三):使用精灵图片实现帧动画
- QString 的使用技巧
- qt 中的基本知识
- qt中文乱码问题(1)
- qtreewidget 添加复选按钮
- Qt做发布版,解决声音和图片、中文字体乱码问题
- Ubuntu14.04 x64 qt集成cuda开发
- Qt之等待提示框(QMovie播放gif图片,等待文字变化等)
- 发布的QT程序无法显示图标和图片的问题
- Qt下libusbwin32的使用方法
- LinqToSqlite
- Qt不规则界面及组件的实现
- Qt下 QString转char*
- Qt 水平滚动字幕2
- Qt实现滚动字幕效果
- Qt实现滚动图片效果