组织 GUI 代码

2024-04-30

我的问题有两个部分:

  • 有没有人对网络上的一些文档有任何关于如何编写易于阅读、编写和维护的 GUI 代码的提示或参考?

    Example.

    我发现我的 GUI 表单变得越广泛,我最终会得到一长串相当短的事件处理程序方法。如果我尝试添加任何私有辅助方法,它们就会在混乱中迷失方向,并且我必须不断滚动页面才能遵循单一思路。


  • 如何轻松管理整个应用程序的设置?

    Example.

    如果用户在下拉列表中选择一个新项目,我可能需要在 GUI 上启用某些组件,更新应用程序配置文件,并将新值存储在本地变量中以供以后使用。我通常选择不为所有设置创建事件处理程序(见上文),并最终使用“LoadGUISettings”和“SaveGUISettings”等方法,但最终我在我的代码中调用这些方法,并且它运行了很多代码只是为了更新很少(如果有的话)的实际更改。

Thanks!


从面向对象的角度来看,第一个问题的一些指导方针:

  • 将大类分成小类。该面板是否有一堆相当模块化的子面板?为每个子面板创建一个较小的类,然后让另一个更高级别的类将它们放在一起。
  • 减少重复。您有两棵共享功能的树吗?做一个超类!您的所有事件处理程序都在做类似的事情吗?创建一个他们都调用的方法!

第二个问题。我看到有两种方法可以做到这一点:

  • 听众。如果许多组件应响应一个组件中发生的更改,请让该组件触发一个事件。
  • 全局变量。如果许多组件正在读取和写入相同的数据,请将其设置为全局(但是您可以使用您选择的语言来执行此操作)。为了获得额外的有用性,请结合这两种方法并让组件侦听全局数据对象中的更改。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

