继承 了解思想 C++
2016-06-27 13:00
267 查看
#ifndef MYBUTTON_H #define MYBUTTON_H #include <<span style="font-family: Arial, Helvetica, sans-serif;">QPushButton</span><span style="font-family: Arial, Helvetica, sans-serif;">></span> class MyButton : public QPushButton { Q_OBJECT public: explicit MyButton(QWidget *parent = 0); MyButton(const QString& text, QWidget* parent = 0); QRect _rect; QString _text; bool _pressed; void mousePressEvent(QMouseEvent *); void mouseReleaseEvent(QMouseEvent *); void paintEvent(QPaintEvent *); signals: void clicked(); public slots: }; #endif // MYBUTTON_H
#include "MyButton.h" #include <QPainter> #include <QMouseEvent> MyButton::MyButton(QWidget *parent) : QWidget(parent), _rect(0, 0, size().widht, size().height), _text(QString()) { _pressed = false;
} MyButton::MyButton(const QString &text, QWidget *parent): QWidget(parent), _text(text), _rect(0, 0, 100, 30) { _pressed = false; this->setGeometry(_rect); } void MyButton::mousePressEvent(QMouseEvent *) { _pressed = true; update(); } void MyButton::mouseReleaseEvent(QMouseEvent *ev) { _pressed = false; update(); if(_rect.contains(ev->pos())) emit clicked(); // callback handler } void MyButton::paintEvent(QPaintEvent *) { QPainter p(this); if(_pressed) p.setBrush(Qt::yellow); else p.setBrush(Qt::darkGray); p.drawRect(_rect); p.drawText(_rect, _text, QTextOption(Qt::AlignCenter)); }
完毕
学无止尽 只能学个思想先 后续看需要学习
相关文章推荐
- C++中protected的访问权限
- 常见算法:C语言求最小公倍数和最大公约数三种算法
- C Primer Plus 中文版 前言
- 《Effective C++》读后感
- C++使用sqlite的方法
- C++入门(1):程序、编译器和操作系统
- C/C++类实现值传递
- C++ 运算符重载二(一元运算符重载)
- c语言 实现按行读取文件。把内容按照第三种内存模型打包数据传出,把行数通过函数参数传出
- c++文件操作详情
- C++之重载重写重定义
- C/C++头文件与变量的声明和定义
- Java与C++创建对象
- 值得推荐的C/C++框架和库
- 在C语言中如何产生随机数
- C++日志系统log4cxx使用总结
- C++11 move语意
- jni c++
- 函数的重载
- C#中调用C++的dll的参数为指针类型的导出函数(包括二级指针的情况)