大佬赐教,PyQt5的QFileDialog为啥不是原生deepin窗口
Tofloor
poster avatar
CrystalRays
deepin
2019-11-22 10:06
Author
用Qt/C++写QFileDialog调用的是原生的Deepin打开文件对话框,为啥PyQt5的QFileDialog调用的却不是原生的Deepin打开文件对话框

然而在debian+xfce4下PyQt5调用的又是原生的xfce4打开文件对话框,这究竟是为什么啊???

不是原生的太丑了。。。
Reply Favorite View the author
All Replies
avatar
wtz
deepin
2019-11-22 12:01
#1
应该是Python交互式环境下启动进程的方式不太一样吧。
你试试把代码放在单独的.py文件里,然后在终端执行,应该就可以使用原生对话框了。

参考:https://forum.qt.io/topic/31908/ ... og-with-qfiledialog

Reply View the author
avatar
CrystalRays
deepin
2019-11-22 16:50
#2
wtz 发表于 2019-11-22 04:01
应该是Python交互式环境下启动进程的方式不太一样吧。
你试试把代码放在单独的.py文件里,然后在终端执行, ...

一样的,做项目的时候就是用的.py文件
Reply View the author
avatar
鹏鹏
deepin
2019-11-22 21:02
#3
奇怪,我的Qt不是原生........
Reply View the author
avatar
wtz
deepin
2019-11-23 00:12
#4
https://bbs.deepin.org/post/185570
一样的,做项目的时候就是用的.py文件

我这边直接在终端里执行.py,显示的是原生对话框。
如果在交互式python终端里执行,就是Qt自带对话框。

用的代码都一样,就是你提供的代码(QFileDialog.getOpenFileNames(None,"open","*"))
Reply View the author
avatar
CrystalRays
deepin
2019-11-26 07:10
#5
https://bbs.deepin.org/post/185570
我这边直接在终端里执行.py,显示的是原生对话框。
如果在交互式python终端里执行,就是Qt自带对话框。

能提供一下你的系统版本和python版本吗
我试一试
Reply View the author
avatar
wtz
deepin
2019-11-26 09:12
#6
https://bbs.deepin.org/post/185570
能提供一下你的系统版本和python版本吗
我试一试

deepin 15.11,unstable分支。
系统自带Python 3.6.5 测试通过,手动安装的miniconda Python 3.7.3 测试失败。

测试代码:
  1. from PyQt5.QtWidgets import *
  2. app=QApplication([])
  3. QFileDialog.getOpenFileNames(None,"open","*")
Copy the Code
Reply View the author