Questions tagged «gui»

在计算中,图形用户界面(GUI,有时发音为gooey)是一种用户界面,它允许用户使用图像而不是文本命令与电子设备进行交互。GUI可以用于计算机,MP3播放器等便携式设备,便携式媒体播放器或游戏设备,家用电器和办公设备中。

9
为什么很难使Java程序“本机显示”?
大多数Java应用程序看起来与C / C ++应用程序不同。Swing可能被设计为具有独特的外观,但是根据我的阅读,例如SWT试图“看起来很自然”,但没有成功。 我的问题是: 对于Java语言的开发人员来说,为什么要设计出完全复制本机GUI 外观的GUI系统很困难?本机GUI有什么不同?设计不仅仅是看起来像“本机”按钮的按钮吗?还是比这更深入?
98 java  gui 

10
如何最好避免编写writing肿的GUI代码?
我发现每当使用GUI代码时,该代码往往会比其他类型的代码膨胀更快。似乎也很难重构。在其他类型的代码中,我可以轻松地重构-我发现可以将较大的类分解为较小的功能-对于大多数GUI框架,我经常绑定到需要我的小部件/控件/任何类的框架在窗口小部件/控件/任何地方更直接地实现更多功能。有时这是由于需要(a)继承一些基本控件/控件/事物,或者(b)需要访问受保护的方法。 我通常还必须(例如)通过信号/事件/来自框架的任何内容来响应各种各样的输入,以实现与用户交互的所有模式。我可能需要一个GUI小部件/控件来处理各种各样的输入/输出,其中可能包括: 右键单击/上下文菜单 对上下文菜单中的选择做出反应-可能很多 绘制GUI的一种特殊方法 对键盘输入做出反应 按钮,复选框, 等 ...一直在GUI之下管理代表业务逻辑的类。 一个简单而直接的GUI可以使其代码快速增长,即使分离出业务逻辑并使用MVC时,我也发现GUI代码具有很大的吸引力。 有什么方法可以以合理的方式管理GUI代码,并避免使其成为损坏的窗口?还是大量随机事件处理程序/重写方法确实是我们可以为GUI代码做的最好的事情?
48 refactoring  gui 

6
与图形设计师合作的正确方法是什么?[关闭]
最近,我们与一位图形设计师(由客户安排)合作,为我们构建的Django + Bootstrap应用程序提供了外观。设计师提供了新布局的一系列静态图像,以及描述一些技术属性(字体大小,颜色,一些尺寸等)的文档。 事实证明,实现此目标非常耗时。尽管整个站点基本上都是首页,索引页和六个详细页面,但我花了至少5天时间才实现CSS和HTML更改。所以我会弯腰称这为错误的方式。 我的基本方法是: 比较静态图像和当前渲染,并注意差异。 猜猜在CSS / HTML中需要进行哪些更改 做出改变 转到步骤1。 我不了解某些特殊问题,因为该设计包括将8列更改为12列,某些图像格式错误(.png在不同的浏览器/平台组合上可能呈现不同的图像),麻烦于尝试撤消Bootstrap的样式,通常的CSS角力,以达到像素完美的渲染等效果。有时,我不得不重新组织HTML模板以获得某种行为。 正确的方法是什么?

6
如何避免iOS上笨拙的UITableViewController?
在iOS上实施MVC模式时遇到问题。我已经搜索了Internet,但似乎找不到解决此问题的任何好方法。 许多UITableViewController实现似乎很大。我见过的大多数示例都允许UITableViewController工具<UITableViewDelegate>和<UITableViewDataSource>。这些实现UITableViewController是变大的一个重要原因。一种解决方案是创建实现<UITableViewDelegate>和的单独类<UITableViewDataSource>。当然,这些类必须参考UITableViewController。使用此解决方案是否有任何弊端?通常,我认为您应该使用委托模式将功能委托给其他“ Helper”类或类似类。是否有解决此问题的完善方法? 我不希望模型包含太多功能,也不希望包含视图。我认为逻辑应该真正属于控制器类,因为这是MVC模式的基石之一。但是最大的问题是: 您应该如何将MVC实现的控制器划分为较小的可管理部分?(在这种情况下,适用于iOS中的MVC) 尽管我正在特别寻找iOS的解决方案,但可能会有解决此问题的一般模式。请举例说明解决此问题的好方法。请提供一个论点,为什么您的解决方案很棒。

