此代码来自某群,并不是自己写,供给各位学习参考。
废话不多说,直接先看效果图。有兴趣的小伙伴可以学习一下。
这个只是简单的 通过标签打开一个文件,然后可以拖拽一个文件进入框内,然后进行操作。
这里各位可以看到实际上的内容并不是很多,实际里面代码量也不大,可以简单上手学习一下,这里先讲一下用了二个头文件。
在这个widget.ui界面设计里面有2个框
大家可以看到界面里面有两个框,一个是建立QT的时候 生成的一个UI ,另外一个是提升的,当然这里假设各位已经会的, 如果不会可以私聊我,提升来源于头文件里面的各位可以看到类名是一致的。
这样得话 就可以通过我们自己建立的UI 和新生成的类联系在了一起(刚开始自己看的时候不是特别理解,这里给各位讲一下,少走一点弯路)。好了,该上代码了,各位最关心的。
这个是我刚建立文件的时候 我没有改文件名 自己生成的带UI的文件,这里大家可以看到并没有代码在里面,而都在另外一个filedropcomponent里面,这就说明,在UI里面通过提升,就像实例化了一样 可以供我们使用里面的功能。
关键文件就是这个 ,重点会讲解方框里面的4个部分。
#include "filedropcomponent.h"
#include <QDebug>
#include <QDragEnterEvent>
#include <QFileInfo>
#include <QTextCodec>
#include <QMimeData>
#include <QStyleOption>
#include <QPainter>
#include <QFileDialog>
FileDropComponent::FileDropComponent(QWidget *parent) : QWidget(parent)
{
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
setAcceptDrops(true);
m_filenameLabel = new QLabel(this);
m_filenameLabel->setObjectName("filenameLabel