QT:三态按钮
来源:互联网 发布:金牛网络 编辑:程序博客网 时间:2024/05/18 01:59
三态按钮(普通态,鼠标停留态,点击态)在设计炫丽界时是很常用的一项功能,但QT并没有直接支持这个功能,只好自己写一个了,通过继承QToolButton实现。
上代码:
#include <QtGui>class CoolButton : public QToolButton{Q_OBJECTprivate:QIcon m_NormalIcon;QIcon m_FocusIcon;QIcon m_PressedIcon;protected:void enterEvent(QEvent *event);void leaveEvent(QEvent *event);void mousePressEvent(QMouseEvent *event);void mouseReleaseEvent(QMouseEvent *event);public:CoolButton(QWidget *parent = 0);virtual ~CoolButton();void SetButtonIcons(const QIcon &normal, const QIcon &focus = QIcon(),const QIcon &pressed = QIcon() );};CoolButton::CoolButton(QWidget *parent): QToolButton(parent){//为了让图标看起来自然一点而设置了这两个操作setDown(false);setFocusPolicy(Qt::NoFocus);}CoolButton::~CoolButton(){}//重载“进入”和“离开”事件,进入时切换为另一个图标,离开时还原void CoolButton::enterEvent(QEvent *event){if( isEnabled() && !m_FocusIcon.isNull() )setIcon(m_FocusIcon);}void CoolButton::leaveEvent(QEvent *event){if( isEnabled() )setIcon(m_NormalIcon);}//重载鼠标事件void CoolButton::mousePressEvent(QMouseEvent *event){if( isEnabled() && !m_PressedIcon.isNull() )setIcon(m_PressedIcon);QToolButton::mousePressEvent(event);}void CoolButton::mouseReleaseEvent(QMouseEvent *event){if( isEnabled() && m_FocusIcon.isNull() )setIcon(m_FocusIcon);QToolButton::mouseReleaseEvent(event);}void CoolButton::SetButtonIcons(const QIcon &normal, const QIcon &focus, const QIcon &pressed){m_NormalIcon = normal;m_FocusIcon = focus;m_PressedIcon = pressed;setIcon(m_NormalIcon);}#include "main.moc"int main(int argc, char **argv){QApplication app(argc, argv);CoolButton *button = new CoolButton;//QObject::connect(button, SIGNAL(clicked()), qApp, SLOT(quit()));button->setIconSize(QSize(40, 40));button->SetButtonIcons(QIcon("normal.png"), QIcon("focus.png"), QIcon("pressed.png"));button->show();return app.exec();}
- QT:三态按钮
- Qt按钮三态
- QT实现按钮的三态
- Qt利用样式表实现三态按钮
- Qt实现自定义按钮的三态效果
- Qt实现自定义按钮的三态效果
- Qt实现自定义按钮的三态效果
- Qt之qss实现按钮三态.
- 三态位图按钮
- Delphi 三态按钮
- Delphi 三态按钮
- 自定义按钮三态
- QT button 的三态
- WPF 三态按钮(PNG贴图)。。。。。。。。。。。
- Qt设置背景色,按钮添加图片,实现三态,label添加图片,设置字体大小,颜色等基本操作
- 如何一个创建三态下压按钮
- SDK平台三态按钮的实现
- Qt按钮为什么设置了三态点击样式效果,无法得到预期,enabled属性为何无法选中 - C/C++解惑之Qt
- multipart form-data boundary 说明
- multipart form-data boundary 说明
- Java Web 服务,第 2 部分: 深度探索 Axis2:AXIOM
- SAP Pa studay,Material master
- U盘引导的基于64位DVD版的fedora 16安装
- QT:三态按钮
- mydql DATE, DATETIME, TIMESTAMP 日期和时间函数
- Linux奥秘 ——读书笔记(1)BIOS
- [CloudBox] 基于跨平台框架的愤怒鸟滑动按钮范例
- 动态库与静态库
- 第⑨周实验报告④
- core调试
- Android中View绘制流程以及invalidate()等相关方法分析
- 关于Regex例子