#include "treewidget.h"
#include <QTreeWidgetItem>
#include <QMouseEvent>
#include <QtGui>
TreeWidget::TreeWidget(QWidget *parent) :
QTreeWidget(parent)
{
this->setColumnCount(1);
QTreeWidgetItem *item = new QTreeWidgetItem();
item->setText(0,tr("ButtonControl")); //按钮控件
this->addTopLevelItem(item);
setAcceptDrops(true);
}
void TreeWidget::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton)//如果时鼠标左键
startPos = event->pos(); //记录鼠标左键位置
QTreeWidget::mousePressEvent(event);
}
void TreeWidget::mouseMoveEvent(QMouseEvent *event)
{
if (event->buttons() & Qt::LeftButton) {//如果是鼠标左键
int distance = (event->pos() - startPos).manhattanLength();
if (distance >= QApplication::startDragDistance())
performDrag();
}
QTreeWidget::mouseMoveEvent(event);
}
void TreeWidget::dragEnterEvent(QDragEnterEvent *event)
{
TreeWidget *source =
qobject_cast<TreeWidget *>(event->source());
if (source && source != this) {
event->setDropAction(Qt::MoveAction);
event->accept();
}
}
void TreeWidget::dragMoveEvent(QDragMoveEvent *event)
{
TreeWidget *source =
qobject_cast<TreeWidget *>(event->source());
if (source && source != this) {
event->setDropAction(Qt::MoveAction);
event->accept();
}
}
void TreeWidget::dropEvent(QDropEvent *event)
{
TreeWidget *source =
qobject_cast<TreeWidget *>(event->source());
if (source && source != this) {
QTreeWidgetItem *item = new QTreeWidgetItem();
item->setText(0,event->mimeData()->text());
this->addTopLevelItem(item);
event->setDropAction(Qt::MoveAction);
event->accept();
}
}
void TreeWidget::performDrag()
{
QTreeWidgetItem *item = currentItem();
if (item) {
QMimeData *mimeData = new QMimeData;
QString strText = item->text(0);
mimeData->setText(strText);
QDrag *drag = new QDrag(this);
drag->setMimeData(mimeData);
QString strImage = QString(":/images/%1.png").arg(strText.toLower());
drag->setPixmap(QPixmap(strImage));
drag->exec(Qt::MoveAction);
}
}
风声边界
- 粉丝: 193
- 资源: 59
最新资源
- 板材冲压上下料摆臂机器人sw2016全套技术资料100%好用.zip
- 基于springboot的闲一品源码(java毕业设计完整源码+LW).zip
- 最新更新!!!全国1米分辨率利用数据
- 使用Word文档模板转换内容导出,支持Word动态生成表格
- win11 24H2 专业版无法使用vmware的虚拟引擎AMD-V功能
- 数据恢复 Wondershare Recoverit for Mac v13.0.8.16
- TIG机器人焊接机工作站sw2016可编辑全套技术资料100%好用.zip
- Z型提升机往复式提升机垂直提升机sw12可编辑全套技术资料100%好用.zip
- 51系列单片机+项目学习+LED/数码管/定时器/按键/LCD1602/超声波/抢答器/交通灯/时钟等
- python 去掉并提取图片颜色
- 展厅专用播放软件udp播放器tcp播放器,串口播放器,http等协议、解决展厅各种复杂要求、完美适配甲方/业主播放需求 原创作者,转载请说明来源
- 企业微信调用API列表
- GBK与UTF8编码相互转换
- 最新整理!!!30米空间分辨率中国年度耕地栅格数据集1986-2021
- 某电视直播源的获取脚本
- 倍速链线sw14可编辑全套技术资料100%好用.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
前往页