组织 GUI 代码 的相关文章

  • Python,Tkinter:如何使用线程防止 tkinter gui 主循环崩溃

    嗨 我有一个小的 python gui 界面 有两个按钮 开始 启动计数器 和停止 假设停止计数器 计数器是一个无限循环 因为我不希望它结束 除非第二个按钮是点击 问题是当第一个按钮的功能仍在运行时无法单击第二个按钮 我读到我需要使用线程并
  • Java旋转非方形JPanel组件

    由于操作系统限制 我正在尝试旋转填充有文本标签的 GridLayout 以模拟纵向视图 它们所在的 JPanel 不是方形的 因此当旋转 90 度时 标签会根据 JPanel 的尺寸被切断 是否可以根据旋转调整布局大小以仍然适合 JPane
  • Java Swing - JLabel 位置

    我在设置 Jlabel 位置时遇到问题 我将内容窗格设置为某个 JPanel 我创建并尝试添加我的 JLabel JLabel mainTitle new JLabel SomeApp mainTitle setFont new Font
  • XCode 7 中的 UI 测试文档 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想知道 WWDC 2015 上引入的 XCode 7 中的新 UI 测试是否有任何文档 如果没有文档
  • 为什么要输入两次密码?

    在大多数网站的注册用户部分 他们要求您输入密码两次 这是为什么 为什么不只输入一次密码 为什么一定要 确认 呢 You know Username Password Confirm password Submit 这件事在我心里已经有一段时
  • Swing 组件 - 禁用布局中的调整大小

    我有一个自定义 GUI 组件 它基于 Swing 的 JPanel 该组件放置在使用 BorderLayout 的 JFrame 中 当我调整框架大小时 该组件会不断调整大小 我怎样才能避免这种情况 我希望组件无论发生什么情况都保持相同的大
  • 按钮和窗口之间的空间

    我这里有这段代码 其想法是在主窗口中在文本区域旁边有两个按钮 但我尚未添加 在尝试使用 GridBagLayout 并在此过程中扯掉我的头发后 我决定不使用布局并在不可调整大小的窗口内手动放置按钮 import java awt impor
  • 如何将一个窗格连接到另一个窗格

    如何将输出连接到paneWithList PaneWithList其上有一个监听器JList以便将所选行输出到控制台 我怎样才能将该输出定向到JTextPane关于输出 Could PaneWithList触发一个事件Main拿起 会属性更
  • 使用 JScrollPane 和 JLayeredPane 进行 Swing GUI 设计

    我想要一个如下图所示的 GUI 设置 The JLayeredPane应始终具有相同的大小 但是JPanel和JScrollPane可以改变尺寸 我需要JScrollPane能够显示JLayedPane通过单击箭头 如果JPanel and
  • 当工作站锁定然后解锁时,如何防止窗口大小调整?

    我们有一个在多显示器环境中运行的应用程序 用户通常将应用程序对话框分散到多个监视器上 如果用户锁定工作站 然后解锁它 我们的应用程序就会被告知调整大小 我们的用户发现这种行为令人沮丧 因为他们随后花了一些时间恢复以前的布局 我们还不确定是图
  • Qt GUI 编程设计

    我正在尝试创建一个 GUI 应用程序 主窗口 一个QMainWindow 包含 9 个固定大小的标签以及主窗口的大小 我尝试在没有 Qt GUI Designer 的情况下以编程方式制作它 该项目构建时没有错误 但我看不到主窗口上显示的任何
  • 让按钮更容易点击

    我有一个按钮 在某些手机上由于尺寸太大而很难点击 但让它变大会破坏布局 可以向视图解释它有一个比其可见区域更大的 点击框 吗 不确定这是否有帮助 如果您使用没有背景的 ImageButton 并设置 Padding 值 您的按钮将具有更大的
  • 如何将图像放在 UIButton 中文本的右侧?

    如果可以避免的话 我不想使用子视图 我想要一个UIButton其中包含背景图像 文本和图像 现在 当我这样做时 图像位于文本的左侧 背景图像 文本和图像都有不同的高亮状态 最简单的解决方案 iOS 10 及更高版本 Swift button
  • 用于在 Windows 中自动执行桌面活动的 Python 代码

    我想使用 Python 在 Windows 环境中自动化桌面活动 怎样才能做到呢 一些例子也会有帮助 我所说的桌面活动是指控制鼠标和键盘 访问活动窗口属性 双击桌面上的图标 最小化和最大化窗口 通过键盘向输入弹出窗口输入数据等操作 看一下S
  • 带有 ListTiles 和按钮行的 Flutter 下拉菜单

    我正在尝试构建一个自定义下拉菜单 如下所示 我已经成功地实现了ListTiles and Row of Buttons没有下拉菜单 但我不确定如何将所有内容嵌套在下拉菜单类中 这是我到目前为止所得到的 class HomePage exte
  • 如何编辑 QProgressBar 的样式表

    我无法在我的应用程序中编辑进度条的颜色 仅编辑文本颜色 pyhton 3 9 PySide6 QT Creator 7 0 2 Python应用程序 https i stack imgur com 6hKFI png import sys
  • 如何在 WPF 应用程序中实现气球消息

    我们想使用气球消息 如UX Guide http msdn microsoft com en us library aa511451 aspx来自微软 我发现一些示例使用 Windows 窗体中的本机代码 但本机代码需要组件的句柄 这对于
  • Java 在组件中心之间绘制一条线

    当用户单击一个标签 在另一个标签上拖动并释放时 我试图在两个 JLabel 的中心之间绘制一条线 无论窗口大小如何 都应该有效 但线条不在中心 如何解决 以下示例有效 但线条似乎被 JFrame 的边界偏移 因此它们不是中心 我不想尝试从点
  • 带有图层列表的自定义背景以显示对角线?

    我只想创建一个自定义背景 但我不知道如何使用 xml 而不是图像来做到这一点 这是 XML
  • Java 和 GUI - 根据 MVC 模式,ActionListener 属于哪里?

    我目前正在编写一个模板 Java 应用程序 不知何故 如果我想完全遵循 MVC 模式 我不确定 ActionListener 属于哪里 该示例基于 Swing 但它不是关于框架 而是关于 Java 中 MVC 的基本概念 使用任何框架创建

