头文件
#ifndef FILE_INTERFACE_H
#define FILE_INTERFACE_H
#include <QWidget>
#include <QFileDialog>
#include <QMouseEvent>
#include <QProcess>
#include <QDebug>
#include <QListView>
#include <QTreeView>
namespace Ui {
class FileInterface;
}
class FileInterface : public QWidget
{
Q_OBJECT
public:
enum Mode
{
File = 0,
Type1,
Type1,
Type1,
Type1
Type1,
Type1,
Type1,
Type1
};
public:
explicit FileInterface(QWidget *parent = nullptr);
~FileInterface();
void setMode(Mode mode);
void onlyshow(QPoint point);
protected:
void mouseMoveEvent(QMouseEvent *e) override;
void mousePressEvent(QMouseEvent *e) override;
void mouseReleaseEvent(QMouseEvent *e) override;
bool eventFilter(QObject *obj, QEvent *e) override;
private:
void setFile();
signals:
void ok_select(const QStringList &files);
public:
private:
Ui::FileInterface *ui;
QFileDialog *file_dialog;
QPoint press_point;//鼠标按下去的点
bool is_move;
QString userPath;
QString user;
FileInterface::Mode mode;
};
#endif // FILE_INTERFACE_H
cpp文件
#include "file_interface.h"
#include "ui_file_interface.h"
FileInterface::FileInterface(QWidget *parent) :
QWidget(parent),
ui(new Ui::FileInterface)
{
ui->setupUi(this);
this->setAttribute(Qt::WA_DeleteOnClose);
this->setWindowModality(Qt::ApplicationModal);
this-&g