编辑推荐

  《PyQt5快速开发与实战》是介绍PyQt5理论与实战的前沿书籍,即系统化地介绍Qt的基础知识,又兼顾Python的各种强大模块,同时包含丰富的项目实战。旨在帮助读者快速掌握PyQt5的应用知识,是Python程序开发的利器。

内容简介

  《PyQt5快速开发与实战》既是介绍PyQt5的快速入门书籍,也是介绍PyQt5实战应用的书籍。PyQt5是对Qt所有类的Python封装,既可以利用Qt的强大功能,也可以利用Python丰富的生态圈,同时能够结合Python简洁的语法进行操作,其结果就是使用PyQt5可以高效、简单地开发出自己想要的程序。《PyQt5快速开发与实战》内容丰富,对PyQt5基础知识的介绍比较全面,同时对新手使用PyQt5的一些重点、难点都有专门的章节进行针对性分析,还重点介绍了如何把Python的一些重量级模块(Pandas、Matplotlib和Plotly)嵌入到PyQt5中,从而极大地节约开发时间。最后,《PyQt5快速开发与实战》给出一些综合性较强的实战案例,帮助读者快速掌握PyQt5的实战应用。
  总而言之,《PyQt5快速开发与实战》旨在帮助读者以最短的时间掌握PyQt5的基础知识并能够实战应用,希望《PyQt5快速开发与实战》对有Python程序开发需求的读者有帮助。

作者简介

  王硕,网名信平,北京鼎鑫拓达资深软件工程师,具有8年的Java企业应用开发经验和3年教育培训经验。曾主持多个B/S项目的开发,经验丰富。擅长J2EE(JSP/Servlet、JDBC、Struts2、Spring、Hibernate)项目开发、Python(程序GUI、数据分析、网络爬虫、机器学习)项目开发,JavaScript、HTML5和数据库技术,是极宽Top开源团队核心成员。

  孙洋洋,现就职于一家资产管理公司,负责公司量化投研系统的开发与维护,有多家券商工作与实习经验。擅长网络爬虫、机器学习、程序GUI开发与设计,对量化投资领域兴趣浓厚,有多年量化投资实盘操作经验,是极宽Top开源团队核心成员。

精彩书评

  《PyQt5快速开发与实战》是作者集数年编程开发于大成的一份心血之作,他从简单实用的系统架构视角将我们带入一个全新开发的思维模式,此书是使用PyQt的佳作,有大量的开发技巧,还汇集了丰富的操作案例,可作为新手上路的必备实操手册,本人读后也获益匪浅。
  ——北京信平科技有限公司总经理王祥平

  一本可以从入门到实战、系统学习PyQt5的好书,是PyQt5学习者的优选教材。
  ——潭州教育Python学院院长李天强

  《PyQt5快速开发与实战》详细介绍了PyQt的基础知识,又兼顾了PyQt的实战应用。并且在扩展应用中介绍的几个模块如QtPandas、Matplotlib、PyQtGrapth、Plotly等,很好地解决了Python在金融领域甚至量化投资领域界面呈现的难点问题,对要做量化投资界面开发的读者来说,《PyQt5快速开发与实战》非常值得推荐。
  ——中国量化投资学会理事长丁鹏

  Python是一门应用广泛的脚本语言,为了创建图形用户界面,PyQt是Python工程师选择的重要工具之一。作者编写的此书涵盖了PyQt5的基础知识和高级应用,体现了技术与理论的完美结合,是Python工程师编程的必备手册。
  ——梁忠博士

目录