12
GUI程序员相对于其他程序员是否有不当优势?
经理和客户很容易欣赏他们所看到的内容。 我见过许多GUI开发人员,他们是普通的程序员,对设计原理或其他编程习惯知识最少。但是,如果程序员可以创建令人印象深刻的用户界面,这些缺点通常就不会引起人们的注意,特别是对于管理人员和客户而言。如此之多,以至于我认识的许多GUI开发人员都花了数小时来美化GUI,却以编写糟糕的,无法维护的代码为代价。 另一方面,开发API或业务功能或数据库代码(SQL等)的中间层程序员处于劣势,因为没有任何可展示的东西。也许代码审阅者或架构师可能会喜欢代码的优雅,良好的设计,可伸缩性等,但这对外界毫无意义。您的代码可以运行数年而不中断,可能非常易于维护并具有良好的性能,但它从未像光滑的GUI一样引起人们的赞叹。 在我看来,这样做的必然结果是(我知道,对此我会感到不满),GUI程序员编写好的纯净代码的动机更少。 编辑:我在这里必须解释,对于GUI程序员,我不是指成熟的Web / GUI设计人员,而是前端程序员,例如Java-Swing程序员。 社区其他人是否同意?
23 gui 

3
如何正确地将UI与Pyqt / Qt应用上的逻辑分离?
过去,我已经阅读了很多有关该主题的文章,并观看了Bob叔叔的有趣的演讲。但是,我始终很难正确地构建桌面应用程序,并区分在UI端和逻辑端应该承担哪些责任。 良好做法的简短摘要就是这样的。您应该设计与UI分离的逻辑,以便无论哪种后端/ UI框架,都可以(理论上)使用库。基本上,这意味着UI应该尽可能地虚设,繁重的处理应该在逻辑端进行。否则,我可以在控制台应用程序,Web应用程序或桌面应用程序上真正使用我的漂亮库。 此外,鲍伯叔叔建议对使用哪种技术会给您带来很多好处(良好的界面)的不同讨论,这种递延概念使您可以将经过良好测试的实体高度去耦,这听起来不错,但仍然很棘手。 因此,我知道这个问题是一个相当广泛的问题,已经在整个互联网上讨论了很多次,还以大量好书进行了讨论。因此,为了从中获得好处,我将发布一个非常小的虚拟示例,尝试在pyqt上使用MCV: import sys import os import random from PyQt5 import QtWidgets from PyQt5 import QtGui from PyQt5 import QtCore random.seed(1) class Model(QtCore.QObject): item_added = QtCore.pyqtSignal(int) item_removed = QtCore.pyqtSignal(int) def __init__(self): super().__init__() self.items = {} def add_item(self): guid = random.randint(0, 10000) new_item = { "pos": [random.randint(50, 100), …
20 design  python  mvc  gui  coupling 

1
为什么在python中编写Tkinter GUI时使用类
我主要使用python进行编程,并使用Tkinter编写了几个GUI,我见过的每个教程都建议为该GUI定义和使用一个类,但是我的GUI可以仅使用过程而完美运行,而无需使用类。 为什么要上课?在我看来,这似乎只是复杂性和不必要代码的额外一层。
19 python  gui  class 

2
是否存在某种用于设计和实现GUI的系统策略?
我正在使用Visual Studio在C#中创建GUI应用程序。工具箱是一个漂亮的组件面板,它使我可以轻松地将按钮和其他元素(为清楚起见,每当我表示“控件”,我都会说按钮)拖放到表单上,这使得静态表单非常容易做到。但是,我遇到两个问题: 首先创建按钮需要很多工作。当我使用的表单不​​是静态的时(即,根据用户的操作在运行时创建了按钮或其他控件),我根本无法使用调色板。相反,我必须通过使用我使用的任何方法调用构造函数来手动创建每个按钮,然后通过指定按钮的高度,宽度,位置,标签,事件处理程序等手动进行初始化。这非常繁琐,因为我必须猜测所有这些修饰参数,而又看不到表格的外观,而且每个按钮都会生成许多行重复的代码。 使按钮执行某些操作也是很多工作。在功能齐全的应用程序中处理事件是一个巨大的痛苦。我知道如何执行此操作的唯一方法是选择一个按钮,转到其属性中的“事件”选项卡,单击该OnClick事件,以使其在Form的代码中生成该事件,然后填写该事件的主体。由于我想分离逻辑和表示,因此所有事件处理程序最终都是对适当的业务逻辑功能的单行调用。但是,将它用于许多按钮(例如,想象像MS Word这样的应用程序中存在的按钮数目)会Form用数十种样板事件处理程序方法污染我的代码,并且很难维护。 因此,要让我真正使用任何比Hello World更复杂的GUI程序都是不切实际的。明确地说,在编写具有最小UI的程序中,处理复杂性没有任何问题-我觉得我能够使用具有相当能力的OOP来整齐地构造我的业务逻辑代码。但是在开发GUI时,我陷入了困境。似乎很乏味,以至于我感觉自己正在重新发明轮子,并且那里有一本书解释了如何正确地做GUI,而我还没有读过。 我想念什么吗?还是所有C#开发人员都只是接受无尽的重复事件处理程序和按钮创建代码列表? 作为一个(希望有帮助的)提示,我希望一个好的答案可以谈论: 使用OOP技术(例如工厂模式)简化重复按钮的创建 将许多事件处理程序组合到一个方法中,该方法检查Sender以找出哪个按钮调用了它,并相应地运行 XAML并使用WPF代替Windows窗体 你不需要有提,当然任何这些。关于我要寻找的答案,这只是我的最佳猜测。
18 c#  gui  visual-studio 

6
在哪里可以找到良好用户界面的灵感?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 6年前关闭。 关于为当前正在升级的桌面应用程序设计主屏幕界面,我有一个想法。当我第一次开发该程序时,屏幕分辨率为640 X480。今天有多种屏幕分辨率。 在哪里可以找到有关桌面应用程序主屏幕布局良好的想法?

7
仍然值得学习台式机GUI开发吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 4年前关闭。 在过去的几年中,我从事的所有重要项目都是基于Web的,或者具有非图形用户界面(服务,命令行脚本等)。我可以将WinForms应用程序放在一起,也可以在需要时执行一些简单的WPF,但是我从来没有真正研究过一些较低级别的API,例如MFC或QT。 我了解这取决于情况,但总的来说,还是值得花一些时间来更好地学习桌面开发,还是应用程序以使该知识不那么相关的步伐迁移到Web和移动设备上?另外,您希望与您合作的开发人员具有桌面GUI专业知识吗?

8
从基于控制台的编程过渡到基于GUI的编程时,主要区别是什么?
我和其他许多人一样,都是从基于控制台的(例如在终端中,而不是在Playstation中)开始编程的。但是迟早,无论您是否愿意,都需要接触基于GUI的编程。这种过渡使您需要考虑前端(以及后端)的方式发生了许多变化。 那么,从基于控制台的编程过渡到基于GUI的编程时,主要区别是什么?
18 gui 

9
面向CLI的程序员的工作流程与面向GUI的工作流程有何不同?
我已经听到很多关于在GUI应用程序中减少编程工作并使用更多命令行工具(尤其是在更高效地完成工作方面)的好处的信息。但是,由于我不了解如果我更多地依赖命令行工具,那么我的工作流程会有什么不同,所以我无法轻易评估个人是否有足够的回报来投入时间和精力来学习新的工具集并进行更改我的工作流程。 马上: 我使用Visual Studio,Eclipse等使用C / C ++ / D / C#/ Java / Python等语言编写了一些辅助项目,并通过设置构建设置并按F5进行构建/运行来运行它们。 我正在开发一个工作中的Web程序,因此涉及使用Django设置服务器,连接到数据库等,几乎所有这些操作都在SciTE文本编辑器中进行。 对于启动常规程序,我使用Launchy ...仍然没有终端。:) 对于复制文件和其他操作,我在图形文件管理器(Windows资源管理器,Nautilus)中使用常规查找/移动。 调试:我使用Visual Studio或Windows调试工具(如果我在Windows上)。我在Linux上没有做太多调试,但是对于已经完成的事情,我使用了Eclipse(对于Windows上的Java也是如此)。 工作:连接到构建系统并建立项目,我只使用已集成到Eclipse中的工具供我使用-不需要终端或任何东西(尽管我当然欢迎使用终端,确实想) 在CLI中执行这些操作是什么感觉?哪些零件效率更高/更低?从转变为主要使用CLI来获得最大的优势,需要更改工作流程的哪些方面?换句话说... 如果您将我神奇地转变为命令行专家,那么我的新编码工作流程将与当前以GUI为中心的工作方式有何不同?
17 gui  cli 

7
从GUI开始构建应用程序是否有用?
应用程序设计和开发的趋势似乎始于“胆量”:领域,然后是数据访问,然后是基础结构等。GUI似乎通常会在此过程的后期出现。我想知道首先构建GUI是否有用... 我的基本原理是,通过至少构建一个原型GUI,您可以更好地了解幕后需要做什么,因此可以更好地开始在域和支持代码上进行工作。 我可以看到这种做法的问题在于,如果尚未编写支持代码,那么GUI层实际上就不会做很多事情。也许构建模拟对象或一次性类(有点像在单元测试中所做的那样)将提供足够的基础来最初构建GUI。 对于实际项目,这可能是可行的想法吗?也许我们可以将GDD(GUI驱动开发)添加到首字母缩写稳定...

5
如何使用C#和NUnit构建GUI应用程序的单元测试
我被要求做一个小项目,为我们的一个客户提供一个简单的应用程序。通常,我会在后端代码上工作,在那里我已经解决了所有测试需求,而且我还没有为GUI编写测试的乐趣,因此我不清楚应该如何设置EXE的测试代码和工具。 我的第一个直觉是简单地将测试与应用程序代码一起包含,但是这将需要提供一些特定于测试的依赖项,而我已被指示不要将其交付给客户。我也无法从任何现金中提取现金用于专用测试工具,因此我需要使用手边的工具(StoryQ,RhinoMocks和NUnit),这实际上足以测试一个简单的GUI应用程序的行为。据我所知,这使我不得不在保持设计非常简单或为测试而故意过度设计之间寻求一个良好的平衡。似乎我要么像往常一样在单独的库中构建具有业务逻辑的应用程序并针对该库进行测试,要么找到其他机制使我可以执行该应用程序,而不会破坏应用程序设计所没有的其他模块真的需要。 编辑: 请注意,这个问题是关于如何构造NUnit和我的可执行文件之间的关系(而不是DLL),而不是关于如何分离表示和业务逻辑。 /编辑 所以我的问题是: 是否有特定/推荐的方法来配置带有单元测试的简单GUI应用程序,以使我能够使用手头的工具来充分检查状态和行为,而又无需过度设计? 我是否错过了一些有关测试EXE(而不是DLL)时应调用/配置NUnit的方式的基本知识? 您能否提供或指出我如何实现所有这些目的的示例? 我意识到可能有不止一种方法可以执行此操作,因此我正在根据您的经验寻找具体的实施准则。
16 c#  testing  gui  nunit 

5
有人可以解释GUI的工作原理以及何时开始使用GUI吗?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我已经学习C ++大约一个月了,在进一步学习之前,我想清除一下我一直遇到的乏味问题。我知道GUI是什么,但是我真的不知道它是如何工作的,也许不是流行的示例? 尽管我知道命令行编程是基本的基础知识,但我认为将GUI摆弄起来还是很有趣的。 尽管我还有大约300万个其他问题,但我会保存下来:D
16 c++  gui 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.