如何C#把XML写成这种样式?

xiaobei_yy 2007-05-20 01:08:09
<?xml version="1.0" encoding="gb2312" ?>
<ESEWorkspace xmlns="http://www.esesoft.com/ese">
</ESEWorkspace>
//======
如上的:xmlns="http://www.esesoft.com/ese
为什么我写的老是成为这样(自己的运命空间前面还有默认的域名空间)
<ESEWorkspace xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.esesoft.com">

我的程序是这样的:
XmlSerializer ser = new XmlSerializer(typeof(ESEWorkspace));
using (FileStream stream = new FileStream(FilePath, FileMode.Create))
{
;
ser.Serialize(stream, c);
}
...全文
256 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
csharpguy 2007-05-21
  • 打赏
  • 举报
回复
XmlDocument doc = new XmlDocument();

XmlDeclaration del = doc.CreateXmlDeclaration("1.0", "gb2312", string.Empty);
doc.AppendChild(del);

XmlElement ele = doc.CreateElement(string.Empty, "ESEWorkspace", @"http://www.esesoft.com/ese");
ele.IsEmpty = false;
doc.AppendChild(ele);

doc.Save(@"C:\test.xml");
fwt1314111 2007-05-20
  • 打赏
  • 举报
回复
学习,帮顶!
xiaobei_yy 2007-05-20
  • 打赏
  • 举报
回复
没人回答吗?
yumanqing 2007-05-20
  • 打赏
  • 举报
回复
up
xiaobei_yy 2007-05-20
  • 打赏
  • 举报
