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

65 天前
 BlueWaters

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

2361 次点击
所在节点    Python
26 条回复
tairan2006
65 天前
直接写代码
NoOneNoBody
65 天前
直接写
Abbeyok
65 天前
直接写代码布局的我感觉都是神人,我都是用 QT Designer
XIVN1987
65 天前
Qt Designer ,,不过我写的程序一般比较简单。。
maxwel1
65 天前
QT Designer ,主要用于自己开发小工具,操作界面不是特别复杂。
fbichijing
65 天前
布局我自己倒是喜欢直接在界面上弄,非必要情况下不通过代码。不过这应该是个人喜好,没什么好与不好的。

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

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

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

最好的办法去组件库提 issue 让作者写好 designer plugin ,这样可以直接在 designer 里拖动和编辑组件属性
frayesshi1
64 天前
pyQt 或者 C++ Qt 的界面基本上都是直接写或者简单的用 Qt Designer ,如果那天能有 WPF 一样的商业组件就好了
sgld
64 天前
看情况吧,自己写感觉代码要简洁些,
tuduweb
64 天前
直接写代码

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1080739

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX