Qt 界面使用自定义控件 "提升为"
2014-06-17 09:09
337 查看
1.效果图
我做了一个非常简单的例子,一个可以显示颜色的QLabel,边上有个按钮,点击,跳出颜色选取的Dialog,然后选择一个颜色,这个QLabel会变成什么颜色。
2.ColorLabel
我们先把这个自定义的类写好:头文件:
#ifndef COLORLABEL_H #define COLORLABEL_H #include <QLabel> #include <QPainter> class ColorLabel : public QLabel{ Q_OBJECT public: explicit ColorLabel(QWidget *parent=0); void setColor(QColor c); private: QColor color; QPainter *paint; void paintEvent(QPaintEvent *); }; #endif // COLORLABEL_H
实现文件:
#include "colorlabel.h" ColorLabel::ColorLabel(QWidget *parent):QLabel(parent), color(Qt::white){ } void ColorLabel::paintEvent(QPaintEvent *){ paint = new QPainter; paint->begin(this); paint->setBrush(QBrush(color,Qt::SolidPattern)); paint->drawRect(0, 0, this->geometry().width(), this->geometry().height()); paint->end(); } void ColorLabel::setColor(QColor c){ color = c; }
3.界面文件里添加ColorLabel
拖一个普通的QLabel到界面文件里,然后右击这个控件,选择提升为。
输入类名称,就OK了。
我们可以去Qt根据布局文件生成的头文件里面看下,它自己包含了colorlabel.h,把QLabel都改成了ColorLabel。
Qt写起来真是不错。
4.本博文例子下载:
http://www.waitingfy.com/?attachment_id=1170参考:
Qt 界面使用自定义控件
相关文章推荐
- Qt 界面使用自己定义控件 "提升为"
- Qt 界面使用自定义控件 "提升为"
- 使用" 参数化基类" 和" 成员函数指针" 模拟实现虚函数--在实际中的应用
- 写了一个ASP.Net2.0中使用"客户端回调"实现无刷新例子
- 使用truss、strace或ltrace诊断软件的"疑难杂症"
- Word退出时报错 "此文件正由另一个应用程序或用户使用"
- SharePoint2007安装界面中,选择"基本"安装 和"高级" 的区别
- 不要在DEBUG模式下使用STL实现"复杂的"算法
- 如此经典 老婆"使用"说明书
- "Outlook所使用的离线资料夹档案(.ost)是旧的副本````"的问题
- 使用"函数递归"实现的树型菜单 (转)
- 在asp.net中使用ajax时出现的"'Sys' 未定义"的解决方法
- sql 2005如何使用被禁止的"xp_cmdshell"
- 导入js文件时,不使用".."或"~"
- "在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误"的解决方法
- 关于网上邻居"此工作组的服务器列表当前无法使用"问题.
- "单击以激活及使用该控件"的解决方法
- sql中使用""不等于号的误区
- 安装了dns且可以正常工作为什么还有"没有可以使用的"DNS服务器"的错误
- WinForm界面开发之布局控件"WeifenLuo.WinFormsUI.Docking"的使用