回复
ding !
WCF、WPF、Silverlight和区别(转) SilverLight可以看作是WPF的一个简化版本,或者一个轻量版本。 SilverLight是基于浏览器插件的,在浏览器中运行,服务器端不需要部署任何环境,客户端只需要安装Runtime浏览器插件,无须安装.net Framework 3.0。所以,SilverLight的运行环境不受操作系统和浏览器的种类限制(更准确的说,是受到较少的限制)。 WPF可以编Web程序或者桌面应用程序,可以直接编译为独立运行的.Exe文件。WPF运行时必须安装.net Framework 3.0。这就要求WPF目前运行的操作系统必须是Windows Vista或者Windows XP SP2。 此外,SilverLight作为WPF的一个轻量级的版本,比WPF削减了很多功能。 比如,WPF支持直接在XAML中绑定触发来触发动画,而SilverLight就只能通过托管代码或者Javascript来进行。 另外,WPF直接支持3D效果和3D镜头变换,但是SilverLight就不支持这个了。 Silverlight原名WPF/E 就是WPF Everywhere 是WPF的一个子集。 由于名称的关系, WPF与WPF/E一直被认为是类似的东西。 其实两者除了呈现UI的部分使用的是共通语言 XAML 之外,两者在本质上有很大的不同。甚至,XAML对WPF与Silverlight有不同的意义,也不能算是两者间"共通的语言。 XAML对WPF来说,是一种把.NET程序语言改用XML来描述的方式。换句话说,XAML用在WPF上,像是另外一种程序语言。与C#, VB , IronPython相似。所以XAML能做的, C# , VB一样都可以做到。但是反过来, C# , VB 能做的,XAML不一定能做到,因为XAML是为了配合开发工具,特别设计出来的一种语言,本身有他的局限性,所以还是得配合正规的程序语言,才能完一个真正有用的程序。 但是以目前XAML所具备的能力,不靠C# , VB而做到平常简单Flash可以做到的,应该是没啥问题。因此, Application = Code + Markup的作者Petzold才会把这本书的结构先用以C#WPF程序,后半部才介绍XAML。 避免大家误解 WPF = XAML。 XAML还可以用在WF上,所以并不局限于WPF。 如果用了XAML,以为这就是WPF的全部,就大错特错啰! 然而,XAML对Silverlight来说,本质比较贴近SVG。XAML用来描述构画面的结构树,然后配合Javascript去操作这颗表示UI的树,以达到互动的效果。 所以对Silverlight来说, XAML像是用来扩充HTML/CSS原本不足的一组Tag。就像Firefox之中,一样可以用Javascript去操作SVG所描述的画面,藉以达多媒体效果。 WCF,你就先把它想Web Service的下一代也没什么问题。 WCF为Windows Communication Foundation,是Microsoft为构建面向服务的应用提供的分布式通信编程框架,是.NET Framework 3.5的重要组部分。从功能的角度来看,WCF完全可以看作是ASMX,.Net Remoting,Enterprise Service,WebService,MSMQ等技术的并集。 WPF是Windows Presentation Foundation,微软新发布的Vista操作系统的三大核心开发库之一,其主要负责的是图形显示,所以叫Presentation(呈现)。 WPF相对于WinForm,将美工(控件样式设置)与实现(代码的业务实现)分开,是一种新的架构方式。 VS2008新特性是.Net Framework 3.5。
第15章 键盘与鼠标 389 15.1 鼠标操作技巧 390 0626 鼠标双击窗体时模拟键盘Tab键操作 390 0627 定义鼠标指针形状 390 0628 自定义鼠标的图片 391 0629 鼠标拖放复制文本 391 0630 如何使用鼠标单击添加控件 392 0631 如何获得鼠标在窗体上的位置 392 0632 如何交换鼠标左右键功能 392 0633 如何隐藏和显示鼠标 393 0634 如何获取光标闪烁的频率 394 0635 如何获得屏幕上鼠标的坐标 394 0636 如何限制鼠标在某一区域工作 394 0637 如何利用鼠标绘图 395 0638 如何获取鼠标双击时间间隔 396 0639 如何获取鼠标键数 396 0640 如何显示鼠标的等待光标 397 0641 如何禁用鼠标左键 397 0642 如何模拟鼠标操作 398 0643 如何实现鼠标穿透窗体 399 0644 如何记录鼠标行为 399 15.2 键盘操作技巧应用 400 0645 如何禁用输入法编辑器 400 0646 如何打开和关闭输入法编辑器 400 0647 回车转换Tab键 400 0648 如何获取组合键 401 0649 如何获取功能键 401 0650 如何判断NumLock键和CapsLock键是否锁定 401 0651 如何屏蔽 Alt + F4 键关闭窗体 402 0652 如何实现按下 Esc 键关闭窗体 402 0653 如何避免按 Enter 键产生“嘀”声 403 0654 如何设置键盘热键 403 第16章 文件、文件管理及数据流 405 16.1 获取文件基本信息 406 0655 获取文件创建的日期和时间 406 0656 如何检索路径中的文件名和扩展名 406 0657 如何获得文件的大小 407 0658 如何修改文件属性 407 0659 如何监视文件系统变化情况 408 0660 如何获取文件的系统启动方式 408 0661 如何获取文件名禁止使用的字符 409 0662 如何获取路径名禁止使用的字符 410 0663 如何获取指定目录的上级目录 410 16.2 文件基本操作 411 0664 判断文件是否存在 411 0665 创建一个文件用于入UTF-8编码的文本 411 0666 OpenRead方法打开现有文件并读取 412 0667 打开现有UTF-8编码文本文件并进行读取 412 0668 OpenWrite方法打开现有文件并进行入 413 0669 如何读取文件中的第一行数据 413 0670 如何向文件中入数据 413 0671 如何读取文件中所有数据 414 0672 如何创建临时文件 414 0673 如何实现文件替换 415 0674 使用递归法删除文件夹中所有文件 415 0675 如何更改文件扩展名 416 0676 如何实现复制文件 416 0677 如何修改文件名 416 0678 如何删除文件 417 0679 如何上传文件 417 0680 如何下载文件 418 0681 如何拖放文件 419 0682 如何搜索文件 419 16.3 文件夹基本操作 420 0683 如何创建文件夹 420 0684 如何移动文件夹 420 0685 如何修改文件夹名称 421 0686 如何遍历文件夹 421 0687 如何删除文件夹 422 16.4 数据流操作 422 0688 如何读内存数据流 422 0689 如何创建二进制文件 423 0690 如何读取二进制文件 423 0691 如何使用缓冲流 424 16.5 加密、解密及解压缩文件 425 0692 加密和解密文件 425 0693 如何使用对称算法加密文件 425 0694 如何使用对称算法解密文件 426 0695 如何使用GZip压缩文件 427 0696 如何使用GZip解压文件 428 0697 如何使用WinRAR压缩文件 429 0698 如何使用WinRAR解压文件 429 16.6 其他 430 0699 设置文件的访问模式 430 0700 如何在C#应用程序中使用INI文件 430 0701 如何操作帮助文件 431 0702 如何操作Word文件 432 0703 如何操作Excel文件 433 0704 如何将文本文件转换网页文件 434 0705 如何产生随机文件夹名或文件名 435 0706 如何将长文件名转换短文件名 436 0707 如何用程序创建XML文档并入内容 436 0708 如何通过DataSet对象读取XML文件 438 0709 如何动态创建XML文件节点 439 0710 如何实现XML文件数据类型的转换 439 0711 将图片保存到XML文件中 440 0712 如何比较两个文件的内容是否相同 440 0713 如何以缩略图形式上传图片文件 441 0714 如何解析只有一种格式的文本文件 442 0715 如何解析含有多种格式的文本文件 443 第17章 Windows开发技术 445 17.1 获取计算机系统信息 446 0716 如何获取系统时间 446 0717 如何获取系统目录 446 0718 如何获取计算机名称 446 0719 如何获取当前程序运行目录 446 0720 如何获得操作系统版本号 446 17.2 获取计算机硬件信息 446 0721 如何获取CPU编号 446 0722 如何获取显示设备的PNPDeviceID 447 0723 如何获取声音设备的PNPDeviceID 447 0724 如何获取硬盘编号 447 0725 如何获取CPU的版本信息 448 0726 如何获取CPU的产品名称信息 448 0727 如何获取CPU的制造商名称 448 0728 如何获取主板制造商 449 0729 如何获取主板编号 449 0730 如何获取主板型号 449 0731 如何获取磁盘空间 450 0732 如何获取磁盘剩余空间 450 0733 如何确定屏幕的分辨率 451 0734 如何获得磁盘的卷标 452 0735 如何获得磁盘的文件系统类型 452 17.3 获取特殊文件夹路径 453 0736 如何获取ProgramFiles目录全路径 453 0737 如何获取桌面目录全路径 453 0738 如何获取开始菜单目录全路径 454 0739 如何获取用户程序组目录全路径 454 0740 如何获取文档模板目录全路径 455 0741 如何获取收藏夹目录全路径 455 0742 如何获取共享组件目录全路径 456 0743 如何获取我的图片目录全路径 456 0744 如何获取Internet历史记录全路径 457 0745 如何获取Internet临时文件目录全路径 457 0746 如何设置可用样式 457 17.4 获得Windows当前用户 458 0747 如何获取当前用户 458 0748 如何判断当前用户是否是普通用户 458 0749 如何判断当前用户是否是超级用户 458 0750 如何判断当前用户是否是系统管理员 459 0751 如何判断当前用户是否是系统操作员 459 0752 如何判断当前用户是否是备份操作员 460 0753 如何判断当前用户是否是打印操作员 460 0754 如何判断当前用户是否是复制程序员 461 0755 如何判断当前用户是否是账户操作员 461 17.5 Windows日志 462 0756 如何获取系统日志信息 462 0757 如何获取安全日志信息 462 0758 如何获取应用程序日志信息 463 0759 如何创建并入自定义日志信息 464 0760 如何向系统日志入自定义数据 464 0761 如何向应用程序日志入自定义信息 465 17.6 计算机控制 465 0762 列举系统中所有窗口 465 0763 C#实现键盘钩子 465 0764 如何关闭计算机 466 0765 如何抓屏 466 0766 如何休眠计算机 467 0767 如何禁止使用Windows任务管理器 468 0768 如何为文件新增右键菜单项 468 0769 如何设置系统仅能运行的程序 469 0770 如何获取本地计算机上所有的进程 469 0771 如何启动一个进程 470 0772 怎样杀死一个进程 470 0773 如何获取远程计算机上所有的进程 470 17.7 其他相关技术 470 0774 如何在注册表中保存窗体的大小和位置 470 0775 如何实现程序间注册表内传递变量 471 0776 在使用OpenFileDialog中的相对路径问题 471 0777 如何设置启动时自动执行程序 471 0778 C#编程实现Windows XP风格的界面 471 0779 用C#实现文件查找功能 473 0780 如何序列化对象 473 0781 如何实现特殊形状的窗体 474 0782 如何移动正在使用的文件 474 0783 如何实现类似QQ的程序界面 475 0784 如何实现动画显示窗体 476 0785 如何显示和隐藏任务栏 477 0786 如何实现OutLook界面 478 0787 如何在C#中回车换行 478 0788 如何获取进程的命令行 479 0789 如何按行读取文本并显示行数 479 0790 如何在Form中嵌入Excel 479 0791 如何使用互斥量禁止程序运行两个实例 480 0792 如何使用进程名禁止程序运行两个实例 480 0793 如何获取控制台应用程序的显示结果 481 0794 如何用@代替路径中的转义字符 482
初 级 篇 \第1章 Qt初步实践 2 \1.1 第一个Qt程序 2 \1.1.1 建立主程序 2 \1.1.2 建立工程 3 \1.1.3 编译/运行第一个Qt应用程序 8 \1.1.4 第一个Qt程序的代码分析 8 \1.2 使用Qt布局管理器 11 \1.3 关联操作 12 \1.4 小结 13 \第2章 对话框——QDialog 14 \2.1 自定义对话框 14 \2.1.1 建立新类 14 \2.1.2 添加子窗口部件 15 \2.2 加入主程序 22 \2.3 Qt内建(built-in)对话框 24 \2.4 小结 34 \第3章 基础窗口部件——QWidget 35 \3.1 Qt设计器绘制窗口部件 35 \3.1.1 Qt设计器基础 35 \3.1.2 绘制窗口部件 40 \3.2 程序中引入自定义窗口部件 47 \3.2.1 直接使用方式 47 \3.2.2 单一继承方式 49 \3.2.3 多继承方式 51 \3.3 Qt的信号和槽机制 53 \3.3.1 基本原理 53 \3.3.2 设计信号和槽 55 \3.3.3 信号和槽的自动关联 62 \3.4 窗口标志及几何布局 63 \3.4.1窗口标志 64 \3.4.2窗口部件的几何布局 66 \ \3.5 Qt样式表 74 \3.5.1 样式表语法 74 \3.5.2 样式表的应用 76 \3.6 Qt对象模型 79 \3.6.1 元对象系统 79 \3.6.2 属性系统 80 \3.6.3 对象树 83 \3.7 小结 86 \第4章 程序主窗口——QMainWindow 87 \4.1 QMainWindow主窗口框架 87 \4.2 Qt设计器绘制主窗口 88 \4.2.1 菜单 90 \4.2.2 工具栏 93 \4.2.3 中心部件 96 \4.3 代码创建主窗口 98 \4.3.1 创建资源文件 98 \4.3.2 定义主窗口类 98 \4.4 锚接部件 102 \4.5 状态栏 105 \4.6 实现文本编辑器功能 107 \4.7 多文档 118 \4.8 打印文档 119 \4.9 小结 120 \第5章 布局管理 121 \5.1 Qt布局管理器——QLayout 121 \5.1.1 Qt布局管理器简介 121 \5.1.2 布局管理器及窗口部件大小策略 \5.1.2 的应用 125 \5.2 分裂器部件QSplitter 132 \5.3 栈部件QStackedWidget 134 \5.4 工作空间部件QWorkspace 135 \5.5 多文档区部件QMdiArea 148 \5.6 小结 150 \ \中 级 篇 \第6章 2D绘图 152 \6.1 Arthur绘图基础 152 \6.1.1 绘图 152 \6.1.2 绘图设备 174 \6.2 坐标系统与坐标变换 175 \6.2.1 坐标系统 175 \6.2.2 坐标变换 175 \6.3 用不同的字体 177 \6.4 绘图路径——QPainterPath 180 \6.5 QImage与QPixmap绘图设备 182 \6.5.1 QImage 182 \6.5.2 Pixmap 183 \6.6 组合模式绘图 192 \6.7 Graphics View框架 200 \6.7.1 Graphics View体系结构 200 \6.7.2 Graphics View坐标系统 201 \6.7.3 深入Graphics View 202 \6.8 图形图像打印 208 \6.8.1 普通打印过程 208 \6.8.2 特殊窗口部件的打印 210 \6.9 小结 211 \第7章 拖放操作和剪贴板 212 \7.1 拖放操作 212 \7.1.1 拖放操作 212 \7.1.2 定义新的拖放操作类型 214 \7.1.3 Graphics View框架下的拖放 \7.1.3 操作 215 \7.2 使用剪贴板 217 \7.3 小结 218 \第8章 文件处理 219 \8.1 读文本文件 219 \8.2 操作二进制文件 220 \8.3 临时文件 222 \8.4 目录操作和文件管理 222 \8.4.1 目录操作 222 \8.4.2 文件管理 224 \8.5 监视文件系统变化 225 \8.6 文件引擎 226 \8.7 小结 226 \第9章 网络 227 \9.1 FTP客户端 227 \9.2 HTTP客户端 235 \9.3 UDP应用 239 \9.4 TCP应用 243 \9.5 高级应用 253 \9.5.1 底层操作 253 \9.5.2 使用代理 256 \9.5.3 扩展Qt网络功能 256 \9.5.4 效率问题 260 \9.6 小结 260 \第10章 多线程 261 \10.1 启动一个线程 261 \10.2 线程互斥与同步 264 \10.2.1 临界区问题 265 \10.2.2 使用QMutex 265 \10.2.3 使用QSemaphore 266 \10.2.4 使用QWaitConditon 269 \10.3 线程的其他问题 271 \10.3.1 优先级问题 271 \10.3.2 死锁及优先级反转问题 274 \10.3.3 本地存储问题 275 \10.4 Qt的线程机制 276 \10.4.1 可重入与线程安全 276 \10.4.2 线程与事件循环 277 \10.4.3 线程与信号/槽机制 278 \10.4.4 多线程网络示例 279 \10.5 小结 282 \第11章 事件处理 283 \11.1 事件机制 283 \11.1.1 事件来源与类型 283 \11.1.2 事件处理方法 284 \11.2 事件处理器 285 \11.3 事件过滤器 290 \11.4 加快用户界面响应 292 \11.4.1 使用processEvents()函数 293 \11.4.2 使用定时器 294 \11.5 小结 296 \第12章 数据库 297 \12.1 连接数据库 297 \12.2 常用数据库操作 301 \12.2.1 使用SQL语句 302 \12.2.2 事务操作 304 \12.2.3 使用SQL模型类 304 \12.2.4 数据表示 308 \12.3 Qt数据库应用 310 \12.3.1 使用嵌入式数据库 310 \12.3.2 使用Oracle数据库 313 \12.4 小结 325 \第13章 Qt的模板库和工具类 326 \13.1 Qt容器类 326 \13.1.1 QList、QLinkedList和QVector 327 \13.1.2 QMap、QHash 332 \13.2 QString 334 \13.2.1 隐式共享 335 \13.2.2 内存分配策略 336 \13.2.3 操作字符串 336 \13.2.4 查询字符串数据 337 \13.2.5 字符串的转换 338 \13.3 QVariant 339 \13.4 Qt的算法 341 \13.5 正则表达式 342 \13.5.1 基本的正则表达式 342 \13.5.2 文字捕获 344 \13.6 小结 345 \高 级 篇 \第14章 XML 348 \14.1 DOM 348 \14.1.1 DOM入门 348 \14.1.2 使用DOM 348 \14.1.3 使用DOMXML文件 352 \14.2 SAX 354 \14.3 基于流的XML API 359 \14.4 小结 365 \第15章 模型/视图结构 366 \15.1 模型/视图结构与MVC设计 \15.1 模式 366 \15.1.1 模型 366 \15.1.2 视图 367 \15.1.3 代理 368 \15.2 使用已有的模型视图类 368 \15.2.1 使用已有的模型和视图类 368 \15.2.2 QListWidget、QtreeWidget \15.2.2 和QTableWidget 370 \15.3 模型(Models) 381 \15.3.1 模型索引 381 \15.3.2 模型角色 382 \15.3.3 自定义模型 382 \15.3.4 代理模型 385 \15.4 视图(Views) 390 \15.4.1 自定义视图 390 \15.4.2 数据-窗口部件映射 390 \15.5 代理(Delegates) 396 \15.5.1 使用已有的代理 396 \15.5.2 自定义代理 396 \15.6 拖放与选中 401 \15.6.1 拖放操作 401 \15.6.2 选中模式 404 \15.7 小结 405 \第16章 高级绘图 406 \16.1 3D绘图——使用OpenGL 406 \16.1.1 创建OpenGL窗口 406 \16.1.2 着色 410 \16.1.3 3D和旋转 411 \16.1.4 纹理贴图 414 \16.2 SVG 417 \16.2.1 绘制SVG图形 418 \16.2.2 生SVG文件 419 \16.3 小结 420 \第17章 进程与进程间通信 421 \17.1 使用QProcess 421 \17.2 Linux进程间通信 423 \17.3 新型进程间通信——D-Bus 425 \17.3.1 D-Bus简介 425 \17.3.2 安装QtDBus模块 427 \17.3.3 接口与适配器 429 \17.3.4 QtDBus应用实例 432 \17.4 小结 441 \第18章 Qt插件 442 \18.1 Qt插件开发基础 442 \18.2 Qt设计器插件 443 \18.2.1 使用Scratchpad 443 \18.2.2 提升自定义窗口部件 444 \18.2.3 Qt设计器插件开发 444 \18.3 编数据库插件 451 \18.4 自定义风格插件 455 \18.5 小结 458 \第19章 脚本——QtScript 459 \19.1 执行ECMAScript脚本 459 \19.2 QtScript中的信号和槽 460 \19.3 使用JavaScript操作Qt对象 463 \19.4 基于Prototype的继承 467 \19.5 小结 467 \第20章 国际化 468 \20.1 Unicode与字符编码 468 \20.1.1 Unicode 468 \20.1.2 汉字编码 469 \20.1.3 编码转换 469 \20.2 Qt Linguist 471 \20.2.1 发布管理器 472 \20.2.2 翻译器 474 \20.2.3 加载翻译文件 476 \20.3 语言切换 477 \20.4 小结 477 \第21章 Qt单元测试框架 478 \21.1 QTestLib框架 478 \21.1.1 QTestLib 478 \21.1.2 第一个Qt单元测试 478 \21.2 数据驱动测试 480 \21.3 GUI测试 481 \21.2.1 仿真GUI事件 481 \21.2.2 重放GUI事件 483 \21.3 小结 484 \附录A Qt安装 485 \附录B Qt集开发环境 492 \附录C qmake速查 501 \附录D 深入Qt源代码 506 \附录E Qt资源 512 序言/前言    前言 \两年前,当我们准备在Linux系统下开发GUI应用软件时,首先想到的就是选择一个GUI应用框架来简化开发。在三大GUI框架GTK+、Qt和wxWidgets 之间,我们选择了Qt 4工具包。作为重量级桌面系统KDE多年的坚实基础,Qt应该是经受了足够的考验。当我们准备编自己的应用软件时,却发现图书市场上没有一本关于Qt 4的书籍,仅有的只是一些关于Qt 3的资料。由于Qt 3到Qt 4的变化很大,甚至源代码都不兼容,所以这些资料的参考价值并不是太大。于是,我们通过阅读Qt的assistant和examples来学习并使用Qt 4。在逐渐掌握Qt 4的过程中,我们萌发了编一本关于Qt 4的书来帮助初学者入门的想法。最终,在电子工业出版社博文视点资讯有限公司的大力支持下,我们的想法终于得以付诸实施。 \关于Qt \Qt是挪威的Trolltech公司的旗舰产品,作为跨平台的应用程序框架,是开源的桌面系统KDE的基石。Google Earth,Skype,Opera,Adobe Photoshop Elements,Peforce Visual Client等软件都是基于Qt。自Trolltech公司1996年推出Qt 1.0版以来,Qt已经从2.x,3.x发展到了现在的Qt 4.3,本书就是基于最新的Qt 4.3。因为Qt 4框架设计得非常优秀,在2006年的第16届Jolt大奖上,Qt 4获得了类库、框架和组件类别的Jolt生产力奖。 \和Java的“一次编译,到处运行”跨平台不同的是,Qt是源代码级的跨平台,一次编,随处编译。一次开发的Qt应用程序可以移植到不同的平台上,只需重新编译即可运行。Qt支持的平台有: \? Microsoft Windows,包括Windows 98/NT 4.0/2000/XP/Vista; \? UNIX/X11,包括Linux,Sun Solaris,HP-UX,HP Tru64 UNIX,IBM AIX,SGI IRIX等; \? Mac OS X,支持Mac OS X 10.3以上版本; \? 嵌入式Linux,包括支持framebuffer的所有Linux平台。 \Qt还支持嵌入式系统,Qt的嵌入式版本称为Qtopia Core,可以在多种处理器上运行,目标操作系统通常是嵌入式Linux。Qtopia Core应用程序直接使用framebuffer,而不是笨重的X Window系统。Qt相关的另一个产品——Qt Jambi,则是基于Qt库构建的,面向Java程序员的应用程序框架。另外,还有一些开源的在其他语言上的Qt绑定,如C#/Mono的绑定Qyoto,Python的绑定PyQt,Ruby的绑定QtRuby等。有了这些产品,编Qt程序不再是C++程序员的专利了。 \Qt的发行版本有商业版和开源版。开源版遵循QPL(Q Public License)和GPL(GNU General Public License)协议,商业版则提供了一些特有的模块,如Windows平台上的ActiveQt框架,Oralce、DB2等商业数据库的驱动。本书主要介绍开源版的Qt 4.3。 \阅读本书的基础 \阅读本书的读者需要具有基本的C++程序设计知识,毕竟Qt是用C++编的应用程序框架。如果要学习QtScript,还需要了解JavaScript。 \本书的结构 \本书共21章,每章讨论一个专题。章节安排上基本采用循序渐进、由浅到深的原则。但最后的高级篇中的章节没有很强的关联,可以按照随意的顺序阅读。每章内容及作者分述如下: \篇章 章 名 作者 内 容 简 介 页码 \初级篇 第1章 Qt初步实践 卢传富 建立了第一个较简单的Qt应用程序,在GUI用户界面中显示一行中文。 2 \ 第2章 对话框 \——QDialog 卢传富介绍了Qt的对话框类QDialog,实现了一个自定义的登录对话框,举例说明了Qt提供的内建对话框类的应用。 14 \ 第3章 基础窗口部件——QWidget 卢传富 \蔡志明首次引入Qt设计器的使用,绘制并实现了一个查找文件功能的部件,介绍了Qt应用程序中使用ui文件的基本方法以及Qt样式表;较深入地分析了Qt对象模型的一些基本知识,涉及信号和槽机制、Qt元对象系统、属性系统和对象树机制,以及部件类型和部件的几何布局等内容。 35 \ 第4章 程序主窗口—— QMainWindow 卢传富 Qt应用程序的主窗口是由多个部件/组件构的框架,本章通过一个简单文本编辑器的例子,介绍了主窗口的菜单、工具条、中心部件、锚接部件和状态条,并通过Qt设计器绘制和手代码两种方法实现了简单文本编辑器主窗口界面的排布和管理。 87 \ 第5章 布局管理 卢传富布局管理是GUI应用程序编程的一个重要方面。Qt提供了多种布局管理部件,包括Qt布局管理器、分裂器、栈部件、工作空间部件和多文档区部件等。本章一一介绍了这些部件,并举例说明了它们在图形用户界面编程中的应用。 121 \中级篇 第6章 2D绘图 蔡志明本章内容较多,包括Qt的绘图要素、图形变换与坐标系统、绘图设备、图像处理、图像打印等。最后讲解了Qt 4图形系统的模型视图框架——Graphics View框架。 152 \ 第7章 拖放操作与剪贴板 蔡志明 本章简要地说明了基于MIME的拖放操作和剪贴板的使用,关于Graphics View框架的拖放操作也在本章。 212 \ 第8章 文件处理 蔡志明介绍了Qt的文件处理,包括基于流的文本文件和二进制文件处理,文件信息和目录操作,目录以及文件的变化监控,文件引擎的编。 219 \ 第9章 网络 李立夏介绍了Qt的网络处理,包括编常见的FTP、HTTP、UDP和TCP程序,以及访问底层网络接口信息和扩展Qt网络模块功能的方法。 227 \ 第10章 多线程 李立夏介绍了Qt的多线程处理,包括两方面内容:传统的线程操作,以及与Qt事件机制相关的操作。这一章还涉及较多的基本概念,并逐一做了介绍。 261 \ 第11章 事件机制 李立夏介绍了Qt的事件处理模型,详细介绍了在Qt程序设计中处理事件的五种方法,并讨论了如何利用Qt事件机制加快用户界面响应速度。 283 \ 第12章 数据库 李立夏介绍了Qt的数据库处理,重点介绍了如何在Qt中使用SQL语句进行数据库操作和如何利用QSqlTableModel这类高层次类进行常见的数据库编程。 297 \ 第13章 Qt的模板库和工具类 卢传富 \蔡志明 Qt提供了丰富的模板库和工具类,本章只是介绍了部分内容。在这一章,重点介绍了Qt的容器类、QString和QVariant类,简介了Qt的算法和Qt正则表达式的使用。 326 \ \ \续表 \篇章 章 名 作者 内 容 简 介 页码 \高级篇 第14章 XML 蔡志明对Qt中的三种XML解析方式(DOM、SAX和基于流的解析)进行了比较和举例。还讲解了如何使用APIXML文件。 348 \ 第15章 模型/视图结构 蔡志明阐述了Qt的模型/视图结构,分别对模型视图的三个组部分(模型、视图和代理)进行了介绍,演示了如何自定义这些组部分,并简要说明了拖放以及选中操作。 366 \ 第16章 高级绘图 蔡志明叙述了在Qt中如何使用OpenGL绘图,对基本的OpenGL绘图进行了讲解,介绍了矢量图型文件SVG的读操作。 406 \ 第17章 进程间通信 李立夏 介绍进程和进程间通信的知识,重点介绍了Qt中桌面环境下基于D-Bus的多进程应用程序开发。 421 \ 第18章 Qt插件 蔡志明 说明了Qt的插件系统,并对Qt Designer插件、数据库插件、风格插件进行了较详细的介绍。 442 \ 第19章 脚本——QtScript 蔡志明 这是Qt 4.3中引入的最新内容,使得Qt能够支持ECMAScript脚本。本章简要地举例说明了在Qt中如何使用脚本,如何将C++对象暴露给脚本。 459 \ 第20章 国际化 骆艳 本章包括编码的处理,Qt Linguist的使用步骤,动态语言切换的内容。 468 \ 第21章 Qt单元测试框架 蔡志明 本章阐述了如何使用QTestLib框架进行数据测试、GUI测试。 478 \ 附录A~E 蔡志明附录中包括Qt在Linux、Windows、Solaris上的安装,KDevelop、Eclipse集开发环境的使用,qmake的基本应用,Qt源代码分析举例,Qt资源。 485 \如何获取源代码 \由于Qt是跨平台的,因此书中的内容应用能够在Windows、Linux、UNIX和Mac OS上运行,书中的程序可能是在下列三种平台之一上编:Windows XP/Vista、Linux(SuSE、Fedora Core或红旗)以及Solaris 10 SPARC/X86。因此书中的屏幕截图可能来源于其中的任何一种操作系统。 \要获取本书的源代码,可以访问博文视点资讯有限公司网站获取: \ www.broadview.com.cn。 \致谢 \本书在作出版的过程中,得到了电子工业出版社孙学瑛编辑的大力帮助,没有她细致的工作和有益的建议,本书难以最终出版,在此,作者向孙学瑛编辑表示诚挚的谢意。 \问题反馈 \欢迎广大读者和专家对本书提出建议和批评。如果您认为书有错误或对我们有什么建议,可以联系jsj@phei.com.cn。 \ \蔡志明 卢传富 李立夏 \2007年11月30日于武汉

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