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 · 36 天前 · 2237 次点击
    这是一个创建于 36 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    好像叫 fluent pyqt widgets

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