首页| 论坛| 消息

标题:Qt编写自定义控件52-颜色下拉框
作者:liudianwu
日期:2019-09-17 18:52
内容:

一、前言
这个控件写了很久了,元老级别的控件之一,开发之初主要是自己的好几个项目要用到,比如提供一个颜色下拉框设置对应的曲线或者时间颜色,视频监控项目中经常用到的OSD标签设置,这个控件的难度系数接近0,初学者都会,其实网上搜索也很多人提供了绘制的方法,就是枚举QColor::colorNames()拿到所有的内置的颜色,然后生成对应的图片作为icon设置到下拉框的item中去,对应icon的宽高由控件本身的宽高决定,本控件继承自qcombobox控件,完全保留了该控件的所有特性,同时新增了颜色改变信号,以便用户使用。
二、实现的功能
* 1:可设置下拉框元素高度
* 2:可设置下拉框元素宽度
* 3:可设置是否自动调整下拉框元素宽度,根据元素宽高自动调整
三、效果图
.

四、头文件代码
#ifndef COMBOBOX_H
#define COMBOBOX_H
/**
* 自定义宽高下拉框控件 作者:feiyangqingyun(QQ:517216493) 2017-4-11
* 1:可设置下拉框元素高度
* 2:可设置下拉框元素宽度
* 3:可设置是否自动调整下拉框元素宽度,根据元素宽高自动调整
*/
#include
#ifdef quc
#if (QT_VERSION < QT_VERSION_CHECK(5,7,0))
#include
#else
#include
#endif
class QDESIGNER_WIDGET_EXPORT ComboBox : public QComboBox
#else
class ComboBox : public QComboBox
#endif
{
Q_OBJECT
Q_PROPERTY(int itemWidth READ getItemWidth WRITE setItemWidth)
Q_PROPERTY(int itemHeight READ getItemHeight WRITE setItemHeight)
Q_PROPERTY(bool autoWidth READ getAutoWidth WRITE setAutoWidth)
public:
explicit ComboBox(QWidget *parent = 0);
protected:
void showEvent(QShowEvent *);
private:
int itemWidth;//元素宽度
int itemHeight;& ..

回复 发表
主题 版块