对C++保护成员的思考
来源:互联网 发布:爱编程 微信小程序 编辑:程序博客网 时间:2024/05/17 00:02
这几天又考虑将QT好好学一下,由于C++学过,但很少用,对里边的好多理论忘记了不少。
学习网上一个关于事件类型和处理的QT例子,对里边自定义的类继承QLabel类,并在自定义的类EventLabel里使用了QLabel的保护成员函数,代码如下:
#include <QApplication>#include <QWidget>#include <QLabel>#include <QMouseEvent>//声明了一个EventLabel类//mouseMoveEvent mousePressEvent mouseReleaseEvent三个从QLabel继承过来的class EventLabel : public QLabel{protected: void mouseMoveEvent(QMouseEvent *event); void mousePressEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *event);};void EventLabel::mouseMoveEvent(QMouseEvent *event){ QString msg; msg.sprintf("<center><h1>Move: (%d, %d)</h1></center>", event->x(), event->y()); this->setText(msg);}void EventLabel::mousePressEvent(QMouseEvent *event){ QString msg; msg.sprintf("<center><h1>Press: (%d, %d)</h1></center>", event->x(), event->y()); this->setText(msg);}void EventLabel::mouseReleaseEvent(QMouseEvent *event){ QString msg; msg.sprintf("<center><h1>Release: (%d, %d)</h1></center>", event->x(), event->y()); this->setText(msg);}int main(int argc, char *argv[]){ QApplication app(argc, argv); EventLabel *label = new EventLabel; label->setWindowTitle("MouseEvent Demo"); label->resize(300, 200); label->show(); return app.exec();}在类EventLabel定义里,继承了三个QLabel类也有的三个保护成员
class EventLabel : public QLabel{protected: void mouseMoveEvent(QMouseEvent *event); void mousePressEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *event);};相当于在这个新类里边,继承了QLabel的这个三个保护成员的一部分功能,同时也重新定义了这三个函数内容。
原QT工程功能:实时显示鼠标的坐标,如下:
当然,由于是C++理论不熟练,才有此想法:这个新类从QLabel继承了三个保护函数,相当于继承了鼠标的操作与三个函数的连接关系(具体就是点击鼠标、松开、移动与三个函数的对应关系),在新类里边应用了这种对应关系,然后重新编写了函数要完成的内容。(先放在这,以后熟练了再纠正这个想法)
阅读全文
0 0
- 对C++保护成员的思考
- 一个问题引发的对类成员指针的思考
- 对java 内部类成员变量引用的思考
- 对java中的成员变量内存分配的思考
- 对思考的思考
- 对c语言内存的思考
- 类成员的保护方式
- c语言对执行文件的简单保护
- 公有派生的公有成员、保护成员和私有成员
- 对无效思考的思考
- 保护成员
- Objective C 有没有 共有 私有 受保护的 成员变量概念?
- 对两个奇葩的C语言程序的思考
- 读书笔记c专家第5章对链接的思考
- 对linux下C编译mysql出错的思考
- 【C专家编程】第5章 对链接的思考
- 对C/S(客户端/服务器)应用的思考
- 对“Professional C++” 中若干知识点的小结与思考
- SDNU 1030.烽火台 SPFA
- 学习笔记之JavaScript——知识点(5)
- 49. Group Anagrams
- ActiveMQ的简单使用
- Vue实例中的生命周期
- 对C++保护成员的思考
- android中view手势滑动冲突的两种解决方法
- java正则表达式创建
- COUNTIF函数的16种公式设置
- Android Studio打包,生成jks密钥,签名Apk,多渠道打包
- ELK安装
- Windows Message Queue
- ios-裁剪上下文的渲染的区域
- 使用eclipse运行lingpipe