Sys*_*ank 36 user-interface qt coding-style widget qt-designer
每次我使用一些图形工具包开始一个项目时,最先发生的冲突之一就是决定如何处理视觉设计和小部件布局:图形工具还是手工编码?
这是一个非常棘手/主观的问题,因为大多数人会根据个人喜好来决定.它还在很大程度上取决于图形工具的质量.在这种情况下,我想只关注最新版本的QT库.我不打算讨论哪种方法更好.我确信最好的答案是:取决于项目.
根据几个项目后的经验,我想要的是一篇好的非偏见文章的参考.这篇文章应该只描述两种选择的权衡
Dav*_*eer 36
我开始做所有手工编码,最近一直在转向使用Qt Designer进行大多数表格.以下是每个职位的一些好处:
使用Qt Designer
手工编码
杂
QWizard表单,我发现我需要为每个页面使用不同的UI文件.你可以在一个中完成所有这一切,但是以任何一种自定义方式在页面之间进行通信变得非常尴尬.总而言之,我从Qt Designer开始,让它尽我所能,然后从那里手工编写代码.关于Qt Designer生成的内容是一件好事 - 它只是另一个成为类成员的类,您可以根据需要访问它并进行操作.
pro*_*ter 16
我的答案基于两年使用PyQt4(Python绑定到Qt 4)和OpenGL开发生物化学应用程序.我还没有完成C++ Qt,因为我们只使用C++来实现性能关键算法.也就是说,PyQt4 API非常类似于Qt4,这里仍然适用.
Qt设计师
手工编码
好
坏
提示
不要只是跳进创建窗户.首先快速勾画几种可能的设计,无论是在纸上还是使用像Balsamiq Mockups这样的工具.虽然你可以在Qt Designer中做到这一点,但我认为在你决定它是否是最好的设计之前花费大量时间试图让你的窗户看起来恰到好处是太诱人了.
如果你使用Qt Designer for PyQt,你可以运行pyuic4来将*.ui文件编译成Python源文件.我发现很容易忘记这一步,并抓住我的头,为什么我的更改不起作用.
如果您手动编写UI代码,我建议您将布局代码放在一个位置,将信号和插槽放在另一个位置.这样做可以更轻松地更改窗口小部件在窗口上的排列方式,而不会影响任何应用程序逻辑.或者您可以更改某些行为,而无需浏览所有布局代码.
享受Qt!现在我正在使用Java Swing工作,我想念它.
我倾向于使用设计器布局对话框,但我在主代码中完成所有事件处理工作。我还用直接代码制作所有主窗口、工具栏、菜单。
设计师只是令人沮丧 - 遗憾的是,基于拖放尺寸器的优秀设计师已经存在了十多年