Qt 自定义控件 带UI 不带 UI

当Qt的标准控件无法满足需求时,可以通过自定义控件来增强功能。文中介绍了如何创建一个自定义的Label控件,实现文本过长时的省略和提示功能,以及如何在QtDesigner中通过继承Widget并添加UI来创建自定义控件。此外,还提到了不带UI的自定义控件示例,如带Checkbox的展示栏。
摘要由CSDN通过智能技术生成

 一般自定义控件原因

有时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_H

Part2 : 带UI 继承 widget

Add new。然后添加Qt设计师界面类, 选择 widget

 

 

 

 

 设置类名 

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

 

这里简单的自定义控件就完成了;

双击打开 mainwindow.ui,添加一个 Widget; 右键 提升控件;

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

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

 Part3 不带UI 自定义控件

新建一个C++ 类,继承 widget

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

带不同的颜色,可以选中;

 

all

 

 工程代码我会放资源里;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恋恋西风

up up up

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值