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
BlueWaters
V2EX  ›  Python

PyQt/PySide 界面布局的选择与建议

  •  
  •   BlueWaters · 320 天前 · 3187 次点击
    这是一个创建于 320 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在使用 PyQt 和 PySide 进行界面布局时,大家更倾向于使用 Qt Designer 还是直接编写代码呢?我很好奇,大家的常用选择。另外,如果选择使用 Qt Designer 布局界面,我通常会在 GitHub 上寻找一些现成的组件库,但貌似这些库往往不支持在 Qt Designer 中使用,只能通过代码调用。这让我感到有点难受

    26 条回复    2024-10-28 09:17:50 +08:00
    tairan2006
        1
    tairan2006  
       320 天前 via Android
    直接写代码
    NoOneNoBody
        2
    NoOneNoBody  
       320 天前
    直接写
    Abbeyok
        3
    Abbeyok  
       320 天前
    直接写代码布局的我感觉都是神人,我都是用 QT Designer
    XIVN1987
        4
    XIVN1987  
       320 天前
    Qt Designer ,,不过我写的程序一般比较简单。。
    maxwel1
        5
    maxwel1  
       319 天前
    QT Designer ,主要用于自己开发小工具,操作界面不是特别复杂。
    fbichijing
        6
    fbichijing  
       319 天前
    布局我自己倒是喜欢直接在界面上弄,非必要情况下不通过代码。不过这应该是个人喜好,没什么好与不好的。

    > 如果选择使用 Qt Designer 布局界面,我通常会在 GitHub 上寻找一些现成的组件库
    我不太理解这句话的意思。是它默认的控件里面有些功能需要对控件进行深度定制吗?如果只是单纯实现软件功能这一点的话,默认的控件大部分时候应该是足够的。
    sinx003
        7
    sinx003  
       319 天前
    我都是混着来,有 Designer 方便点,没有灵活点。你们 leader 没要求,怎么舒服怎么来吧
    BlueWaters
        8
    BlueWaters  
    OP
       319 天前
    @fbichijing 抱歉,我的表述可能有些不清楚。我的本意是在 GitHub 上寻找一些 UI 组件库,以便美化界面,但似乎这些组件库无法在 Qt Designer 中使用。
    zypdominate1
        9
    zypdominate1  
       319 天前
    大佬们,推荐几个适合新手学习 PyQt 的项目练手,谢谢~
    opiviqo
        10
    opiviqo  
       319 天前
    必需用 Qt Designer 不要用别人的组件库
    kuonkuon
        11
    kuonkuon  
       319 天前
    你说的这两种感觉应该搭配着来,我是先使用 Qt Designer ,将所以窗体、层级布局什么的拉好,详细参数全都不动,然后导出融入到自己的应用代码中,比手动敲快很多。之后就在代码中去写参数、跳转之类的,你说的美化也是。
    jianchang512
        12
    jianchang512  
       319 天前
    如果有较多动态插入、动态修改的界面元素,还是直接写代码比较方便

    如果需要的所有元素除了 list/tree 这类布局内的子控件,都随着设计完毕完全显示在了界面上,使用 Designer 比较方便
    NoOneNoBody
        13
    NoOneNoBody  
       319 天前
    @zypdominate1 #9
    你这样问,又没有方向,无法推荐啊
    凡是 GUI ,复杂的都是事件太多,每个都要响应,才能算“好”,举例:本来只是做同一件事(播放|暂停),你可能同时要做鼠标响应和键盘响应两个,只做其中一个,用户就觉得做得不好了

    练手可以做后台计算较少的项目,界面工作可简可繁的,如 viewer, player 等
    lightionight
        14
    lightionight  
       319 天前
    最近刚好公司要申请软著, 得有个壳, 也是用 pyqt 写, 建议是不要太折腾, 保证基本 UI 交互能用就行 , 根据需求和项目时长来选择不同的工具, 杀鸡用牛刀, 和 杀牛用小刀都不可取
    niboy
        15
    niboy  
       319 天前
    直接写代码
    kanchi240
        16
    kanchi240  
       319 天前
    @BlueWaters #8 简单美化下载一个主题就行了,我用的这个效果还行: https://github.com/5yutan5/QtVSCodeStyle
    TrackBack
        17
    TrackBack  
       319 天前
    如果三方库的组件是某个原生组件的上位替代,可以用 designer 右键的“提升为”。
    一般情况可以先放一个 qwidget 当作占位符,然后提升为需要的组件
    这样 uic 导出的时候会自动换成目标组件

    最好的办法去组件库提 issue 让作者写好 designer plugin ,这样可以直接在 designer 里拖动和编辑组件属性
    frayesshi1
        18
    frayesshi1  
    PRO
       319 天前
    pyQt 或者 C++ Qt 的界面基本上都是直接写或者简单的用 Qt Designer ,如果那天能有 WPF 一样的商业组件就好了
    sgld
        19
    sgld  
       319 天前
    看情况吧,自己写感觉代码要简洁些,
    tuduweb
        20
    tuduweb  
       319 天前
    直接写代码
    BlueWaters
        21
    BlueWaters  
    OP
       318 天前
    感谢各位的回答。
    这里特别感谢 @kanchi240 @TrackBack @kuonkuon 不仅解答了我的疑惑,还给出相应的解决方案
    iorilu
        22
    iorilu  
       318 天前
    有国人开发的 qt 美化界面

    好像叫 fluent pyqt widgets

    当然了, 要钱的, 如果想独立开发产品可以看看
    levelworm
        23
    levelworm  
       314 天前 via Android
    不知道是怎么样的布局呢?简单界面自己画应该就可以了。
    CassianVale
        24
    CassianVale  
       309 天前
    @BlueWaters 推荐下 PyQt-SiliconUI ,用的时候注意开源协议
    CassianVale
        25
    CassianVale  
       309 天前
    @kuonkuon 但是要把 Qt Designer 的代码解构出来也很麻烦啊,不如一开始就直接使用代码写布局和组件,Qt Designer 毕竟是有局限性的,要写一些动态组件它就做不到
    kuonkuon
        26
    kuonkuon  
       308 天前
    @CassianVale 额,因人而异吧,我也只写了几个小范围使用的客户端,觉得 Qt Designer 生成的类,直接继承挺方便的,毕竟所见即所得。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5081 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 05:42 · PVG 13:42 · LAX 22:42 · JFK 01:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.