随机推荐

  • 如何在可组合项中使用 hilt 注入单例

    我正在尝试注入一个在可组合项内的 hiltmodule 中定义的单例类 我知道如何注入视图模型 但是单例类呢 Inject lateinit var mysingleton MySingletonClass 该代码在活动中运行良好 但将其从
  • Protractor e2e 测试登录重定向

    目前有部分端到端测试 输入用户名 密码并单击 登录 它成功完成了这一操作 但在 谢谢您已登录 页面结束 而不是像我通过浏览器登录那样被重定向到 帐户门户 或 仪表板 这个项目是新的 但我们正在使用 OAuth 主要问题 这听起来像是需要 h
  • 将 NodeJS Rest 服务与 wso2 集成

    我的其余 Web 服务都是用 Nodejs 编写的 我想为这些 API 实现基于角色的 管理员 用户 超级管理员等 授权 如何将 wso2 与 NodeJS 一起使用 您可以使用 WSO2 API Manager 来实现此目的 这是一篇不错
  • Swagger @ApiOperation 可以允许在 Java 中指定列表的列表吗?

    我在 Java 类中有一个方法 其签名如下所示 我想为其添加 Swagger Rest 文档 public List
  • 在 pandas 中重新采样

    我在另一个话题上问了一个问题Link https stackoverflow com questions 33446776 how to resample starting from the first element in pandas
  • 无法在 odoo 10 Windows 中执行命令 lessc

    我想问一下在windows上安装odoo 10的问题 我有这样的错误 无法执行命令 lessc 我在另一篇文章中看到过这个问题 但他们的文章只是讨论 mac 和 ubuntu 服务器 而不是在 Windows 中 任何人都可以帮我解决这个
  • 在 ios 应用程序中将 UIImagePickerController 锁定为纵向模式

    在我的 IOS 应用程序中 当我打开相机时 我已将图像放置在相机视图上 在肖像模式下看起来不错 但当它变成横向模式时 看起来就有些奇怪了 所以我想锁定UIImagePickerController在肖像模式下 以下是我的 ui 图像选择器控
  • 数据库中的编码 HTML 返回页面

    我在数据库中有以下编码 lt p gt Content lt span style quot color ffffff quot gt lt span style quot background color ff0000 quot gt 1
  • Froala 添加自定义预编码按钮

    我正在尝试创建一个代码按钮Froala http editor froala com 编辑器基本上可以通过按执行与此处相同的操作CNTRL K 现在我想我有两个选择 第一个是编辑 froala editor js 文件 因为 Froala
  • 在 macOS 10.12 上绑定到套接字时出现 NSPOSIXErrorDomain

    我正在玩CocoaAsyncSocket https github com robbiehanson CocoaAsyncSocket在 Swift 中绑定到 UDP 套接字并通过本地网络接收消息 我正在初始化一个套接字 并尝试绑定到一个端
  • PHP 包含语义

    我正在尝试找出如何解释PHP s include构造 http www php net manual en function include php 例如是否是文本包含 何时评估等 像往常一样 文档相当非正式和模糊 根据实验 它似乎是语法糖
  • 如何为 CSS 规则选择元素的曾孙?

    给定这个 HTML 我该如何选择rt block改变CSS仅当嵌套在 rt header 中时如图所示 div div class rt container div class rt grid 6 rt alpha div class rt
  • 适当使用静态方法

    从概念上讲 当方法仅接受输入并将输入重新格式化为输出时 使用静态方法 C 是否合适 例如 public static string FormatString string inputString return some formatting
  • 为什么我的 UIActivityIndi​​catorView 不会停止动画?

    我正在尝试从我的应用程序代理管理活动指示器 这样我的任何视图都可以放置指示器 因此 我将其作为子视图添加到 窗口 并启动 停止 如下所示 void didStartActivity if activityIndicator nil acti
  • SPSS 语法:如何从活动数据集中生成所有变量的 var_list?

    通常 PSPP SPSS 语法文档 example http www gnu org software pspp manual html node DESCRIPTIVES html 建议我必须传递一个变量列表 VARIABLES var
  • MouseAdapter:它使用哪种模式?

    我已经找到了很好的资源 这些资源告诉我 Java API 中的 MouseAdapter 没有使用适配器模式 问题是 MouseAdapter 是否实现了某种模式 我知道它的作用 它为 MouseListener 接口创建了一个具体的类 因
  • 如何设置上一个/下一个箭头按钮的样式?

    GOAL 我一直在尝试修改slick css以适应我的网站所需的风格 我拿到slick css from here http kenwheeler github io slick Now 我想让箭头 左 右 更大 对于图标 我想使用没有的图
  • 如何使用oembed标签实现丰富的pins

    我需要实现 pinterest 提供的丰富的引脚 http developers pinterest com rich pins http developers pinterest com rich pins 推荐的方法之一是使用 oemb
  • TFS Pending Changes 能否像 SourceGear Vault 一样显示真正更改的文件?

    我一直在使用 SourceGearVault 进行一些个人项目 并使用 Team Foundation Server 进行工作项目 TFS 缺少的一件事是 Vault 在其签入对话框窗口中具有的一项简单功能 在 Vault 客户端中 您可以
  • 组织 GUI 代码

    我的问题有两个部分 有没有人对网络上的一些文档有任何关于如何编写易于阅读 编写和维护的 GUI 代码的提示或参考 Example 我发现我的 GUI 表单变得越广泛 我最终会得到一长串相当短的事件处理程序方法 如果我尝试添加任何私有辅助方法