qt自定义文件选择器

该代码定义了一个名为FileInterface的类,继承自QWidget,用于文件选择操作。它包含了多种模式如选择文件或目录,且能处理鼠标事件进行窗口拖动。类中使用QFileDialog进行文件对话框的创建,并监听文件选择信号。同时,代码检查了操作系统环境并限制了可选择的路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

头文件

#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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值