QT学习记录(一)事件 (event)
2015-09-19 00:32
351 查看
<pre name="code" class="cpp"><pre name="code" class="cpp">// QT5!! /******custombutton.h************/ #ifndef CUSTOMBUTTON #define CUSTOMBUTTON #include <QPushButton> #include <QMouseEvent> class CustomButton : public QPushButton { Q_OBJECT public: CustomButton(QWidget *parent = 0); protected: void mousePressEvent(QMouseEvent *event); private: void onButtonCliecked(); }; #endif // CUSTOMBUTTON /******custombutton.cpp*********/ #include "custombutton.h" #include <QDebug> CustomButton::CustomButton(QWidget *parent): QPushButton(parent) { connect(this, &CustomButton::clicked, this, &CustomButton::onButtonCliecked); } void CustomButton::onButtonCliecked() { qDebug() << "You clicked this!"; } //构造函数中的connect(信号槽)操作将 //鼠标点击这个 信号(CustomButton::clicked)(插头) //和 私有函数onButtonCliecked(插槽)连接在一起 //但在重载过mousePressEvent后,上述插槽的响应不复存在 //从该函数覆盖掉上面的“you clicked this”,可以推断出这个函数 //本身发出了clicked()信号 void CustomButton::mousePressEvent(QMouseEvent *event) { if(event->button() == Qt::LeftButton) qDebug() << "Left"; else QPushButton::mousePressEvent(event); } /*********main.cpp********************/ #include "mainwindow.h" #include <QApplication> #include "custombutton.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); CustomButton btn; btn.setText("This is a button"); btn.show(); return a.exec(); }收获:1.基类的虚函数,派生类可以不重新定义,但是一旦派生类声明该函数,就必须给予实现方式,否则程序报错!比如该程序中的mousePressEvent继承自QPushButton。
相关文章推荐
- Qt5.5连接MySQL
- qt中出现库函数无法解析的外部符号
- 自学QT之实现窗口移动
- QT调用VC dll方法
- QT开发环境在mini2440上移植
- 搭建嵌入式QT开发环境
- Helloworld 之 【QT 5.5.0 MSVC 2012 + OpenCV 2.4.9 】
- Qt Multimedia--- note
- Python+Matplotlib+PyQt4做的简单数据预测工具
- QT创建登录页面
- Qt利用QProcess打开路径(含中文路径)的方法
- 设置QTableWidget的左上角CornerWidget的文字(三)
- 设置QTableWidget的左上角CornerWidget的文字(二)
- pycharm集成pyqt设置步骤遇到的问题
- 使用 Visual Studio 2015 编译 QT 工程
- QT int转16进制,并补0
- 设置QTableWidget的左上角CornerWidget的文字(一)
- pycharm集成pyqt设置步骤
- QT的信号槽值传递
- QT文档的用法