关于用户界面:我从哪里开始学习GUI编程?

关于用户界面:我从哪里开始学习GUI编程?

Where do I start learning about GUI programming?

我对C / C,Java和Python等编程语言非常了解。但是他们大多是在大学/高中教室里学习的,最好的用户界面是带有编号的菜单。您知道标准数据结构,各种算法的实现,文件处理等。

我现在要做的是进入GUI编程。我不确定是否要问对的方法,但是我正在考虑使用WIMP范例(Windows图标菜单指针)。我想放置按钮和表格。我相信事件驱动的编程是正确的词,我的应用程序将等到用户单击某些内容,键入某些内容等之后。

鉴于我的背景,哪里是一个不错的起点?我正在查看以下要求-

1>最好是跨平台的。
2>许多文档,教程以及可能的示例代码,我可以从中学习
3>一个不错的GUI生成器工具,可以在其中以我希望它们显示的方式拖放东西。

有什么想法或建议可以帮助我入门吗?


我将尝试《关于面子:用户界面设计的精髓》一书,该书集中于UI设计实践以及考虑用户目标(即用户想要完成的目标)的设计用于"开发人员GUI设计"。

它还回顾了Microsoft,Apple和其他公司有关GUI设计的一些历史。诸如MacOsX的默认值(通常位于接受和取消按钮等)之类的东西,以及其下的原因。

我还将查找适用于Microsoft的Office 2007 UI设计指南,因为它可能"会成为一件事情"。


Shoes for Ruby是跨平台的,非常简单,它是构建窗口和处理其中发生的事件的简要介绍。也很有趣:)


有许多特定于语言和UI框架的资源可供有兴趣构建应用程序UI的人使用。但是,在深入研究特定技术之前,需要学习很多有关人机交互及其在用户界面设计中的应用的知识。要查看的一些参考资料:

  • http://www.useit.com/
  • 日常用品的设计(书)
  • http://worrydream.com/MagicInk(需要一段时间才能加载,但非常值得)

在研究了什么是好的UI之后,现在该探讨如何:

  • Mozilla XULRunner
  • 如果您决定使用Java Swing,我强烈建议您使用相对布局管理器

当然有很多选择,包括QT,Fltk和SWT


您正在寻找Qt。这是一个跨平台的C GUI框架,它包含您要求的所有内容以及其他内容。

只要您正在使用GPL,开源项目就可以免费使用。


看看Glade和Gtk。两者都很容易使用。 Glade是GUI生成器,而Gtk是工具包。它既是跨平台的,也是跨语言的。您可以使用几乎任何语言加载Glade文件。这是Glade / Gtk教程


最近我在想完全相同的事情。 Qt看起来像是一个很好的跨平台GUI框架,而Python看起来像是一种可以使用的好语言。

所以PyQt是我的(未受过教育的)建议。它确实包含一个拖放式GUI设计工具。


Netbeans是跨平台的,虽然它以Java开发人员为中心,但是您可以轻松安装插件来与C / C,Ruby等一起使用。我将其用于开发Swing GUI程序,因为它具有非常简单的界面,拖放GUI创建。有很多关于使用Java Swing开发的很好的文档,而且我敢肯定也有很多关于使用Netbeans的文档。


Java的Swing API是跨平台的并且相对简单,而NetBeans是很好的GUI构建器。


由于您已经了解Java,因此应该在此处查看Swing API,它提供了一套功能强大的软件包,可用于创建复杂的GUI。而且,它的跨平台,大量的文档,并且可以与Netbeans IDE一起使用。


很多年前,我使用Visual Basic在该领域取得了最快的进步。我认为仍然很容易上手,并且代码/运行/调试周期的效率很高,并且您会很快学到很多有用的东西。大量的文档以及您想要的所有其他优点...


我将研究C#.NET开发及其WinForms API。与Win32 API相比,使用Windows编写GUI桌面应用程序要容易得多。如果仍然有用,您以后可以随时使用Win32 API。

对于跨平台解决方案,请查看Gtk,也许是PyGtk。另一个不错的是WxWidgets。

如果您想变得特别时髦,请查看Ruby专用鞋。


推荐阅读

    linux控制台编程命令?

    linux控制台编程命令?,系统,工具,环境,命令,名称,标准,不了,工作,发行,基础,s

    linux编程常用命令?

    linux编程常用命令?,系统,工作,信息,命令,地址,管理,工具,网络,基础,目录,lin

    学习linux命令记不住?

    学习linux命令记不住?,电脑,基础,工作,信息,命令,系统,标准,数字,服务,参数,

    想系统学习linux命令?

    想系统学习linux命令?,系统,基础,基础知识,管理,技术,软件,命令,脚本,高效,

    编程解析linux命令?

    编程解析linux命令?,系统,标准,基础,设备,发行,电脑,工具,密码,名字,适当,如

    linux命令行图形编程?

    linux命令行图形编程?,系统,不了,情况,密码,工具,地方,百度,管理,图形界面,

    linux编程执行命令?

    linux编程执行命令?,电脑,系统,环境,命令,基础,发行,工具,代码,地址,名称,lin

    linux终端命令行编程?

    linux终端命令行编程?,系统,工作,命令,终端,概念,时间,第一,代码,发行,地方,L

    linux编程调用命令?

    linux编程调用命令?,系统,标准,管理,工作,基础知识,情况,环境,设备,基础,首

    linux编程所需的命令?

    linux编程所需的命令?,工作,地址,档案,系统,命令,管理,标准,信息,目录,文件,L

    linux命令行编程乱码?

    linux命令行编程乱码?,环境,统一,乱码,中文,状态,软件,数据,系统,字符集,文

    linux编程c命令符?

    linux编程c命令符?,工具,代码,系统,保险,环境,文件,程序,命令,终端,编辑,到底

    linux常用编程命令?

    linux常用编程命令?,基础,基础知识,系统,管理,概念,在线,发展,设备,设计,名

    学习linux命令心得?

    学习linux命令心得?,基础,基础知识,报告,系统,管理,时间,社会,数字,技术,命

    linux命令行界面编程?

    linux命令行界面编程?,系统,环境,代码,密码,命令,终端,首页,软件,工作,电脑,l

    linux命令行编程参数?

    linux命令行编程参数?,网络,信息,系统,实时,状态,情况,工具,服务,环境,分析,L

    学习python的三个阶段

    学习python的三个阶段,项目,代码,初级,公司,工程,时间,员工,数据,资料,第一