第1章认识PyQt51
1.1PyQt框架简介1
1.1.1PyQt5的特点3
1.1.2Qt与PyQt的关系4
1.1.3其他图形界面开发库介绍4
1.1.4PyQt4/PyQt56
1.1.5Python2/Python36
1.2PyQt5环境搭建7
1.2.1在Windows下搭建PyQt5环境7
1.2.2在MacOS下搭建PyQt5环境15
1.2.3PyQt5的安装测试20
1.2.4安装其他Python模块22
1.2.5使用PyQt5的API文档23
1.3Eric6的安装与使用25
1.3.1Eric6的安装及汉化26
1.3.2Eric6的相关配置29
1.3.3安装自动补全插件jedi33
1.3.4测试Eric635
1.3.5Eric6的基本使用35
1.4《PyQt5快速开发与实战》程序下载39
第2章Python基本语法41
2.1Python简介41
2.2数据类型43
案例2-1基本运算43
2.3String(字符串)45
案例2-2字符串入门45
案例2-3字符串常用方法46
2.4List(列表)47
案例2-4列表操作48
2.5Tuple(元组)49
案例2-5元组操作49
2.6Dictionary(字典)50
案例2-6字典操作50
2.7数据类型转换52
2.8控制语句53
案例2-7控制语句53
2.9自定义函数54
案例2-8函数定义55
2.10函数partial55
案例2-9partial函数的使用56
2.11lambda表达式57
案例2-10lambda表达式操作57
2.12类和实例58
案例2-11类和实例的使用58
2.13类的属性和方法59
案例2-12类的属性和方法的使用59
2.14类的动态属性61
案例2-13类的动态属性操作61
第3章QtDesigner的使用64
3.1QtDesigner快速入门64
3.1.1新建主窗口65
3.1.2窗口主要区域介绍66
3.1.3查看UI文件68
3.1.4将.ui文件转换为.py文件70
3.1.5界面与逻辑分离74
3.2布局管理入门75
3.2.1使用布局管理器布局76
3.2.2使用容器进行布局79
3.3QtDesigner实战应用81
3.3.1绝对布局81
3.3.2使用布局管理器布局83
3.3.3其他需要注意的内容91
3.3.4测试程序94
3.4信号和槽关联96
3.4.1简单入门97
3.4.2快速进阶101
3.5菜单栏与工具栏106
3.5.1界面设计106
3.5.2效果测试110
3.5.3应用:加载其他窗口112
3.6打包资源文件115
3.6.1使用QtDesigner加载资源文件115
3.6.2在窗体中使用资源文件116
3.6.3转换资源文件118
3.6.4导入.py资源文件119
第4章PyQt5基本窗口控件122
4.1QMainWindow122
4.1.1窗口类型介绍122
4.1.2创建主窗口123
案例4-1创建主窗口124
4.1.3将主窗口放在屏幕中间125
案例4-2主窗口居中显示125
4.1.4关闭主窗口127
案例4-3关闭主窗口127
4.2QWidget128
4.2.1窗口坐标系统129
4.2.2常用的几何机构130
案例4-4屏幕坐标系统显示131
4.2.3创建第一个PyQt5应用133
案例4-5建立一个主窗口133
4.2.4为应用设置程序图标136
案例4-6设置程序图标136
4.2.5显示气泡提示信息137
4.3QLabel138
案例4-7显示QLabel标签140
案例4-8QLabel标签快捷键的使用142
4.4文本框类控件143
4.4.1QLineEdit143
案例4-9EchoMode的显示效果146
案例4-10验证器147
案例4-11输入掩码149
案例4-12综合示例150
4.4.2QTextEdit152
案例4-13QTextEdit的使用152
4.5按钮类控件154
4.5.1QAbstractButton154
4.5.2QPushButton154
案例4-14QPushButton按钮的使用155
4.5.3QRadioButton158
案例4-15QRadioButton按钮的使用158
4.5.4QCheckBox160
案例4-16QCheckBox按钮的使用161
4.6QComboBox(下拉列表框)164
案例4-17QComboBox按钮的使用164
4.7QSpinBox(计数器)166
案例4-18QSpinBox的使用167
4.8QSlider(滑动条)168
案例4-19QSlider的使用169
4.9对话框类控件171
4.9.1QDialog171
案例4-20QDialog的使用171
4.9.2QMessageBox173
案例4-21QMessageBox的使用175
4.9.3QInputDialog176
案例4-22QInputDialog的使用176
4.9.4QFontDialog178
案例4-23QFontDialog的使用178
4.9.5QFileDialog180
案例4-24QFileDialog的使用181
4.10窗口绘图类控件184
4.10.1QPainter184
案例4-25绘制文字185
案例4-26绘制点187
4.10.2QPen189
案例4-27QPen的使用189
4.10.3QBrush191
案例4-28QBrush的使用192
4.10.4QPixmap194
案例4-29QPixmap的使用194
4.11拖曳与剪贴板195
4.11.1Drag与Drop195
案例4-30拖曳功能197
4.11.2QClipboard198
案例4-31QClipboard的使用199
4.12日历与时间202
案例4-32QCalendar的使用202
案例4-33QDateTimeEdit的使用209
4.13菜单栏、工具栏与状态栏212
4.13.1菜单栏212
案例4-34QMenuBar的使用212
4.13.2QToolBar214
案例4-35QToolBar的使用215
4.13.3QStatusBar216
案例4-36QStatusBar的使用217
4.14QPrinter218
案例4-37QPrinter的使用218
第5章PyQt5高级界面控件221
5.1表格与树221
5.1.1QTableView221
案例5-1QTableView的使用222
5.1.2QListView224
案例5-2QListView的使用225
5.1.3QListWidget226
案例5-3QListWidget的使用226
5.1.4QTableWidget227
5.1.5QTreeView245
5.2容器:装载更多的控件251
5.2.1QTabWidget251
案例5-4QTabWidget的使用252
5.2.2QStackedWidget254
案例5-5QStackedWidget的使用254
5.2.3QDockWidget256
案例5-6QDockWidget的使用257
5.2.4多文档界面259
案例5-7多重文档界面260
5.2.5QScrollBar262
案例5-8QScrollBar262
5.3多线程264
5.3.1QTimer264
5.3.2QThread268
案例5-9应用案例:分离UI主线程与工作线程274
5.3.3事件处理276
5.4网页交互278
案例5-10加载并显示外部的Web页面278
案例5-11加载并显示本地的Web页面280
案例5-12加载并显示嵌入的HTML代码281
案例5-13PyQt调用JavaScript代码283
案例5-14JavaScript调用PyQt代码286
第6章PyQt5布局管理294
6.1好软件的三个维度294
6.2PyQt5中的布局管理295
6.3PyQt5的绝对位置布局296
6.4QBoxLayout(框布局)298
6.4.1QHBoxLayout(水平布局)298
6.4.2QVBoxLayout(垂直布局)300
6.4.3addStretch()函数的使用301
6.5QGridLayout(网格布局)303
6.5.1单一的网格单元格304
6.5.2跨越行和列的网格单元格306
6.6QFormLayout(表单布局)308
6.7嵌套布局309
6.7.1在布局中添加其他布局309
6.7.2在控件中添加布局311
6.8QSplitter314
第7章PyQt5信号与槽317
7.1信号与槽介绍317
7.1.1定义信号318
7.1.2操作信号319
7.1.3信号与槽的入门应用320
7.1.4快速进阶324
7.2信号与槽再细分324
7.2.1内置信号和槽函数324
7.2.2内置信号和自定义槽函数325
7.2.3自定义信号和内置槽函数326
7.2.4自定义信号和槽函数327
7.3信号与槽的高级玩法328
7.3.1高级自定义信号与槽328
7.3.2使用自定义参数333
7.3.3装饰器信号与槽335
7.3.4信号与槽的断开和连接337
7.3.5QtDesigner神助攻:界面显示与业务逻辑的分离339
7.3.6多线程中信号与槽的使用345
7.4事件处理机制入门348
7.4.1事件和信号与槽的区别348
7.4.2常见事件类型348
7.4.3使用事件处理的方法349
7.4.4经典案例分析349
7.5窗口数据传递362
7.5.1单一窗口数据传递363
7.5.2多窗口数据传递:调用属性364
7.5.3多窗口数据传递:信号与槽368
第8章PyQt5图形和特效373
8.1窗口风格373
8.1.1设置窗口风格373
案例8-1设置窗口风格374
8.1.2设置窗口样式375
8.1.3使用自定义的无边框窗口376
8.2绘图378
8.2.1图像类378
8.2.2简单绘图379
8.2.3双缓冲绘图381
案例8-2绘制矩形,出现重影382
案例8-3使用双缓冲技术绘制矩形,避免出现重影384
8.3QSS的UI美化387
8.3.1QSS的语法规则387
8.3.2QSS选择器类型389
8.3.3QSS子控件390
8.3.4QSS伪状态391
8.3.5QDarkStyleSheet392
8.4设置窗口背景395
8.4.1使用QSS设置窗口背景395
8.4.2使用QPalette设置窗口背景396
8.4.3使用paintEvent设置窗口背景398
8.5不规则窗口的显示400
8.5.1不规则窗口实现动画效果404
8.5.2加载GIF动画效果406
8.6设置样式407
8.6.1为标签添加背景图片407
8.6.2为按钮添加背景图片407
8.6.3缩放图片409
8.6.4设置窗口透明409
8.6.5加载QSS410
第9章PyQt5扩展应用412
9.1使用PyInstaller打包项目生成EXE文件412
9.2数据库处理417
9.2.1SQLite介绍417
9.2.2连接数据库421
9.2.3执行SQL语句422
9.2.4数据库模型视图425
9.2.5封装分页查询控件428
9.3Pandas在PyQt中的应用435
9.3.1qtpandas的安装435
9.3.2官方示例解读436
9.3.3设置提升的窗口控件440
9.3.4qtpandas的使用442
9.4Matplotlib在PyQt中的应用445
9.4.1对MatplotlibWidget的解读445
9.4.2设置提升的窗口控件448
9.4.3MatplotlibWidget的使用449
9.4.4更多扩展451
9.5PyQtGraph在PyQt中的应用451
9.5.1PyQtGraph的安装452
9.5.2官方示例解读452
9.5.3设置提升的窗口控件453
9.5.4PyQtGraph的使用454
9.5.5更多扩展457
9.6Plotly在PyQt中的应用457
9.6.1Plotly的安装458
9.6.2示例解读458
9.6.3设置提升的窗口控件460
9.6.4Plotly_PyQt5的使用461
9.6.5更多扩展464
9.6.6Plotly与PyQt5.6的结合465
9.6.7更多扩展468
9.7UI层的自动化测试468
9.7.1手工测试与自动化测试469
9.7.2模拟鸡尾酒的调酒器窗口470
9.7.2将界面文件转换为Python文件473
9.7.3单元测试程序475
9.7.4运行测试用例485
9.7.5生成测试报告486
第10章PyQt5实战一:经典程序开发489
10.1获取城市天气预报489
10.1.1获取天气数据489
10.1.2获取不同城市的天气预报API490
10.1.3界面实现492
10.1.4将界面文件转换为.py文件493
10.1.5调用主窗口类495
10.2复利计算496
10.2.1复利计算业务496
10.2.2界面实现497
10.3刷新博客点击量499
第11章PyQt5实战二:金融领域应用502
11.1控件级别的布局管理502
11.2窗口级别的布局管理505
11.3PyQt5在私募基金公司中的应用506
11.3.1显示产品基本信息506
11.3.2展示产品组合信息512
11.4PyQt5在量化投资中的应用516
11.5PyQt5在券商中的应用522
11.5.1从爬虫说起523
11.5.2程序解读525
参考文献550

