Eri*_*eim 14 c++ java swing gui-designer windows-forms-designer
我想听到一些关于手工编写GUI的意见,就像使用Java或Qt和C++一样,使用gui设计工具?GUI设计器工具的示例是MFC GUI设计器,Qt设计器,Interface Builder(Apple).
我曾经是手工编码的粉丝,但从最近的经验我已经切换.我用手编码看到的问题是编写GUI非常快速和灵活,但是一旦你需要对很久以前编写的GUI进行更改,这可能会非常困难.在大面板中找到正确的元素可能很困难.
第二个问题是它很容易在GUI创建和布局代码中添加大量逻辑.我经常不得不接管维护很难重用的GUI代码,因为它的行为与它的外观混合在一起,混合布局和行为通常使得这个类非常庞大且难以理解.
在我看来,使用GUI设计器工具可以在外观和逻辑之间实现更清晰的分离.
oxb*_*kes 16
我总是手工编写GUI设计,其中没有标准(或事实上的标准)GUI标记语言(如同Java).这样做的原因是我发现使用GUI构建器设计工具会将您绑定到使用特定的IDE.随着时间的推移,用于GUI设计和/或编写代码的最佳IDE将会发生变化,每个开发人员都可以自由选择他们认为最适合的IDE.
我目前在哪里工作,我们有许多遗留的GUI,这些GUI是使用Netbeans Matisse GUI构建器编写的(当时我反对我的建议:-).这些现在几乎无法维护,因为所有开发人员都喜欢使用IntelliJ IDEA或Eclipse作为他们的IDE.让开发人员启动Netbeans只是为了修改GUI布局(人们不会保持Netbeans项目定义同步等)并不现实或可行.
另一点是,写出GUI布局代码的总时间可能只占给定项目总开发工作量的5%.即使你自己编写代码需要两倍的时间,这也不会在宏观方案中转化太多的开销.这对于长期可维护性来说是一个很小的代价.
只要您清楚将GUI布局逻辑与业务逻辑分离出来,我就不相信任何结果都会受到影响.这里没有人再使用GUI构建器了!
我是手工完成的,在应用程序内部重新设置面板并重新使用面板要容易得多(一些面板可以出现在几个地方).
使用设计师在团队中工作时,艺术家应该使用GUI.
在大面板中找到正确的元素可能很困难.
?? 我从来没有见过这个.
我强烈认为您应该使用界面生成器而不是手动编写 GUI。正如问题中提到的,这是一个更清晰的分离,一旦需要编辑某些内容,就会容易得多。
.uiQt Designer 具有从文件1)创建类的此功能,但我认为不使用此功能是最好的方法,因为这会创建更多根本不应该存在的代码。从文件创建窗口的速度问题.ui可以忽略不计,因为窗口只需加载一次。
这是 PyQt,但在 C++ 中也可以实现类似的操作:
class SelectDateDialog(QDialog):
def __init__(self):
QDialog.__init__(self)
uic.loadUi("resources/SelectDate.ui", self)
Run Code Online (Sandbox Code Playgroud)
本质上,这与将所有 UI 代码包含到__init__()方法中具有相同的效果,但 UI 几乎完全与代码分离。
1).ui文件是描述用户界面的 XML 文件