第23章 GUI编程使用gtk2hs 在本书中,我们一直在开发简单的基于文本的工具.虽然这些往往是理想的接口,但有时图形用户界面(GUI)是必需的.有几个Haskell的GUI工具包是可用的.在本章中,我们将着眼于其中一个,gtk2hs. %多个替代选择存在.除了gtk2hs,wxHaskell也是一个著名的跨平台GUI工具包. 安装gtk2hs 在我们和gtk2hs工作之前,你需要安装它.在大多数Linux,BSD,或其他POSIX平台,你会发现已经编译好的gtk2hs包.一般你会需要安装GT…
一.AWT介绍 所有的可以显示出来的图形元素都称为Component,Component代表了所有的可见的图形元素,Component里面有一种比较特殊的图形元素叫Container,Container(容器)在图形界面里面是一种可以容纳其它Component元素的一种容器,Container本身也是一种Component的,Container里面也可以容纳别的Container. Container里面又分为Window和Pannel,Window是可以独立显示出来的,平时我们看到的各种各样的…
第20章 Haskell系统编程 到目前为止,我们已经讨论了大多数的高层次的概念.Haskell也可以用于较低级别的系统编程.很可能是用haskell编写出底层的与操作系统接口的程序. 在本章中,我们将尝试一些雄心勃勃的事情:类似Perl的“语言”,纯用haskell来实现是可行的,它使得shell脚本编程容易.我们要实现管道,简单的命令调用,和一些简单的工具可能会和grep和sed一起处理任务. 针对不同的操作系统特定的模块是存在的.在本章中,我们将使用尽可能的通用的独立于OS的模块.然而,我…
第27章 网络通信和系统日志 Sockets and Syslog 基础网络 在本书的前面几章,我们讨论了运转在网络上的服务.其中的两个例子是客户端/服务器架构的数据库和Web服务.当需要制定一个新的协议或者是和一个没有现成库的协议通信时,你就需要使用haskell库中较低级别的网络工具. 在本章中,我们将讨论这些低级的工具.网络通信是整本书都在阐述的广泛的话题.我们将向您展示如何使用Haskell去应用你已经知道的底层的网络知识. Haskell的网络功能几乎总是直接对应于熟悉的C函数调用.由…
第21章 使用数据库 从网络论坛到播客采集软件甚至备份程序的一切频繁地使用持久存储的数据库.基于SQL的数据库往往是相当方便:速度快,可扩展从微小到巨大的尺寸,可以在网络上运行,经常帮助处理锁定和事务,甚至还可以为应用提供故障转移和冗余.数据库有许多不同:大的商业数据库如Oracle,开源的引擎如PostgreSQL或MySQL,甚至嵌入式引擎如sqlite. 因为数据库是如此重要,haskell对他们的支持也很重要.在本章中,我们将向你介绍一个用于数据库的haskell框架.我们也将使用这个框…
第24章 并发和多核编程 第一部分并发编程 当我们写这本书的时候,CPU架构正在以比过去几十年间更快的速度变化. 并发和并行的定义 并发程序需要同时执行多个不相关任务.考虑游戏服务器的例子:它通常是由几十个组件组成,每个组件都与外部世界有着复杂的交互.一个组件可能处理多用户聊天;几个会将处理几个玩家的输入并回复他们状态的更新,而另一个执行物理计算. 并发程序的正确执行并不需要多核,尽管可能会提高性能和响应速度. 与此相反,一个并行程序解决了一个单一的问题.考虑一个尝试在单只股票的价格波动来预测下…
第22章 扩展示例:Web客户端编程 至此,您已经看到了如何与数据库交互,解析一些数据,以及处理错误.现在让我们更进了一步,引入Web客户端库的组合. 在本章,我们将开发一个真正的应用程序:一个播客下载软件,或播客采集软件.一个播客采集软件的想法很简单.给出一系列的URL.下载每个URL并将结果存到RSS格式的XML文件中.在这个XML文件里,我们会找到用于下载音频文件的URL. 播客采集软件通常是让用户通过往他们的配置里添加RSS URL来订阅播客.然后,用户可以定期执行更新操作.播客采集软件…
原文:<Programming WPF>翻译 第7章 1.图形基础 WPF使得在你的应用程序中使用图形很容易,以及更容易开发你的显卡的能力.这有很多图形构架的方面来达到这个目标.其中最重要的是综合. 7.1.1综合 图形化元素可以组合到你的用户界面的任何一部分中.很多GUI技术易于将图形分离到一个独立的世界.这就需要一个“操纵杆”--当移动一个世界的按钮.文本框和其它框架到另一个世界的Shape和图像中,由于在很多系统中,这两个世界有不同的编程模型. 例如,Windows Forms和Mac…
原文:<Programming WPF>翻译 第7章 2.图形 图形时绘图的基础,代表用户界面树的元素.WPF支持多种不同的形状,并为它们每一个都提供了元素类型. 7.2.1基本图形类 在这一节列出的所有元素,派生于一个共同的抽象基类Shape.虽然你不能直接使用这个类,知道它还是有帮助的,因为它定义了一组共同的特性--你可以在任何形状上使用.这些共同的属性都被连接到形状的内部和外部被绘制的地方. Fill属性详细指出了Brush要用于填充内部.Line和Polyline这些类没有内部,所以它…
原文:<Programming WPF>翻译 第3章 1.什么是控件 对于一个应用程序而言,控件是搭建用户界面的积木.它们具备交互式的特征,例如文本框.按钮以及列表框.尽管如此,WPF还有点不寻常,在于其并不直接地依赖其外观.在自定义一个控件外观时,很多GUI框架要求设计人员编写一个自定义控件.在WPF中,这是不必要的:嵌入式内容和模板提供了简单而强有力的解决方案.仅当你所需要的控件,其行为在已有嵌套式控件中不存在时,才需要重新去开发. 很多WPF用户界面元素并不是控件.例如一些形状:Rect…