qt如何实现拖拽

2025-10-20 01:39:40

1、新建一个QTextEdit的子类CMyTextEdit。

该类在构造函数数中,通过传入的文件名打开文件,并显示在QTextEdit中

qt如何实现拖拽

qt如何实现拖拽

2、在MainWindow中添加QTabWidget对象。调用setCentralWidget设置QTabWidget为主窗口。

在QTabWidget中添加一个tab页,该tab页的widget就是上一步新建的CMyTextEdit

qt如何实现拖拽

qt如何实现拖拽

3、运行效果如下

qt如何实现拖拽

1、拖拽打开文件,这里实现两个函数drapEnterEent和dropEvent事件

qt如何实现拖拽

2、设置MainWindow接受拖拽事件

qt如何实现拖拽

3、在dragEnterEvent函数中,判断是不是txt格式的文件,如果是就接收,否则拒绝

在dropEvent函数中,获取拖拽文件的路径,并打开

这里主要通过QMimeData结构体存储拖拽文件信息

qt如何实现拖拽

4、运行之后,拖拽第一个文件到窗口,可以正常打开

再拖拽一个文件,可以看到,文件2的路径显示在了文件1的内容里

qt如何实现拖拽

5、这是由于,拖拽文件在QTextEdit上,它接收了拖拽事件。

设置QTextEdit不接收拖拽事件

qt如何实现拖拽

6、这样就可以拖拽多个文件了

qt如何实现拖拽

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