【问题标题】:Good Projects for learning desktop GUI programming学习桌面 GUI 编程的好项目
【发布时间】:2009-06-29 13:58:46
【问题描述】:

我是一名自学成才的程序员。当我学习一门新语言时,通常是这样的:

  • 购买一本书(或多本书)关于一种语言。
  • 阅读上述书籍。
  • 在网络上查找更多令人困惑/有趣的方面。
  • 实际使用该语言做某事(使用网络和书籍作为参考)

Web 编程为此提供了很多可能性。论坛、博客、社交网络等。最终结果的质量与正确完成的事情不同,但我可以下载一个做同样事情的开源程序并进行比较,看看我的代码是否良好。

但是,对于桌面 GUI,我有点想不通。关于一个相当复杂(但可行)的项目以适应桌面编程有什么建议吗?

【问题讨论】:

  • 是的,让我们使用缓慢而蹩脚的网络应用来代替一切!哦,等等,这些 web 3.0 的孩子已经这样做了。 ;)
  • ATM、干洗店的数据库接口、mp3播放器、计算器。

标签: user-interface


【解决方案1】:

您可以找到一个可用的(可能但不一定是开源的)命令行工具,并为其编写一个 GUI 包装器,以便更轻松地处理命令行选项。这应该教会你很多关于找到正确的 UI 隐喻以及如何实现它的知识。

【讨论】:

    【解决方案2】:

    即使是一个简单的即时通讯应用程序也需要解决一些有趣的问题,例如:

    • 异步网络通信并在 GUI 中处理这些事件
    • 创建自定义控件(例如,具有状态和头像的联系人名单)
    • 使用外壳拖放进行文件传输
    • 桌面通知(传入消息)和其他桌面集成功能(可能在窗口中处理发送到)
    • 管理配置状态
    • 提供电源感知 - 例如,您的应用应在计算机进入待机状态之前断开与服务器的连接
    • 处理用户空闲事件
    • 使用富文本消息编辑器创建聊天窗口

    很酷的东西!

    【讨论】:

      【解决方案3】:

      差异查看器怎么样?掌握基础知识应该很简单,但除此之外应该还有很多改进 GUI 的机会(请注意,其中一些功能已经存在于良好的差异查看器中,如 MeldKdiff3):

      • 滚动以使差异看起来尽可能接近(如果已删除/添加行,这不是微不足道的)
      • 使用现有库(如GeSHi)突出显示语法
      • “压缩”文本的选项,该文本距离任何差异至少 X 行
      • 优雅地处理不同的编码/行尾
      • 翻转左/右窗格
      • 三路差异
      • 目录差异
      • 差异线之间的“tube”平滑

      【讨论】:

      • 这是个好主意,但我对正则表达式从来都不是很好,所以不适合我。
      【解决方案4】:

      使用Eclipse Rich Client Platform 制作您的旧Web 应用程序之一。至少可以这么说,这应该证明很有趣。

      【讨论】:

        【解决方案5】:

        对于激动人心的桌面 GUI 编程世界(仍然非常流行)的激动人心的介绍项目,您可以为应付账款类型的操作编写一个简单的发票管理工具。确保包含大量报告选项。

        说真的,我首先会尝试为您喜欢的命令行工具创建一个 GUI。那或乒乓球的实现。乒乓球总是很有趣。

        【讨论】:

        • 我们都知道 pong 的用户界面有多复杂 :-)
        • 复杂到让你再也不想制作桌面应用了。
        【解决方案6】:
        1. 文件浏览器
        2. 时钟应用程序
        3. 计算器

        【讨论】:

          【解决方案7】:

          一个好的桌面应用程序应该是一个游戏。 ;-) 话又说回来,许多游戏正在转向互联网连接,但通常都有自己的互联网逻辑。您可以从创建一个不错的纸牌游戏开始,然后转向跳棋或简单的国际象棋引擎。
          这听起来可能很愚蠢,但优秀的程序员能够创建有趣的游戏。这是实际项目之间的一个很好的练习。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-04
            • 1970-01-01
            相关资源
            最近更新 更多