c – 手工编码的GUI与Qt Designer GUI
作者:互联网
我正在花这些假期学习编写Qt应用程序.几个小时前我正在阅读有关Qt Designer的内容,这让我想知道:人们在Qt中编写真实世界的应用程序用于设计他们的GUI是什么?事实上,人们如何设计GUI一般?
我,其中一个,发现手工编写代码在概念上比使用Qt Designer更简单,尽管对于复杂的GUI,Designer可能有意义.使用Designer可以实现大型GUI,但随着时间的推移,随着复杂性的增加,它们可能变得非常难以管理(这只是我的意见).我还下载了AmaroK源代码,看看那些人在做什么,并发现很多调用addWidget()和朋友,但没有一个由Designer创建的XML文件(除了:AmaroK必须是我最喜欢的应用程序)任何平台).
那么,创建GUI的“正确”方式是什么?设计师还是代码?在本次讨论中,让我们考虑以下类型的GUI:
>简单的对话框,只需要输入,显示一些结果并退出.我们假设一个应用程序采用YouTube URL并将视频下载到用户的硬盘上.新手很可能会开始使用那种应用程序.
>中级GUI,例如带有一些工具栏/菜单项的便利贴编辑器.我们以xPad为例(http://getxpad.com/).我会说大多数应用程序属于“实用程序”类别.
>非常复杂的GUI,如AmaroK或OpenOffice.当你看到它们时,你知道它们,因为它们让你的眼睛流血.
解决方法:
我们在Designer中的经验始于Qt3.
QT3
那时,Designer主要用于生成代码,然后将代码编译到应用程序中.我们开始使用这个目的但是使用所有生成的代码,一旦您编辑它,您就不能再返回并重新生成它而不会丢失您的编辑.我们最终只是采用生成的代码并从此手动完成所有操作.
Qt4的
Qt4在Designer上得到了显着改进.它不再仅生成代码,但您可以动态加载Designer文件(在xml中)和dynamically connect them to the running objects in your program – 没有生成的代码,但是,您必须在Designer中命名项目并坚持使用名称来破坏代码.
我的评估是,它远不如Mac OS X上的Interface Builder那么有用,但在这一点上,我可以看到直接在程序中使用Designer文件.
自Qt3以来,我们还没有回到Designer,但仍然使用它进行原型设计和调试布局.
对于你的问题:
>你可能会使用Qt提供的标准对话框.
QInputDialog或如果你是QDialog的子类,请确保使用QButtonDialogBox
确保您的按钮具有适当的平台布局.
>你可以做一些更有限的事情,比如具有有限Designer功能的xPad.
>我不认为你可以单独使用Designer编写类似OpenOffice的东西,但也许这不是重点.
我使用Designer作为另一个工具,就像你的文本编辑器一样.找到限制后,请针对该新问题尝试不同的工具.我完全同意Steve S认为Designer的一个优点是,不是程序员的其他人可以进行布局.
标签:qt-designer,rad,c,user-interface,qt 来源: https://codeday.me/bug/20190928/1826079.html