qt实现绘图软件源码(qt用于数据处理绘图)
本文目录一览:
qt画图画折线代码怎么写
** Qt教程一 - 1
** main.cpp
**
****************************************************************/
#include qapplication.h
#include qpushbutton.h
int main( int argc, char **argv )
{
QApplication a( argc, argv );
QPushButton hello( "Hello world!", 0 );
hello.resize( 100, 30 );
a.setMainWidget( hello );
hello.show();
return a.exec();
}
用 vi 和 gedit 等编辑工具编辑这个 main.cpp 文件,
保存到一个单独的目录,比如说 /root/helloworld
上面我们看到了程序运行效果,下面我们来一行一行地解说源程序:
#include qapplication.h
这一行包含了QApplication类的定义。在每一个使用Qt的应用程序中都必须使用一个QApplication对象。QApplication管理了各种各样的应用程序的广泛资源,比如默认的字体和光标。
#include qpushbutton.h
这一行包含了QPushButton类的定义。参考文档的文件的最上部分提到了使用哪个类就必须包含哪个头文件的说明。
QPushButton是一个经典的图形用户界面按钮,用户可以按下去,也可以放开。它管理自己的观感,就像其它每一个QWidget。一个窗口部件就是一个可以处理用户输入和绘制图形的用户界面对象。程序员可以改变它的全部观感和它的许多主要的属性(比如颜色),还有这个窗口部件的内容。一个QPushButton可以显示一段文本或者一个QPixmap。
int main( int argc, char **argv )
{
main()函数是程序的入口。几乎在使用Qt的所有情况下,main()只需要在把控制转交给Qt库之前执行一些初始化,然后Qt库通过事件来向程序告知用户的行为。
argc是命令行变量的数量,argv是命令行变量的数组。这是一个C/C++特征。它不是Qt专有的,无论如何Qt需要处理这些变量(请看下面)。
QApplication a( argc, argv );
a是这个程序的QApplication。它在这里被创建并且处理这些命令行变量(比如在X窗口下的-display)。请注意,所有被Qt识别的命令行参数都会从argv中被移除(并且argc也因此而减少)。关于细节请看QApplication::argv()文档。
注意:在任何Qt的窗口系统部件被使用之前创建QApplication对象是必须的。
QPushButton hello( "Hello world!", 0 );
这里,在QApplication之后,接着的是第一个窗口系统代码:一个按钮被创建了。
这个按钮被设置成显示“Hello world!”并且它自己构成了一个窗口(因为在构造函数指定0为它的父窗口,在这个父窗口中按钮被定位)。
hello.resize( 100, 30 );
这个按扭被设置成100像素宽,30像素高(加上窗口系统边框)。在这种情况下,我们不用考虑按钮的位置,并且我们接受默认值。
a.setMainWidget( hello );
这个按钮被选为这个应用程序的主窗口部件。如果用户关闭了主窗口部件,应用程序就退出了。
我们不用必须设置一个主窗口部件,但绝大多数程序都有一个。
hello.show();
当我们创建一个窗口部件的时候,它是不可见的。我们必须调用show()来使它变为可见的。
return a.exec();
这里就是main()把控制转交给Qt,并且当应用程序退出的时候exec()就会返回。
在exec()中,Qt接受并处理用户和系统的事件并且把它们传递给适当的窗口部件。
}
我们现在可以试着编译和运行这个程序了。
编译
编译一个C++应用程序,我们需要创建一个makefile。创建一个Qt的makefile的最容易的方法是使用Qt提供的连编工具qmake。如果我们已经把main.cpp保存到它自己的目录了,我们所要做的就是这些:
qmake -project
qmake
第一个命令调用qmake来生成一个.pro(项目)文件。第二个命令根据这个项目文件来生成一个(系统相关的)makefile。我们现在可以输入make(或者nmake,如果我们使用Visual Studio),然后运行我们的第一个Qt应用程序!
make
行为
当我们运行它的时候,我们就会看到一个被单一按钮充满的小窗口,在它上面我们可以读到著名的词:
QT是什么软件啊?
就是一种图形界面的开发软件,基于c++的,呵呵呵
当然,更直接点说,就是一个开发库,呵呵呵
下载地址:
可以下载里边的带sdk的文件,它是做好的开发包,呵呵
它是支持各种平台的,呵呵呵
当然,如果你应用在不同的平台只需用不同的编译工具编译一下就可以了,呵呵呵
Qt Creator快速入门的目录
基本应用篇
第1章Qt Creator简介2
1.1 Qt Creator的下载与安装2
1.1.1下载软件2
1.1.2安装软件3
1.2 Qt Creator环境介绍3
1.2.1运行一个示例程序6
1.2.2帮助模式8
1.3 Qt工具简介9
1.3.1 Qt Assistant(Qt助手)9
1.3.2 Qt Designer(Qt设计师)10
1.3.3 Qt Examples and Demos(Qt演示程序与示例)10
1.3.4 Qt Linguist(Qt语言家)10
1.4 小结11
第2章Hello World12
2.1编写Hello World程序12
2.1.1新建Qt Gui应用12
2.1.2文件说明与界面设计14
2.2程序的运行与发布16
2.2.1程序的运行16
2.2.2程序的发布19
2.2.3设置应用程序图标20
2.3 helloworld程序源码与编译过程详解22
2.3.1纯代码编写程序与命令行编译22
2.3.2使用.ui文件27
2.3.3自定义C++类31
2.3.4使用Qt设计师界面类34
2.4项目模式和项目文件介绍34
2.4.1项目模式34
2.4.2项目文件35
2.4.3关于本书源码的使用36
2.5小结37
第3章 窗口部件38
3.1基础窗口部件QWidget39
3.1.1窗口、子部件以及窗口类型39
3.1.2窗口几何布局42
3.1.3程序调试42
3.2对话框QDialog45
3.2.1模态和非模态对话框46
3.2.2多窗口切换47
3.2.3标准对话框51
3.3其他窗口部件59
3.3.1 QFrame类族59
3.3.2按钮部件63
3.3.3行编辑器65
3.3.4数值设定框67
3.3.5滑块部件68
3.4小结69
第4章 布局管理70
4.1布局管理系统70
4.1.1布局管理器71
4.1.2设置部件大小74
4.1.3可扩展窗口77
4.1.4分裂器78
4.2设置伙伴78
4.3设置Tab键顺序79
4.4小结80
第5章 应用程序主窗口81
5.1主窗口框架81
5.1.1菜单栏和工具栏82
5.1.2中心部件86
5.1.3 Dock部件87
5.1.4状态栏88
5.1.5自定义菜单89
5.2富文本处理92
5.2.1富文本文档结构92
5.2.2文本块93
5.2.3表格、列表与图片97
5.2.4查找功能99
5.2.5语法高亮与HTML100
5.3拖放操作102
5.3.1使用拖放打开文件102
5.3.2自定义拖放操作103
5.4 打印文档107
5.5小结109
第6章 事件系统110
6.1 Qt中的事件110
6.1.1事件的处理111
6.1.2事件的传递111
6.2鼠标事件和滚轮事件115
6.3键盘事件117
6.4定时器事件与随机数120
6.5事件过滤器与事件的发送123
6.6小结125
第7章 Qt对象模型与容器类126
7.1对象模型126
7.1.1信号和槽127
7.1.2属性系统132
7.1.3对象树与拥有权135
7.1.4元对象系统137
7.2容器类138
7.2.1 Qt的容器类简介138
7.2.2遍历容器143
7.2.3通用算法150
7.2.4 QString152
7.2.5 QByteArray和QVariant157
7.3正则表达式159
7.3.1正则表达式简介160
7.3.2正则表达式组成元素162
7.3.3文本捕获165
7.4小结166
第8章 界面外观167
8.1 Qt风格167
8.1.1使用不同风格预览程序168
8.1.2使用不同风格运行程序168
8.1.3调色板169
8.2 Qt样式表170
8.2.1概述170
8.2.2 Qt样式表语法172
8.2.3自定义部件外观与换肤174
8.3特殊效果窗体178
8.3.1不规则窗体178
8.3.2透明窗体179
8.4小结181
第9章 国际化、帮助系统和Qt插件182
9.1国际化182
9.1.1使用Qt Linguist翻译应用程序183
9.1.2程序翻译中的相关问题188
9.2帮助系统191
9.2.1简单的帮助提示191
9.2.2定制Qt Assistant191
9.3创建Qt插件199
9.3.1在设计模式提升窗口部件199
9.3.2创建应用程序插件200
9.3.3创建Qt Designer自定义部件205
9.4小结206
第10章2D绘图208
10.1基本绘制和填充208
10.1.1基本图形的绘制和填充208
10.1.2渐变填充213
10.2坐标系统216
10.2.1抗锯齿渲染216
10.2.2坐标变换219
10.3其他绘制226
10.3.1绘制文字226
10.3.2绘制路径228
10.3.3绘制图像230
10.3.4复合模式236
10.4双缓冲绘图237
10.5绘图中的其他问题240
10.5.1重绘事件240
10.5.2剪切241
10.5.3读取和写入图像241
10.5.4播放gif动画241
10.5.5渲染SVG文件241
10.6小结242
第11章 图形视图、动画和状态机框架243
11.1图形视图框架的结构243
11.1.1场景244
11.1.2视图245
11.1.3图形项247
11.2图形视图框架的坐标系统和事件处理249
11.2.1坐标系统249
11.2.2事件处理与传播254
11.3图形视图框架的其他特性258
11.3.1图形效果258
11.3.2动画、碰撞检测和图形项组260
11.3.3打印和使用OpenGL进行渲染263
11.3.4窗口部件、布局和内嵌部件264
11.4动画框架266
11.4.1实现属性动画267
11.4.2使用缓和曲线268
11.4.3动画组268
11.4.4在图形视图框架中使用动画270
11.5状态机框架272
11.5.1创建状态机272
11.5.2在状态机中使用动画274
11.5.3状态机框架的其他特性275
11.6小结282
第12章3D绘图283
12.1使用OpenGL绘制图形283
12.2设置颜色286
12.3实现3D图形286
12.4使用纹理贴图288
12.5在3D场景中绘制2D图形290
12.6小结292
影音媒体篇
第13章Qt多媒体应用294
13.1使用QSound播放声音294
13.2使用QMovie播放动画296
13.3多媒体的底层控制299
13.4小结303
第14章Phonon多媒体框架304
14.1 Phonon多媒体框架的架构304
14.1.1 Phonon媒体图中的节点305
14.1.2播放后端306
14.2播放音频306
14.2.1实现简单的音频播放306
14.2.2创建音频流媒体图307
14.2.3使用音频效果307
14.3播放视频308
14.3.1实现简单的视频播放308
14.3.2创建播放视频的媒体图309
14.3.3控制视频播放309
14.4小结315
数据处理篇
第15章 文件、目录和输入/输出317
15.1文件和目录317
15.1.1输入/输出设备317
15.1.2文件操作318
15.1.3目录操作321
15.2文本流和数据流324
15.2.1使用文本流读/写文本文件324
15.2.2使用数据流读/写二进制数据325
15.3其他相关类328
15.3.1应用程序设置328
15.3.2统一资源定位符328
15.3.3 Qt资源329
15.3.4缓冲区329
15.4小结330
第16章 模型/视图编程331
16.1模型/视图架构331
16.1.1组成部分332
16.1.2简单的例子333
16.2模型类334
16.2.1基本概念334
16.2.2创建新的模型338
16.3视图类344
16.3.1基本概念344
16.3.2处理项目选择345
16.4委托类350
16.4.1基本概念350
16.4.2自定义委托351
16.5项目视图的便捷类353
16.5.1 QListWidget354
16.5.2 QTreeWidget355
16.5.3 QTableWidget356
16.5.4共同特性357
16.6在项目视图中启用拖放357
16.6.1在便捷类中启用拖放357
16.6.2在模型/视图类中启用拖放359
16.7其他内容362
16.7.1代理模型362
16.7.2数据—窗口映射器363
16.8小结365
第17章 数据库和XML366
17.1数据库366
17.1.1连接到数据库367
17.1.2执行SQL语句372
17.1.3使用SQL模型类376
17.2 XML384
17.2.1 DOM384
17.2.2 SAX394
17.2.3 XML流398
17.3小结402
网络通信篇
第18章 网络编程404
18.1 HTTP404
18.2 FTP408
18.3获取网络接口信息416
18.4 UDP419
18.5 TCP422
18.6小结436
第19章 进程和线程437
19.1进程437
19.1.1运行一个进程437
19.1.2进程间通信440
19.2线程444
19.2.1使用QThread启动线程444
19.2.2同步线程447
19.2.3可重入与线程安全450
19.2.4线程和QObject452
19.3小结454
第20章WebKit455
20.1 QtWebKit模块455
20.2基于QtWebKit的网页浏览器456
20.2.1显示一个网页456
20.2.2显示网站图标459
20.2.3显示历史记录461
20.2.4链接跳转和查找功能463
20.3小结464
参考文献465
如何在linux下安装QT源码包,安装后用图形形式编程
虽然网络上很多人使用 Redhat 或者Fedora 作为上位机操作系统,但是我觉得使用Ubuntu最为方便,因为需要的软件包大部分都可以通过 apt-get 方式来安装,而不必从源代码开始自己编译。
虽然网络上很多人使用 Redhat 或者Fedora 作为上位机操作系统,但是我觉得使用Ubuntu最为方便,因为需要的软件包大部分都可以通过 apt-get 方式来安装,而不必从源代码开始自己编译。要知道,自己编译源代码可不是一件轻松的事,因为在编译过程中经常会出现令人意外而且莫名其妙的错误。
我们使用的操作系统是 Ubuntu 8.04,使用目前最新版本的QT 4.4.0,安装起来即为简单,只要在命令编辑运行以下命令就行:
sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer
注意在这个版本的软件包中,qt4-dev-tools 包含了Qt Assistant及Qt Linguist等工具,因此不需要单独安装这两个工具。其它的,qt4-doc 是帮助文档,包含了Qt中各个类库的详细说明以及丰富的例子程序,可以使用Qt Assistant 工具来打开阅读。qt4-qtconfig 是配置Qt环境的一个对话框,一般默认就行了,很少有必要去更改。qt4-demos 包含很多可以运行起来的可执行文件以及源代码。qt4-designer是用来设计GUI界面的设计器。
为了连接MySQL数据库,需要安装连接MySQL的驱动程序:
sudo apt-get install libqt4-sql-mysql
比起在Windows下安装和配置Qt的MySQL驱动来说,简直太方便了。如果还需要其它的没有默认安装的Qt库,可以在命令行输入 sudo apt-get install libqt4- 然后按tab键自动补全,就会列出所有以libqt4- 开头的软件包,如下图所示:
这些都可以使用一个命令搞定,而不需要自己从源码开始编译。在记不准或不知道名字的情况下,使用tab键列出所有可选的软件包是一个很实用的小技巧。
在我的项目中,还需要画一些数据曲线和统计图表等,而第三方的QWT库提供了这些功能。同样,只需要一个命令即可完成安装:
sudo apt-get install libqwt5-qt4 libqwt5-qt4-dev
这时,打开Qt Designer,就会发现左边的Widget列表里面多了“Qwt Widget”这一组。
最后,关于集成开发环境我觉得QDevelop很不错,它跟Qt Designer结合的很好,而且有提示类成员函数的功能。运行以下命令安装:
sudo apt-get install qdevelop
这样,使用Qdevelop编写代码和编译、调试,使用Qt Designer设计界面,开发效率较高。
有没有用QT实现的绘图软件
corel draw这是功能十分全面而强大的软件,既有矢量的支持,又有对图像的美化功能,适量做logo、宣传画、印刷品制作等
painter这是模仿自然的绘画工具,有很多不错的自然画笔效果
photoshop这是全世界最强大的图像合成软件。相比illustrator来说,PS更强的是对已有素材的艺术再加工,可以制作出非常专业的美化效果。
如果是从头开始绘画一个作品,还是illustrator更强一些。
Auto CAD平面的工程图制作软件,建筑公司、机械制造等行业中最常用的软件了。是土木工程专业必须掌握的软件
3d max这主用用于3D建模,3D绘图用的,在工程制图中非常常用
In Design为了弥补PS在印刷排版等方面的不足,Adobe还推出了 In Design,适合做印刷品排版、报社编辑等工作
美图秀秀简单实用的美图工具,MM自拍、美照的神器。可以很简单的制作出很多好的效果。美图、拼图、抠图、去背景等等,一应俱全