V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
yzs0126
V2EX  ›  Python

求教!如何实现: pyqt5 GUI 界面,实现 py 文件的 list 显示,及调用执行

  •  
  •   yzs0126 · 2019-01-14 15:54:12 +08:00 · 2848 次点击
    这是一个创建于 2145 天前的主题,其中的信息可能已经有所发展或是发生改变。
    刚入门 python 和 Pyqt5,想请教大神。
    我想用 pyqt5 开发一个 GUI 程序,界面中能列表形式显示某文件夹下的所有 py 文件和子文件夹,且可以打开子文件夹或选定执行某个 py 文件。
    想问一下这个功能大概如何实现?
    第一个问题在界面中显示文件夹中的 py 文件,用 QListWidget 控件,不知道是否合适,有什么需要注意的关键点
    第二个问题,在显示的文件列表中,选定某个 py 文件执行,这个该怎么实现?
    xpresslink
        1
    xpresslink  
       2019-01-15 10:48:32 +08:00
    如果你刚入门 Python 就做 Qt 开发的话是有困难的。
    你应该先把 Python 语言基础这块提高到中级水平,特别是面向对象这块要加强学一下,然后再把各种标准库都过一遍。
    不然上来你学 Qt 坑太多比较耽误时间。

    说心理话你这个问题问得有点太大了,我只能简单说两句。

    第一个问题在界面中显示文件夹中的 py 文件,用 QListWidget 控件,不知道是否合适,有什么需要注意的关键点
    如果要树型结构显示可以左边用一个 QTreeWidget 右边用 QListWidget,点 QTreeWidget 节点信号触发 QListWidget 调用 os.listdir(path)显示目录中文件列表。

    第二个问题,在显示的文件列表中,选定某个 py 文件执行,这个该怎么实现?
    retcode = subprocess.call(["python", full_path_file_name])
    如果要回显结果
    subproc = subprocess.Popen(["python", full_path_file_name], stdout=subprocess.PIPE)
    subproc.stdout.read()
    yzs0126
        2
    yzs0126  
    OP
       2019-01-15 11:59:22 +08:00
    非常感谢你的建议和对我问题的解答,python 语言这块已经学过一些,也开发了一些功能模块,算是刚入门。尝试一下你给我的解决方案,希望以后能多得到高人们的指点
    yzs0126
        3
    yzs0126  
    OP
       2019-01-15 11:59:41 +08:00
    @xpresslink 非常感谢你的建议和对我问题的解答,python 语言这块已经学过一些,也开发了一些功能模块,算是刚入门。尝试一下你给我的解决方案,希望以后能多得到高人们的指点
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2881 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:03 · PVG 08:03 · LAX 16:03 · JFK 19:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.