每次我使用图形工具包开始一个项目时,第一个冲突就会发生在如何处理视觉设计和小部件布局的决定上:图形工具还是手动编码?
这是一个非常棘手/主观的问题,因为大多数人会根据个人喜好来决定。它还很大程度上取决于图形工具的质量。在这种情况下,我想只关注 QT 库的最新版本。我无意讨论哪种方法更好。我确信最好的答案是:取决于项目。
我想要的是一篇基于几个项目后的经验的好的、无偏见的文章的参考。这篇文章应该只描述两种选择的权衡
我开始做所有手工编码的事情,最近已经转而使用 Qt Designer 来处理大多数表单。以下是每个职位的一些好处:
使用 Qt 设计器
- 对我来说,最节省时间的是管理复杂的布局;它节省了lot乏味的编码。简单地(非常粗略地)排列您的小部件,选择它们,右键单击,然后将它们放入正确的布局类型中。特别是当布局变得嵌套时,这是so容易多了。
- 它倾向于使您的实现文件保持干净,而不是用所有样板布局代码填充它们。我是A型,所以我喜欢这样。
- 如果您正在翻译您的应用程序,可以向您的翻译人员发送 .ui 文件,以便他们可以see在您的 GUI 上,他们正在翻译的文本将在其中。 (假设他们使用 Qt Linguist。)
手工编码
- 控制。如果您的布局需要以非常特定的顺序实例化/初始化控件,或者根据其他条件(数据库查找等)动态创建控件,那么这是最简单的方法。
- 如果您有自定义小部件,您可以使用设计器,添加您的类派生的最接近的内置 QWidget,然后“升级”它。但是,除非您将其作为单独项目中的设计器插件,否则您将看不到小部件的预览,这对于大多数用例来说工作量太大。
- 如果您有自定义小部件,其构造函数中的参数超出了可选的 QWidget 父级,则 Designer 无法处理它。您别无选择,只能手动添加该控件。
各种各样的
- I don't使用自动连接 SLOTS 和 SIGNALS 功能(基于诸如“on_my_button_clicked”之类的命名约定。)我发现我几乎总是必须在确定的时间建立此连接,而不是每当 Qt 为我这样做时。
- For
QWizard
表单,我发现我需要为每个页面使用不同的 UI 文件。您可以一次完成所有操作,但是以任何一种自定义方式在页面之间进行通信都变得非常尴尬。
总之,我从 Qt Designer 开始,让它尽可能地引导我,然后从那里手动编码。这是 Qt Designer 生成的一件好事——它只是成为您的类的成员的另一个类,您可以根据需要访问它并操作它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)