前言/序言

  Python可以说是世界上最广泛、最简单的编程语言之一,Qt可以说是世界上最好的程序开发库之一。Python与Qt结合的产物就是PyQt,因此,PyQt就成了Python中程序开发最棒的库之一(当然,笔者认为它在Python程序开发中就是最棒的)。由于PyQt是Python与Qt的结合,所以它既可以利用Python强大而又简洁的语法,又不会丢失Qt强大的功能。从Python的角度来说,凡是Python涉及的所有简洁、易用性的语法,PyQt都可以使用;凡是Python涉及的所有开源模块,PyQt也都可以使用。从Qt的角度来说,由于PyQt完成了对Qt的所有类的封装,因此,从理论上说,使用Qt能开发出来的东西,使用PyQt也可以开发出来,因此,PyQt可以利用Qt强大的功能。由于充分利用了双方的优点,所以PyQt在开发程序的过程中会带来一些意想不到的收获,利用Python的简洁语法与强大而又丰富的生态圈,有些程序逻辑在Qt中实现会比较复杂,而在PyQt中却很简单,这才是PyQt最大的魅力之处。
  近年来PyQt发展很快,从1998年最初的PyQt0.1,到PyQt1、PyQt2、PyQt3、PyQt4以及最新的PyQt5.9(截至2017年8月9日),并且实现了PyQt与Qt的同步更新。有一点非常遗憾的是,PyQt5与PyQt4并不兼容,PyQt4的代码无法在PyQt5中运行。PyQt5的诞生时间是2013年4月,至今,PyQt5经过了快速发展,现在已经非常成熟,并且Qt开发团队已经明确宣布从2015年开始就放弃了对Qt4(对应PyQt4)的支持,因此,对于想要学习PyQt的朋友来说,一开始就学习PyQt5是一个最好的选择。
  然而,非常遗憾的是,市面上并没有一本真正指导新手学习PyQt5的教材,网络上针对PyQt5的学习案例的知识结构也都非常零碎,无法形成一个学习PyQt5的系统化框架。因此,对于新手来说,想要快速接受PyQt5系统性的训练是一件非常困难的事情,笔者最初学习PyQt5的时候也吃尽了苦头,查阅了PyQt5与Qt5的大量官方文献资料,并结合几年的实战应用之后,才可以说有一些水平。
  编程是一个熟能生巧的活儿,目前PyQt5的开发技术算是掌握一些了,但是如果未来不使用这项技术,那么再过几年说不定就完全忘记PyQt5是如何使用的了,如果是这样的话就会给自己留下一些遗憾。考虑到现在个人还有一些额外的时间与精力,考虑到目前市面上还没有一本关于PyQt5使用的教材,于是《PyQt5快速开发与实战》应运而生。
  写书是一项神圣而又艰辛的工作,在《PyQt5快速开发与实战》的创作期间,为了让《PyQt5快速开发与实战》包含更多的内容,同时又让其变得更容易理解,我和搭档孙洋洋查阅了大量的PyQt5官方文献资料,花费了很大的时间和精力在其中。《PyQt5快速开发与实战》得以顺利出版,是无数个日日夜夜调试和写作的成果。写作《PyQt5快速开发与实战》时总会遇到一些复杂的PyQt5技术问题,我和搭档孙洋洋常常连续几天熬夜讨论,在每一个细节上反复推敲,每当攻克技术难点的时候,我们都感到无比快乐。我要特别感谢搭档孙洋洋,没有你的坚持和鼓励,就不会写出这么精彩的书籍,感谢你那较真的性格,谢谢你。
  经过近一年的不懈付出,这本介绍PyQt5的书终于出版了,希望这《PyQt5快速开发与实战》可以帮助更多的朋友掌握PyQt5技术,少走些技术弯路。同时这《PyQt5快速开发与实战》能够按时出版,我感到无比欣慰,无论近一年吃了多少苦、牺牲了多少时间都是值得的。
  《PyQt5快速开发与实战》结构
  《PyQt5快速开发与实战》共有11章,基本包含了笔者在使用PyQt的过程中遇到的绝大多数技术及一些经典的应用。书中有些章节是具有独立性的,读者可以针对自己的实际情况选择阅读。
  第1章介绍PyQt的入门知识,讲述PyQt的安装配置,以及Eric6这个IDE的简单使用方法。已经有一定PyQt基础的朋友可以略去这一章。
  第2章简单介绍Python的基本语法。本章内容针对一些没有接触过Python的读者,已经有一些Python基础的朋友可以略去这一章。
  第3章介绍QtDesigner的使用方法。QtDesigner是一个PyQt的可视化界面编辑程序,它的作用是帮助用户快速开发出界面文件,我们可以通过其他方式把界面文件转换成Python代码文件。对于不懂太多PyQt知识的读者来说,本章内容可以让你快速入门;同时,本章也是让你的PyQt技术快速进步的最重要章节。
  第4章介绍PyQt5的基本窗口控件的使用方法。如果读者的时间并不充裕,只对部分控件感兴趣,则可以选择相应的小节阅读。
  第5章介绍PyQt5的高级界面控件的使用方法。如果读者对PyQt的表格、树、容器(多窗口控件)、多线程等感兴趣,则可以选择相应的小节阅读。
  第6章介绍PyQt5的布局管理(在第3章中阐述QtDesigner的使用方法时已经做了介绍,当时是通过QtDesigner这个代码生成器进行介绍的,而这里通过手工输入代码的方法进行介绍)。由于布局管理非常重要,值得我们用单独一章来介绍。如果读者对用纯代码实现布局管理器感兴趣,则可以参考这一章;如果对用代码生成器QtDesigner实现布局管理器感兴趣,则可以忽略这个章节。实际上,这两种方法并没有本质的区别。
  第7章介绍PyQt5信号与槽的应用。信号与槽是PyQt的核心,想要掌握PyQt的高级玩法,则可以仔细阅读这个章节。
  第8章介绍PyQt5的图形和特效。本章内容适用于有PyQt绘图、美化窗口需求的读者。
  第9章介绍PyQt5的扩展应用。如果你想知道如何把Python的一些非常流行的模块如PyInstaller、Pandas、Matplotlib、PyQtGraph、Plotly等与PyQt结合,则可以选择性阅读这个章节。
  第10章通过几个例子介绍PyQt5的实战应用。想要了解一些简单的程序是如何开发的朋友,则可以选择性阅读这个章节。
  第11章介绍PyQt5在金融领域的应用,这是《PyQt5快速开发与实战》作者孙洋洋在金融公司工作期间积累的一些实战性较高的案例,展示如何将PyQt5应用到投资研究系统、量化投资以及金融工具开发中,读者可以根据自己的需求选择性阅读。
  《PyQt5快速开发与实战》附赠内容
  附录A:PyQt5整体结构
  附录B:Python开发技巧与实践
  附录C:Python在线学习资料
  附赠内容保存在github上,网址是:https://github.com/cxinping/PyQt5,读者可自行下载。祝读者学习顺利、事业有成。
  《PyQt5快速开发与实战》读者
  《PyQt5快速开发与实战》适合具有Python基础的读者,通过《PyQt5快速开发与实战》可熟悉Python基础知识并加深巩固。《PyQt5快速开发与实战》结构合理,内容翔实,适合对Python、Qt和PyQt编程感兴趣的科教人员和广大的计算机编程爱好者阅读,也可作为相关机构的培训教材。
  致谢
  首先,我要感谢我的父亲。在我上大学期间由于家庭变故,我的父亲王贵诚生病去世了,这对我打击很大。我一直很内疚,在他走之前,没能见上他最后一面。在最后一次谈话中,他要求我做一个对社会有用的人,实现自己的最大价值,尽自己的所能无私地帮助别人。如果时间可以倒流,我渴望给父亲一个拥抱,对他说:“我明白,一代人做一代事”。作为其子,我愿意为您分忧。父亲教会我人生的意义,让我懂得人活着就要做有意义的事情,快乐地过每一天。我爱我的父亲,我爱这个家。谢谢父亲这些年的细心教导,让我懂得生活的意义。谢谢您,我的父亲。
  其次,我要感谢我的叔叔王辉和婶婶一家,我的叔叔是我的偶像,也是我做人做事的榜样。他教会我作为一个匠人,应该有的尊严和骄傲,他在我最困难的时候给予我无私的帮助,鼓励我追寻心中的梦想。他经常跟我说,“一生之计在于勤,一天之计在于晨”,刚开始我觉得道理浅显易懂,后来随着年龄的增长、社会阅历的增多,才逐渐明白,一个人只有付出不亚于任何人的努力,在自己的领域一直努力钻研,锲而不舍,才能成功。这个道理很浅显易懂,当时年幼不觉得如何有用,直至今日,方才明白是至理名言。
  《PyQt5快速开发与实战》的出版要特别感谢电子工业出版社的黄爱萍和葛娜,感谢她们在选题策划和稿件整理方面做出的大量工作。
  同时,在《PyQt5快速开发与实战》创作过程中,感谢编委会的全体成员,提出很多宝贵的意见。感谢编委会的邢梦来,牺牲了大量的业余时间,积极和作者讨论写书细节,校对了全部课件程序,对每个程序都做了中文注解。
  感谢兄长徐楠光,教会我用感恩的心去工作,积极主动地面对困难,让我对拥有的一切心怀感激。
  感谢我的母亲徐素萍,感谢我的妻子李蕾,感谢你们在我写书的时候给我提出的建议,鼓励我写成此书。感谢母亲多年来含辛茹苦的培养,您对我的默默支持,是我积极向上的精神动力。
  感谢我的好兄弟王祥平,在《PyQt5快速开发与实战》的出版过程中提出了很多宝贵的意见。在我心力交瘁时,鼓励我永不放弃,在科大学习期间是我一生中最快乐的日子。
  感谢我的师傅张云河,您是我做人做事的榜样。感谢您教会我宝贵的专业知识,在我最落魄的时候给予我巨大的帮助,让我有能力去实现自己的梦想。我将继续追随您,为梦想而努力。
  感谢潭州教育的众位老师,IOS学院的院长Dream老师,Python学院的院长强子老师,Android学院的院长Hank老师,教会我专业的技术,使我的技术突飞猛进,还鼓励我要为社会做出更多的贡献,实现自己的人生价值。
  感谢罗曦、张剑、陈晓楠三位同学,为《PyQt5快速开发与实战》的编写提供了大量支持。
  感谢洛基英语(RockyEnglish)的韩宏术老师、查理老师和刘安乐老师,使我的英语水平得到提高,让我掌握了地道、流利、准确的英语发音,可以无障碍地阅读英文技术文档。给予我信心,帮助我建立人生的目标和梦想。
  最后,特别感谢克亚营销的刘克亚老师,拜读您写的《超高价营销》时,经常激动得彻夜难眠,书中的每个观点都让我兴奋不已,“一二三成功模式”更是坚定我写《PyQt5快速开发与实战》的原因,您教导我要先无私地给予别人,帮助别人成功,然后自己才能成功,推崇共赢而不是竞争。作为您的学生受益良多,您提出的克亚营销铁律,教会我如何实现自我价值。在此,让我怀着激动的心情写出克亚营销铁律。
  第一,你的所有营销沟通和活动,都必须100%从对方的角度思考。
  第二,为对方产生结果贡献价值,促成对方最轻松、最快速地实现梦想,是你一切营销的终极目标。
  第三,你必须保证结果,提供零风险承诺是你的责任,更是你的义务。
  第四,你永远不会考虑说什么才能说服对方,你始终问自己,“给什么才能让对方明白购买你的产品或服务是他唯一合理的选择”。
  第五,你永远不会等到对方购买后,才开始对他的人生和梦想贡献价值。
  第六,你永远不会因为对方已经购买就停止对他的人生和梦想贡献价值。
  第七,你为对方创造10倍的价值,才索取1倍的回报。
  第八,有价值的教育是给予,也是贡献。
  第九,你必须让对方能够轻松、快速、方便地购买和使用你的产品或服务,并从中受益。
  第十,你只推崇共赢,从不相信竞争,在你的书本里,当创造力熄灭的时候,才是竞争开始的时候。
  第十一,你必须让对方发自内心地感到,认识你并和你交往是幸运的,也是快乐的。
  第十二,你坚信世界上最自私的行为是无私。
  刘克亚老师的克亚营销思想是PC互联网时代强大的营销利器,更是移动互联网时代基本的营销必备工具,因为它的理论根植于人性的基本规律和商业的客观规律。当接触克亚营销后,我才明白如何打造出爆款产品(这里的产品指一切可以销售的商品,软件也属于商品的一种)。以前我只认识到软件开发的重要性,但接触克亚营销后才发现,最重要的一环是软件销售,只有销售成功了,才能为企业带来足够的利润,企业才有能力继续维护和开发下一版软件,进入良性循环中,这种软件才可以称得上是成功的软件。所以,我以此书向刘克亚老师致敬,谢谢您。


其他推荐