一般自定义控件原因
有时Qt 现有控件不能满足我们的开发需求,这时候就需要我们进行自定义控件的使用,自定义控件,这大大提高了设计UI的通用性,程序利用,封装;
Part1 easy one
继续 Lab
自定义Label控件:文本太长省略 + 提示
效果:

CODE:
#ifndef LABELTOOLTIP_H
#define LABELTOOLTIP_H
 
#include <QLabel>
 
class CLabelToolTip : public QLabel
{
	Q_OBJECT
 
public:
	CLabelToolTip(QWidget *parent) : QLabel(parent)
	{
		m_mode = Qt::ElideRight;
	}
 
	~CLabelToolTip(){}
 
	void setText(const QString & strText)
	{
		m_strText = strText;
 
		QFontMetrics elidfont(font());
		QString strRetText = elidfont.elidedText(strText, m_mode, width());
		if (strRetText != strText)
			setToolTip(strText);
		else
			setToolTip("");
		QLabel::setText(strRetText);
	}
 
protected:
	void resizeEvent(QResizeEvent *event)
	{
		setText(m_strText);
	}
 
private:
	QString				m_strText;
	Qt::TextElideMode	m_mode;	
};
 
#endif // LABELTOOLTIP_HPart2 : 带UI 继承 widget
Add new。然后添加Qt设计师界面类, 选择 widget


 
设置类名

next ,completed 进入UI 界面,可以插入几个控件;我这里放了一个 Labe pushbutton

这里简单的自定义控件就完成了;
双击打开 mainwindow.ui,添加一个 Widget; 右键 提升控件;

在提升类名称处,添加刚才的类名,点击添加,选中,再提升按钮

此时控件已经变成我们的自定义控件;运行,展示效果:

Part3 不带UI 自定义控件
新建一个C++ 类,继承 widget

接着在类里添加你需要的就可以,这里我写了一个 自定义 带 checkbox 展示栏
带不同的颜色,可以选中;

all
 
工程代码我会放资源里;



















