#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);
}
}
qt 拖拽 实例 pixmap QPushButton失败
4星 · 超过85%的资源 需积分: 20 14 浏览量
2011-07-18
11:37:22
上传
评论 1
收藏 13KB RAR 举报
风声边界
- 粉丝: 193
- 资源: 59
最新资源
- 同态加密python.zip
- 基于Python的PCA人脸识别算法的原理及实现代码详解+源码+详细代码解析+开发文档+数据(毕业设计&课程设计&项目开发)
- Decision tree20240105(1).ipynb
- zuoyezuoyezuoye
- zuoyezuoyezuoye
- 机械设计电机转子装配设备sw22非常好的设计图纸100%好用.zip
- 作业作业作业作业作业作业
- xdotool.c
- RLMD鲁棒性局部均值分解信号分量可视化(Matlab完整源码和数据)
- Screenshot_2024-04-26-17-17-26-36_9d26c6446fd7bb8e41d99b6262b17def.jpg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
前往页