推荐学习书目
› 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 · Jan 14, 2019 · 3605 views
    This topic created in 2855 days ago, the information mentioned may be changed or developed.
    刚入门 python 和 Pyqt5,想请教大神。
    我想用 pyqt5 开发一个 GUI 程序,界面中能列表形式显示某文件夹下的所有 py 文件和子文件夹,且可以打开子文件夹或选定执行某个 py 文件。
    想问一下这个功能大概如何实现?
    第一个问题在界面中显示文件夹中的 py 文件,用 QListWidget 控件,不知道是否合适,有什么需要注意的关键点
    第二个问题,在显示的文件列表中,选定某个 py 文件执行,这个该怎么实现?
    xpresslink
    xpresslink
    Jan 15, 2019
    1
    如果你刚入门 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
    yzs0126
    OP
    Jan 15, 2019
    2
    非常感谢你的建议和对我问题的解答,python 语言这块已经学过一些,也开发了一些功能模块,算是刚入门。尝试一下你给我的解决方案,希望以后能多得到高人们的指点
    yzs0126
    yzs0126
    OP
    Jan 15, 2019
    3
    @xpresslink 非常感谢你的建议和对我问题的解答,python 语言这块已经学过一些,也开发了一些功能模块,算是刚入门。尝试一下你给我的解决方案,希望以后能多得到高人们的指点
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4048 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 07:11 · PVG 15:11 · LAX 23:11 · JFK 02:11
    ♥ Do have faith in what you're doing.