当前位置: 首页 > 面试题库 >

Handcode GUI或使用gui-designer工具

朱渝
2023-03-14
问题内容

我想听听一些手工编写GUI的意见,就像将Java或Qt与C ++相比,还是使用gui-designer工具那样?GUI设计器工具的示例包括MFC
GUI设计器,Qt设计器,Interface Builder(Apple)。

我曾经是手编码的爱好者,但是从最近的经验来看,我已经切换了。我在手工编码中看到的问题是,编写GUI相当快且灵活,但是一旦您需要对很久以前编写的GUI进行更改,就会非常困难。在大型面板中找到合适的元素可能很困难。

第二个问题是,在GUI创建和布局代码中添加大量逻辑变得非常容易。我经常不得不接管对GUI代码的维护,这实际上很难重用,因为它的行为与外观混合在一起,布局和行为的混合常常使类非常庞大且难以理解。

在我看来,使用GUI设计器工具可以使外观和逻辑之间的划分更加清晰。


问题答案:

我强烈认为您应该使用界面生成器,而不要手工编写GUI。就像在问题中提到的那样,这是一个更清晰的分隔,而且一旦必须对其进行编辑,它就会容易得多。

QtDesigner拥有此功能可以从.ui文件1)中创建类,但是我认为不使用此功能是最好的方法,因为这会创建更多根本不应该存在的编码。从.ui-file
创建窗口的速度问题可以忽略不计,因为该窗口仅需加载一次。

这是PyQt,但在C ++中可能是类似的:

class SelectDateDialog(QDialog):
    def __init__(self):
        QDialog.__init__(self)
        uic.loadUi("resources/SelectDate.ui", self)

本质上,这与将所有UI代码包含到__init__()方法中具有相同的效果,但是UI与代码几乎完全分开。

1).ui文件是描述用户界面的XML文件



 类似资料:
  • 5.1.1 简介 Qt Designer,又被称作是 Qt 设计师,是一个所见即所得的全方位 GUI 构造器,它所 设计出来的用户界面能够在多种平台上使用。它是 Qt SDK 的一部分,也是最为重要的开发 工具之一。利用 Qt Designer,我们可以拖放各种 Qt 控件构造图形用户界面并可预览效 果。 通常一个 Qt Designer 的样子如图 5-1 所示。 图 5-1 Qt Design

  • PyQt安装程序附带一个名为Qt Designer的GUI构建器工具。 使用其简单的拖放界面,可以快速构建GUI界面,而无需编写代码。 但是,它不是像Visual Studio这样的IDE。 因此,Qt Designer没有调试和构建应用程序的工具。 使用Qt Designer创建GUI界面首先要为应用程序选择顶级窗口。 然后,您可以从左窗格的窗口小部件框中拖放所需的窗口小部件。 您还可以为表单上

  • 本文向大家介绍PyQt 图解Qt Designer工具的使用方法,包括了PyQt 图解Qt Designer工具的使用方法的使用技巧和注意事项,需要的朋友参考一下 前言 Qt Designer是PyQt程序UI界面的实现工具,Qt Designer工具使用简单,可以通过拖拽和点击完成复杂界面设计,并且设计完成的.ui程序可以转换成.py文件供python程序调用。本文主要通过用户登录需求描述Qt

  • 当我在IntelliJ IDEA中创建GUI表单时,单击预览菜单项会创建错误: 无法预览表单“”/主要的表单'原因:找不到类:javax。摆动面板 但是,在链接类中手动创建一个main方法并运行后者,将毫无问题地创建我的应用程序窗口: 在我的项目结构中,我选择了project SDK:java 9.0.1在我的平台设置中,SDK 9.0配置了所有必要的路径(java.desktop等)。 我想知道

  • 我正在使用IntelliJ IDEA的GUI设计器和Maven编译系统。当我通过这个答案构建可执行的JAR文件时,构建成功。但是,当通过命令java-jar MyApplication启动时,它会抛出一个异常。jar: 受影响的代码行如下: 当从IntelliJ中的源代码运行时,它工作正常,但是Maven似乎无法正确构建JAR文件。毕竟,IntelliJ通过链接到<代码>实现了“魔法”。表单文件保

  • 通过手动编码创建美观的GUI可能很乏味。 可视化GUI设计器工具总是很方便。 许多针对wxPython的GUI开发IDE都可用。 以下是其中一些 - wxFormBuilder wxDesigner wxGlade BoaConstructor gui2py wxFormBuilder是一个开源的,跨平台的WYSIWYG GUI构建器,可以将wxWidget GUI设计转换为C ++,Python