我是靠谱客的博主 纯情大炮,最近开发中收集的这篇文章主要介绍学习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控件,右键“提升的窗口控件”;

 

 

最后

以上就是纯情大炮为你收集整理的学习Qt:VS中提升控件的全部内容,希望文章能够帮你解决学习Qt:VS中提升控件所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部