学习Qt:VS中提升控件

提升即继承某个控件新建一个新的控件,用于扩展控件功能。

这里通过提升QListWidget,实现一个在list项中鼠标右键弹出上下文弹框的功能。

1、添加一个QtClass,选择你要继承的控件,这里继承QListWidget,命名为SListWidget ;

2、在SListWidget中添加扩展功能;

#pragma once
#include <qlistwidget.h>
#include <QMenu>
#include <QAction>
#include <QContextMenuEvent>

class SListWidget : public QListWidget
{

public:
	SListWidget(QWidget *parent);
	~SListWidget();
	QMenu* m_contextMenu;
	QAction* m_addAction;
	QAction* m_delAction;
protected:
	void mousePressEvent(QMouseEvent* event);
};

#include "SListWidget.h"

SListWidget::SListWidget(QWidget *parent)
	: QListWidget(parent)
{
	m_contextMenu = new QMenu;
	m_addAction = new QAction(u8"添加", this);
	m_delAction = new QAction(u8"删除", this);
	m_contextMenu->addAction(m_addAction);
	m_contextMenu->addAction(m_delAction);
}

SListWidget::~SListWidget()
{
}

void SListWidget::mousePressEvent(QMouseEvent* event)
{
	QListWidget::mousePressEvent(event);
	if (event->button() == Qt::RightButton)
	{
		if (this->itemAt(mapFromGlobal(QCursor::pos())) == NULL)
			return;
		m_contextMenu->exec(event->globalPos());
	}
}

3、打开qt designer,拖拽出一个QListWidget控件,右键“提升的窗口控件”;

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值