Qt Creator:对象模型
来源:互联网 发布:编程证书 编辑:程序博客网 时间:2024/06/05 01:55
QMessageBox 详解:
通过QMessageBox提一个问题,这个是模态对话框。
制作一个询问是否保存的对话框:
信号与槽的基本用法:
newapaper.h#ifndef NEWAPAPER_H#define NEWAPAPER_H#include <QObject>class Newspaper : public QObject{ Q_OBJECTpublic: Newspaper(const QString &name) { m_name = name; } void send() const { emit newPaper(m_name); }signals: void newPaper(const QString &name) const;private: QString m_name;};#endif // NEWAPAPER_H--------------------华丽的分割线------------------------reader.h#ifndef READER_H#define READER_H#include <QObject>#include <QDebug>class Reader : public QObject{ Q_OBJECTpublic: Reader() {} void receiveNewspaper(const QString &name) const { qDebug()<< "Receives Newspaper:" << name; }};#endif // READER_H--------------------华丽的分割线------------------------#include <QApplication>#include "newapaper.h"#include "reader.h"int main(int argc,char *argv[]){ QApplication app(argc,argv); Newspaper newspaper("Newspaper A"); Reader reader; QObject::connect(&newspaper,&Newspaper::newPaper,&reader,&Reader::receiveNewspaper); newspaper.send(); return app.exec();}
如果有重载的信号函数比如:
void newPaper(const QString &name,const QDate &date);
我们的处理方式可以像是Qt4一样写SIANGAL和SLOT宏来连接链接信号函数和槽函数,
QObject::connect(&newspaper,SIGNAL(newPaper(QString,QDate)),&reader,SLOT(receiveNewspaper(QString,QDate)));
因为Qt4的信号槽连接是带参数的。因此,Qt能自己判断清楚究竟是哪一个信号对应了哪一个槽。
如果不是用Qt4的宏,我们可以这么解决:
使用一个函数指针来指明到底是哪一个信号:
void (Newspaper:: *newPaperNameDate)(const QString &,const QDate &) = &Newspaper::newPaper;QObject::connect(&newspaper,newPaperNameDate,&reader,&Reader::receiveNewspaper);
这样我们使用函数指针newPaperNameDate声明了一个带有QString和QDate两个参数,返回值是void的函数,将该函数作为信号与Reader::receiveNewspaper()槽连接,这样就避免了重载带来的不明性。
或者这样写,只是声明了一个匿名的函数指针
再或者是下面的C++的方法:
static_cast用于数值类型之间或者void * 和别的 * 之间(转换)。
有什么问题加我QQ:839505138.
阅读全文
0 0
- Qt Creator:对象模型
- QT对象模型
- Qt对象模型
- Qt Creator
- Qt Creator
- qt creator
- qt creator
- qt creator
- qt creator
- qt creator 中如何改变对象的风格。
- 【Qt】Qt Creator快捷键
- 【QT】对象模型(对象树)
- creator/QT入门 & QT Creator 使用
- 安装 Qt Creator
- QT Creator 介绍
- Qt Creator快捷键
- qt creator 再启航
- Qt creator教程 一
- 架设私人版本控制工具,Ubuntu16.04设置GitLab CE服务器
- 【MongoDB】github版源码编译报错
- HDU 6040 Hints of sd0061(STL nth_element函数)
- 深入理解javascript原型和闭包(1)——一切都是对象
- Windows Message Queue (优先队列的应用)
- Qt Creator:对象模型
- 用Unity 3D生成真实地形(一)
- 【libffi】动态调用&定义C函数
- A simple math problem
- 关于四次挥手的事儿
- 大话设计模式-Study-Tips-第三章-装饰模式
- jsp超强技能树
- LruCache原理分析
- chmod命令原理及用法详解