原创 QT4
qt4源码编译
qt4源码编译(原创版)目录1.QT4 简介2.QT4 源码编译步骤3.QT4 源码编译注意事项4.总结正文一、QT4 简介Qt 是一款跨平台的 C++图形用户界面应用程序框架,由挪威公司Trolltech 创立,后被诺基亚收购。
Qt 支持多种操作系统,如 Windows、Linux、Mac OS 等,它提供了大量的 GUI 元素,使得开发者可以轻松地创建具有图形用户界面的应用程序。
Qt4 是 Qt 的一个主要版本,它包括了 Qt3 的所有功能,并添加了许多新的特性。
二、QT4 源码编译步骤1.下载 QT4 源码:首先,你需要从 Qt 官方网站上下载 QT4 的源代码。
源代码是按照模块划分的,你可以根据自己的需要选择下载相应的模块。
2.解压源码:将下载的源码文件解压到一个目录下,如/usr/local/qt4。
3.配置编译环境:在解压后的目录下,找到.configure 文件,这是一个用于配置编译环境的脚本文件。
你可以根据自己的需求对配置选项进行修改,例如设置编译器、编译选项等。
4.编译源码:在配置好编译环境后,执行 make 命令开始编译源码。
编译完成后,你会在源码目录下看到许多编译生成的文件,如 lib、include 等目录。
5.安装 QT4:将编译生成的 lib 目录下的文件复制到系统的库目录下,将 include 目录下的文件复制到系统的头文件目录下。
然后,你需要设置环境变量,使系统能够找到这些库和头文件。
三、QT4 源码编译注意事项1.编译 QT4 需要安装相应的编译器和开发工具,如 GCC、GDB 等。
2.在编译过程中,可能会遇到一些编译错误,你需要根据错误信息,修改源码或者配置选项,直到编译成功。
3.如果你需要编译特定的模块,可以在.configure 文件中设置模块选项,或者在 make 命令中指定需要编译的模块。
四、总结QT4 源码编译是一个相对复杂的过程,需要对 C++编程和编译环境有一定的了解。
QT4程序开发说明
QT4程序开发说明刘永锋2010-06-13一.编译环境配置安装程序:在192.10.10.122/soft 下1.1. QT包安装安装QT包(目前使用版本为QT4.4.3、以后使用QT4.5.2,QT4.5.2及以上版本需要使用源码VC6编译),安装好需要修改配置:QTDIR:QT的安装路径。
如:QTDIR C:\Qt\4.4.3PATH修改:把原来Qt3的改成Qt4.4.2的cmd执行qmake –v 查看qmake 的版本,确保是QT4.4.21.2. VC配置修改Include修改:把原来的QT3的include 改成4.4.2 Lib修改:把原来的QT3的lib 改成4.4.21.3. QT Creater安装目前可以使用,环境是完整的,安装完毕后就可以编译。
直接安装便可以。
也可以使用目前最高的版本,需要qt4.6以上的版本。
缺少qt版本不可以用来编译。
但是建工程是可以的。
需要先安装QT,然后再安装mingw然后再安装。
安装QT Creater的目的是用来生成QT的UI和相应的文件。
二.可执行程开发2.1. VC工程2.1.1.新建工程2.1.2.工程环境设置General页面选择生成的文件输出设置:是中间文件生成的路径是生成的可执行文件路径Debug页面设置调试时可执行程序的路径调试时的输入参数设置C/C++页面外部宏定义设置本工程包含的文件路径Link页面连接的dll文件2.1.3.程序需要加的库说明2.2. QT UI界面新建qt工程:需要在qt creater 内新建选择使用工程Name 和Create in 可以设置生成的工程名字和路径生成的工程:2.3. 工程合并2.3.1.QT的界面程序合并到VC工程中需要QT工程中的文件:VC工程的结构:拷贝到VC工程下,相应的添加到VC工程下。
新建Form Files 和Generated等编译了mainwindow.ui 会生成一个ui_mainwindow.h文件添加ui_mainwindow.h 到Generated下等编译了mainwindow.h 会生成一个moc_mainwindow.h文件添加moc_mainwindow.h 到Generated下2.3.2.编译环境设置mainwindow.ui文件设置:mainwindow.h文件设置:QT 包含文件和连接库设置 增加宏:QT_LARGEFILE_SUPPORT,QT_THREAD_SUPPORT,QT_DLL,QT_GUI_LIB,QT _CORE_LIB增加include路径:增加lib路径:注:如需要QT3的支持,需要增加c:\Qt\4.4.3\lib\Qt3Supportd4.lib,和路径:c:\Qt\4.4.3\include\Qt3Support如果报错:fatal error C1010: unexpected end of file while looking for precompiled head如下设置:执行的程序带有console 如果只起界面不要console 设置如下:把/subsystem:console 改为:/subsystem:windows2.3.3.编译编译。
C++ GUI Qt4 编程(第二版) Chapter 3
这一章讲解如何使用Qt创建窗口。在本章的最 后部分,你将能够创建一个应用程序的完整用 户界面,包括菜单,工具栏,状态栏以及应用 程序所需的足够多的对话框
Spreadsheep应用程序
3.1子类化QMainWindow
Spreadsheet的应用程序主窗口和源代码 分别放在mainwindow.h和 mainwindow.cpp中 由于QDialog和QMainWindow都派生自 QWidget,所以第二续航中看到的许多创 建对话框的技术这里仍然适用
18. 19. 20. 21.
22. 23. 24. 25. 26. 27. 28. 29. 30.
selectSubMenu = editMenu->addMenu(tr("&Select")); selectSubMenu->addAction(selectRowAction); selectSubMenu->addAction(selectColumnAction); selectSubMenu->addAction(selectAllAction);
41. 42. 43. 44. 45. 46.
47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60.
Spreadsheet *spreadsheet; FindDialog *findDialog; QLabel *locationLabel; QLabel *formulaLabel; QStringList recentFiles; QString curFile;
private slots: void newFile(); void open(); bool save(); bool saveAs(); void find(); void goToCell(); void sort(); void about(); void openRecentFile(); void updateStatusBar(); void spreadsheetModified(); private: void createActions(); void createMenus(); void createContextMenu(); void createToolBars(); void createStatusBar(); void readSettings(); void writeSettings(); bool okToContinue(); bool loadFile(const QString &fileName); bool saveFile(const QString &fileName); void setCurrentFile(const QString &fileName); void updateRecentFileActions(); QString strippedName(const QString &fullFileName);
基于Qt4的网络视频播放器简介
基于Qt4的⽹络视频播放器简介基于Qt4的⽹络视频播放器简介⼀、l软件功能简介及⽤法该播放器可以在Windows、Linux和s3c2440开发板上播放各种格式的多媒体⽂件,以及流媒体⽹络视频⽂件。
不管在哪个平台下运⾏,源代码均不需要修改,只需在相应系统环境下重新编译即可。
如果要在x86(Windows和Linux)上运⾏,需要把⼯程⽬录下的widget_x86.ui复制⼀份,名为widget.ui,如果要在开发板上运⾏,则应把⼯程⽬录下的widget_s3c2440.ui同样复制⼀份,名字也为widget.ui,因为该⼯程默认是使⽤widget.ui⽂件进⾏编译的。
如果拷贝到其它机器上编译,可能会出现编译出错的情况,此时需要修改Qt⼯程Projects的“Build directory”的路径,再Rebuild 即可。
播放器在Windows下运⾏画⾯如下图:该播放器的⽤法与⼤多数视频播放器⼀样。
具备播放,暂停,停⽌,上⼀⾸,下⼀⾸,播放进度显⽰和调节,⾳量调节,播放速度设置等基本功能。
【速度设置】按钮⽤来设置播放的速度,正常速度值为0.0。
【时间跳转】按钮⽤来跳转置指定的时间进度。
另外,播放器右侧还有两个播放列表,分别是本地播放列表和⽹络播放列表,⽤来播放本地⽂件和流媒体http服务器上的⽂件。
【打开】按钮⽤来添加本地⽂件,【删除】按钮⽤来删除本地播放列表的⼀项。
⽹络播放列表项不可删除。
在播放的同时,会实时显⽰多媒体⽂件的总播放时间和当前播放的进度时间,播放百分⽐(%),以及当前电脑的时间。
同时播放器窗⼝标题会显⽰正在播放的⽂件名。
⼆、播放器的实现1.单机播放的实现:我控制mplayer播放视频是通过mplayer所谓的slave模式实现的。
如在终端下输⼊:mplayer '/home/linux/01.mp3' -quiet –slave,体验下效果。
现在来探讨⼀下slave模式:所谓的slave模式,就是mplayer在运⾏过程中能够接收⽤户的输⼊命令⾏,具体⽀持哪些命令⾏,能够通过mplayer -input cmdlist这条命令来得到,在Mplayer源码的slave.txt中也有对这些命令有详细的讲解。
Qt4 Designer 配合程序
转帖!转自用 Qt4 Designer 配合程序设计做个查找窗口界面。
创建一个目录,名为 myfindcd /root/learn/qt4mkdir myfindcd myfind打开 qt4 designer 点击菜单 Applications -> Programming -> Qt4 Designer 在 New Form 窗口里选择 Widget,如下图所示拖放以下几个控件放入 Form 里,如下图所示:从上至下,从左至右依次放的是:Label, Line Edit, Horizontal Spacer, Push Button, Push Button修改一下它们的属性把 Form 的 text 改为 Find Text,把它的 objectName 改为FormFindText 把label 的text 改为Text to find 把两个按钮的objectName 分别改为 pbnOK, pbnCancel,并把它们的 text 属性分别改为 OK,Cancel添加Layout 选中label 和lineEdit,选择菜单Form -> Lay Out Horizontally 选中 Horizontal Spacer 和那两个按钮,选择菜单 Form -> Lay Out Horizontally 然后什么都不选,右键点击窗体空白处,选择菜单 Lay out -> Lay Out Vertically 如下图所示保存窗体点 File -> Save Form,把它存到 myfind 目录里,命名为 myfinddialog.ui。
编写启动函数(main)打开 KDevelop,在 myfind 目录中新建文件 myfind.cpp,输入如下代码:#include <QApplication>#include <QDialog>#include "ui_myfinddialog.h"int main(int argc, char *argv[]){QApplication app(argc, argv);Ui_FormFindText ui;QDialog *dialog = new QDialog;ui.setupUi(dialog);dialog->show();return app.exec();}编译运行cd /root/learn/qt4/myfindqmake-qt4 -projectqmake-qt4make./myfind 会得到下面的窗口:加入几个事件下面实现这个功能:当文本框中有输入的时候才让 OK 按钮有效,默认认它无效。
QT4编程及移植详细教程
QT4编程及移植(系统移植之3)一、搭建Qt-creator环境QT开发工具被诺基亚收购后,由诺基亚对齐进行维护和技术支持。
目前诺基亚已经开发出一套界面整洁功能强大的QT IDE开发环境——QT-creator。
由于大多数人仍习惯Windows系统下的软件开发和设计,一下将以QT-creator Windows版本环境作为介绍(当然IDE也有Linux版本)。
1.1下载并安装QT-creator从网上下载qt-sdk-win-opensource-2010.02.1.exe文件,并在Windows下将其安装好。
1.2新建工程打开Qt Creator,点击File->new file or project,弹出以下窗口:点击Qt4 Gui Application->OK,弹出以下窗口:输入工程名、选择保存路径,点击Next,弹出以下窗口:这里是选择第三方库的支持,我们这个工程不需要这些,直接点击Next,弹出以下窗口:在Base class中选择QWidget,表示窗口部件以QWidget为基类,然后点击Next,弹出以下窗口:然后点击Finish完成工程创建,创建好的工程如下:双击打开main.cpp,编写代码如下:#include <QtGui/QApplication>#include <QHBoxLayout>#include <QSlider>#include <QSpinBox>#include "widget.h"int main(int argc, char *argv[]){QApplication a(argc, argv);//管理整个应用程序用到的资源QWidget *window = new QWidget;//创建一个QWidget,父窗口部件是QWidget window->setWindowTitle("Enter Your Age");//设置QWidget的标题QSpinBox *spinBox = new QSpinBox;//创建QSpinBoxQSlider *slider = new QSlider(Qt::Horizontal);//创建QSliderspinBox->setRange(0,130);slider->setRange(0,130);//以下两句关联信号和槽QObject::connect(spinBox,SIGNAL(valueChanged(int)),slider,SLOT(setValue(int)));//以下两句使同步显示QObject::connect(slider,SIGNAL(valueChanged(int)),spinBox,SLOT(setValue(int)));spinBox->setValue(35);//初始化//以下做布局处理QHBoxLayout *layout = new QHBoxLayout;//水平排列,从左到右layout->addWidget(spinBox);layout->addWidget(slider);window->setLayout(layout);//在窗口上安装布局管理器window->show();//让窗口显示return a.exec();//将应用程序的控制权传递给QT}点击Qt Creator左下角的运行按钮(即第一个绿色三角形):显示效果如下:到这里已经完成了一个QT工程。
qt4项目编译
qt4项目编译(中英文实用版)Title: Compiling a Qt4 Project任务标题:qt4项目编译Firstly, ensure that all the required libraries and tools are installed on your computer.This includes the Qt4 development libraries and the Qt Creator IDE.首先,确保您的计算机上安装了所有必需的库和工具。
这包括Qt4开发库和Qt Creator IDE。
ext, open the Qt Creator and create a new project.Choose the appropriate template for your project and provide a suitable name and location for the project files.接下来,打开Qt Creator并创建一个新项目。
为您的项目选择合适的模板,并为项目文件提供适当的名字和位置。
Once the project is created, open the source file that contains the main function.This is the entry point of the application and is where the program execution begins.项目创建完成后,打开包含main函数的源文件。
这是应用程序的入口点,也是程序执行开始的地方。
ow, you can start writing your e the Qt4 classes and functions to build the user interface and implement the desired functionality.Make sure to follow the best practices and coding standards.现在,您可以开始编写代码了。
QT4开发指南_创建一个基于应用程序的QT构件
2. 在 Name 域, 输入 TextFinder. 3. 在 Create in 域,工程文件的路径. 例如, C:\Qt\examples, 然后点
击 Next.Target Setup 对话框打开.
4. 选择 Qt 版本作为工程的构建目标, 然后点击 Next. Note: 如果你只安装了一个 Qt 版本,这个对话框会被跳过. Class Information 对话框打开.
5. 在 Class name 域,输入 TextFinder 作为类名. 6. 在 Base class 列表, 选择 QWidget 作为基类类型.
Note: Header file, Source file 和 Form file 域是根据类名 自动更新的. 7. 点击 Next. Project Management 对话框打开.
QTextStream in(&inputFile); QString line = in.readAll(); inputFile.close();
ui->textEdit->setPlainText(line); QTextCursor cursor = ui->textEdit->textCursor(); cursor.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor, 1); } 3. 为了使用类 QFile 和 QTextStream, 下面的#includes 到 txtfinder.cpp:
完成头文件
The textfinder.h file already has the necessary #includes, a constructor, a destructor, and the Ui object. You need to add a private function, loadTextFile(), to read and display the contents of the input text file in the QTextEdit.
QT4中文教程 经典教程
C++ GUI Programming with Qt 4C++ GUI Programming with Qt 4By Jasmin Blanchette, Mark Summerfield ...............................................Publisher: Prentice HallPub Date: June 21, 2006Print ISBN-10: 0-13-187249-4Print ISBN-13: 978-0-13-187249-3Pages: 560学习,使用Qt已经将近两年了,最开始的时候用Qt3,后来升级到Qt4.1,自认为对Qt的GUI编程部分还是很熟悉的。
遗憾的是Qt的参考书少之又少,一般就是看文档和C++ GUI Programming with Qt 3,这本书是免费提供的,让我对Qt,Trolltech公司有了更多的了解。
我这个人就是这样,学习什么都喜欢了解这个东东发展的历史,虽然对学习并没有太多帮助。
升级到Qt4以后,API有了很多变化,苦盼一本系统的参考书,很久,C++ GUI Programming with Qt 4才得以面世,终于盼到后却遗憾的发现这本没有提供免费的电子版,今天,一个偶然的机会,得到Yimin网友的帮助,得到一份电子版,真是很谢谢他,他的 blog/blog。
C++ GUI Programming with Qt 4就是这样一本参考书,从易到难,从最经典的hello Qt 开始,到构建复杂的程序。
我从现在开始阅读学习,同时也把部分心得写出来,发到这里,也希望对Qt的学习者们有所帮助。
这对我来说有点难度,懒人那,不过一定尽最大努力坚持写完我熟悉的部分。
加油!Qt 的创建者Haarard Nord(Trolltech公司的CEO)和Eirik Chambe-Eng(Trolltech公司的总裁)是一家瑞典公司的同事。
Qt4中文教程[完整版]
Qt 4.2 白皮书奇趣科技摘 要此白皮书介绍了 Qt C++ 框架。
Qt 采用“一写永逸”的方法支持开发跨平台的 GUI 应用程序。
使用单一源码树和简单的重编译方式,可以为 Windows 98 至 Windows XP、Mac OS X、Linux、Solaris、HP-UX 以及其他使用 X11 的 Unix 版本编写各种程序。
此外,还可以编译在嵌入式 Linux 平台中运行的 Qt 应用程序。
Qt 引入了一种名为“信号和槽”的独特对象间通信机制。
Qt 还为 2D 和 3D 图形、国际化、SQL、XML、单元测试提供了卓越的跨平台支持,并为特定应用程序提供了针对具体平台的扩展。
您可以使用 Qt Designer(Qt 设计者)(一种支持 IDE 集成的灵活用户界面构建器)构建器来可视化的建立 Qt 应用程序。
目录1. 简介 (6)1.1. 内容概要 (6)2. 窗体 (8)2.1. 内建窗体 (8)2.2. 定制窗体 (10)3. 信号和槽 (13)3.1. 信号和槽示例 (14)3.2. 元对象编译器 (15)4. GUI 应用程序 (16)4.1. 主窗口类 (17)4.1.1. 主窗口 (17)4.1.2. 菜单 (17)4.1.3. 工具栏 (18)4.1.4. 动作 (18)4.1.5. 停靠窗口 (19)4.1.6. 对话框 (19)4.1.7. 交互式帮助 (20)4.1.8. 多文档界面 (21)4.2. 设置 (22)4.3. 多线程 (22)4.4. 桌面集成 (23)5. Qt Designer (24)5.1. 使用 Qt Designer (24)5.2. Qt Assistant(Qt 助手) (24)5.3. GUI 应用程序示例 (26)5.4. 扩展 Qt Designer (30)6. 2D 和 3D 图形 (31)6.1. 绘图 (31)6.2. 图像 (32)6.3. 绘图设备和打印 (32)6.4. 可缩放的向量图形 (SVG) (33)6.5. 3D 图形 (34)6.6. 图形视图框架 (35)7. 项目视图 (37)7.1. 标准项目视图 (37)7.2. Qt 的模型/视图框架 (38)8. 文本处理 (39)8.1. 富文本编辑 (39)8.2. 富文本处理 (40)9. 数据库 (42)9.1. 执行 SQL 命令 (42)9.2. SQL 模型 (43)9.3. 数据敏感的控件 (44)10. 国际化 (46)10.1. 文本输入和显示 (47)10.2. 翻译程序 (47)10.3. Qt Linguist (49)11. 布局 (51)11.1. 内建布局管理器 (51)11.2. 嵌套式布局 (52)12. 样式和主题 (54)12.1. 内建样式 (54)12.2. 窗体的样式表 (55)12.3. 自定义样式 (55)13. 事件 (57)13.1. 事件的创建 (57)13.2. 事件的交付 (57)14. 输入/输出和网络 (59)14.1. 文件处理 (59)14.2. XML (60)14.3. 进程间通信 (62)14.4. 网络 (62)15. 集合类 (64)15.1. 容器 (64)15.2. 隐示共享 (65)16. 插件和动态库 (67)16.1. 插件 (67)16.2. 动态库 (67)17. 构建 Qt 应用程序 (69)17.1. Qt 的构建系统 (69)17.2.Qt 的资源系统 (71)17.3. 测试 Qt 应用程序 (71)18. Qt 的架构 (72)18.1. X11 (72)18.2. Microsoft Windows (73)18.3. Mac OS X (73)19. 特定平台的扩展和 Qt 解决方案 (75)19.1. ActiveX 的互操作性 (75)19.2. D-Bus 的互操作性 (77)19.3. Qt Solutions (77)1. 简介Qt是事实上的标准 C++ 框架,用于高性能的跨平台软件开发。
Qt4中文教程[完整版]
3
04 ................................................................................................................理处本文富 .2.8 93 ................................................................................................................辑编本文富 .1.8 93 .......................................................................................................................理处本文 .8 83 ..................................................................................................架框图视/型模的 tQ .2.7 73 ............................................................................................................图视目项准标 .1.7 73 .......................................................................................................................图视目项 .7 53 .........................
c++ gui qt4 编程 代码
C++ GUI编程是一种广泛应用的编程技术,它允许开发者创建具有图形用户界面的应用程序。
而Qt4是一种流行的C++ GUI编程框架,它为开发者提供了丰富的工具和库来简化GUI应用程序开发过程。
本文将详细介绍使用Qt4进行C++ GUI编程的技术和方法。
一、Qt4简介Qt4是一种跨评台的C++应用程序开发框架,它由Qt公司开发并于2009年发布。
Qt4提供了丰富的工具和库,使得开发者能够轻松地创建具有各种复杂功能和特性的GUI应用程序。
Qt4的主要特点包括:1. 跨评台性:Qt4支持跨多种操作系统和评台(如Windows、Linux、Mac等)运行,使得开发者能够编写一份代码,在多个评台上运行;2. 丰富的组件和工具:Qt4提供了丰富的组件和工具,如窗口部件、布局管理器、绘图引擎等,使得开发者能够快速构建功能丰富的GUI应用程序;3. 易用性:Qt4的API设计简洁、清晰,具有良好的可读性和易用性,使得开发者能够快速上手并提高开发效率。
二、Qt4 GUI编程基础在使用Qt4进行GUI编程之前,首先需要安装Qt4开发环境,并熟悉Qt4的基本概念和使用方法。
以下是Qt4 GUI编程的基础知识:1. 信号与槽机制:Qt4使用信号与槽机制来处理事件和消息传递,开发者可以通过连接信号与槽来实现组件之间的消息传递和交互;2. 布局管理器:Qt4提供了丰富的布局管理器,如水平布局、垂直布局、表格布局等,使得开发者能够灵活地设计和管理GUI界面;3. 绘图引擎:Qt4的绘图引擎提供了丰富的绘图功能,如绘制图形、文字、图像等,开发者可以利用绘图引擎创建各种自定义的图形界面;4. 窗口部件:Qt4提供了丰富的窗口部件,如按钮、文本框、标签、菜单等,开发者可以使用这些窗口部件来创建各种功能丰富的GUI界面;5. 事件处理:Qt4提供了丰富的事件处理机制,开发者可以通过重写事件处理函数来处理各种用户交互事件。
三、Qt4 GUI编程实例下面通过一个简单的实例来演示如何使用Qt4进行GUI编程。
QT4与嵌入式开发-02
第2章Qt模块与Qt功能类2.1 Qt常用模块Qt 4提供了一些模块,它们被分成了几个库的文件形式。
Qt常用模块及其功能描述如表2.1所示。
表2.1 Qt常用模块及其功能描述一些组件只有在商业协议下才能使用,商业协议包含了3种版本:Qt后台版本、Qt轻量桌面版本和Qt桌面版本。
用户可以编写商业方面的程序,但需要协议的支持,而开发免费开源的软件只需要遵守开源的协议即可。
2.2 Qt部件与组类说明组类就是拥有同一个功能的类的集合,它们或许从一个类当中继承下来,被使用在同样的功能上或者联合在一起来完成一定的任务。
组类大体可分成的以下类别,如表2.2所示。
第2章Qt模块与Qt功能类55║表2.2 组类类别2.3 基于图形模式部件类基于图形模式部件类提供了Qt QtCore的扩展,包含有很多的部件,如表2.3所示。
表2.3 基于图形模式部件类及其功能║56 Qt4图形设计与嵌入式开发2续表第2章Qt模块与Qt功能类57║续表║58 Qt4图形设计与嵌入式开发2续表第2章Qt模块与Qt功能类59║2.3.1 窗口与窗口相关部件1.窗口Qt 4.0版本的主窗口的操作比Qt 3.0版本更高效、更易于使用。
Qt当中与主窗口相关的类被重新设计用来满足不断增长的需要:一是满足顾客的多样化的需要,二是满足国际设计者的编程需要。
重新设计的目的是为了达到平台一致性,并且使管理框架更有效率。
主要的窗口类如下。
(1)QMainWindow:依然是图形程序建立的中心类,界面变得简单,并且许多功能被预先定义,更能符合大众化的需求。
(2)QDockWidget:提供了可分离的工具模式和帮助窗,它拥有自己的属性,可以被拖动、关闭等。
(3)QToolBar:提供了工具的使用,例如,下拉菜单、按钮等,并良好地把动作记录在工具上,为键盘提供了快捷键的使用。
以上是软件使用者最频繁接触的计算机中的部件。
2.窗口部件这些类是抽象窗口部件,它们自己通常是不可用的,但是它们提供了很多子类可以使用的功能。
Qt4插件开发(5)
Qt4插件开发(5)Qt 4 插件开发(5)作者: 豆子日期: 2012 年 08 月 07 日发表评论 (1) 查看评论Qt 插件系统所应当解决的最大的一个问题就是交互:包括主程序与插件的交互以及插件与主程序的交互。
另外还有一个情况是插件之间的交互,这种情况比较罕见——我们一般不会将插件依赖于其它插件之上(因为我们不能确定这个插件存不存在),除非是非常重大的插件才支持自己的插件,并且这种情况十分类似主程序与插件之间的交互,只要把支持插件的插件理解为主程序就好了。
主程序调用插件提供的函数主程序如果需要使用插件提供的函数——比如在 OrbitsWriter 中,不同的插件提供了针对不同博客系统的API 调用,主程序在向博客系统远程发表文章时,就必须调用插件对应的函数——这种情况就是最简单的情况:只需要将插件对象(QPluginManager::instance() 获得的对象)转换成接口,就可以调用响应的函数了。
前面我们的例子代码中,调用了插件对象的name() 函数,就属于这种情况。
插件调用主程序提供的对象由于我们使用 C++ 编程,函数一般作为对象的成员,因此,插件需要调用对象成员函数的话,只需要能够获得对象就可以了。
调用主程序对象同调用一般对象没有区别。
首先需要引用到对象的头文件,然后就可以调用。
这里需要注意的是,我们想要导出的对象必须使用 Q_DECL_EXPORT 宏进行修饰。
而这个宏要求必须是一个共享库。
也就是说,如果你的主程序有对象需要在插件中使用,那么,这些对象必须位于一个共享库中,不能在可执行文件中。
比如,我们希望提供一个类似日志的工具Logger,这个Logger 必须位于一个共享库中,并且使用 Q_DECL_EXPORT 宏修饰。
然后,我们需要生成可执行文件时,需要连接这个库。
主程序与插件之间信号槽连接鉴于 Qt 插件框架的限制(插件只能以纯 C++ 接口的形式提供,不允许将这个接口继承QObject),我们无法定义插件必须提供的信号槽。
qt4编程 pdf
qt4编程
Qt4是一个用于C++编程的跨平台应用程序框架。
以下是一些关于Qt4编程的基本信息:
1.安装Qt4:在开始Qt4编程之前,你需要安装Qt4开发环境。
可
以从Qt官方网站下载适用于你操作系统的Qt4版本,并按照安装指南进行安装。
2.Qt Creator:Qt Creator是Qt官方提供的集成开发环境(IDE),
用于创建和管理Qt项目。
安装完Qt4后,你可以使用Qt Creator 来开始你的Qt4编程。
3.基本概念:
●信号和槽机制:Qt4使用信号和槽机制实现对象之间的通信。
这
是Qt中一个强大的特性,用于处理事件和响应。
●窗口和部件:Qt4提供了丰富的窗口和部件(Widget),用于构
建图形用户界面(GUI)应用程序。
4.文档和示例:Qt4附带了详细的文档和示例代码,帮助你学习框
架的各个方面。
这些文档包括Qt的类参考和教程,可以作为学习和参考的重要资源。
5.Qt Designer:Qt Designer是一个可视化界面设计工具,可用于创
建Qt界面。
你可以使用它设计GUI,然后将设计好的界面集成到你的Qt项目中。
6.版本注意事项:Qt4已经相对较旧,现在Qt的最新版本是Qt6。
如果可能,考虑使用更新的版本以获得更多功能和性能优势。
qt4快速学习(四天学好Qt4)
四天学好Qt4///////////////////////////// 第一天////////////////////////////////////////////////////////////////////////////////////////////////// QT要学好Qt必须知道Qt的用途用图形界面的方式实现输入和输出。
学习方法主要目的:所有常用组件的输入和输出次要目的:学会常用组件界面的控制要求:(可根据资料)熟练习使用常用组件频繁使用的属性(成员)的设置方法要记忆一、第一个程序#include "qapplication.h"//#include <QApplication>#include "qwidget.h"int main(int argc,char **argv){QApplication app(argc,argv);QWidget *w=new QWidget;w->show();return app.exec();}1. QApplication用于管理图形界面的程序,管理一个程序的资源。
有两个主要函数1)构造函数QApplication(int &argc,char **argv);是把主函数的两个参数传给qt程序。
即把程序的控制权交给了qt2)static int exec();函数内有一个循环语句,用于不断的接收用户和系统的事件(信号、指令等)把接收到的事件传送适当的窗口.当循环接收到一个退出指令时,退出循环。
2. QWidget是所有窗口类的基类,用于实现窗口常用的成员变量(属性)1) autoFillBackground: bool 是否自动填充背景(了解)操作函数:bool autoFillBackground() const; //获取属性的值void setAutoFillBackground(bool enabled); //设置属性的值2) cursor:QCursor 窗口部件的鼠标外形(了解)操作函数:QCursor cursor() const; //获取属性void setCursor(const QCursor &cursor); //设置例:QCursor cursor;cursor.CursorShape(); //获取外形cursor.setShape(Qt::SizeBDiagCursor);w.setCursor(cursor);*3) enabled: bool 窗口部件是否可用(重点)操作函数: bool isEnabled() const; //获取属性值void setEnabled(bool enabled); //设置*4) focus: bool 窗口部件焦点操作函数:void setFocus(); //设置部件得到焦点(重点)void clearFocus(); //清除焦点*5) font: QFont 字体(重点)操作函数:const QFont &font() const; //获取字体void setFont(const QFont &font); //设置字体例:QFont font;font.underline();w->setFont(font);6) fullScreen: bool 是否全屏(了解)操作函数:bool isFullScreen(); //获取void setWindowState(Qt::WindowStates state); *7) geometry: QRect 相对于父窗口大小(重点)操作函数:const QRect &geometry(); //获取窗口大小void setGeometry(int x,int y,int w,int h);void setGeometry(QRect &rect);例:w->setGeometry(10,10,600,300);8) pos: QPoint 相对而言于父窗口的顶点坐标操作函数:QPoint pos(); //获取x,yvoid move(int x,int y); //设置void move(QPoint &pos);*9) visible: bool 是否可见(重点)操作函数:bool isVisible(); //获取void setVisible(bool visible); //设置10)windowIcon: QIcon 窗口图标操作函数:QIcon windowIcon();void setWindowIcon(QIcon &icon);11)windowIconText:QString 窗口图标显示文件QString windowIconText();void setWindowIconText(QString &str);12)windowTitle:QString 窗口标题QString windowTitle();void setWindowTitle(QString &str);常用的成员函数(函数或槽)* bool close(); //关闭窗口(槽)void hide(); //隐藏窗口(槽);void repaint();//重画窗口* void show(); //显示窗口* void showFullScreen(); //全屏显示(常用)void showMaximized(); //最大化显示void showMinimized(); //最小化显示void showNormal(); //正常显示void update(); //更新窗口//---------------------------------------------------------------------二、自定义窗口类?如果在一个窗口内显示按钮?如何处理?把按钮等内嵌到窗口内。
PyQt4精彩实例分析(语法高亮带书签)
PyQt4精彩实例分析(语法高亮带书签)PyQt4 精彩实例分析实例1 Hello Kitty!本实例实现一个"Hello Kitty!"例子,简单介绍Qt编程的基本流程,以及Qt程序的编绎运行方式,实例效果图如图所示。
这是一个简单的例子,整个对话框只有一个按钮,单击该按钮,对话框关闭,退出程序。
实现代码如下:第1行导入PyQt4.QtGui的所有类及模块,包括QApplication,所有Qt图形化应用程序都必须包含此文件,它包含了Qt图形化应用程序的各种资源,基本设置,控制流以及事件处理等。
第5行新创建了一个QApplication对象,每个Qt应用程序都必须有且只有一个QApplication对象,采用sys.argv作为参数,便于程序处理命令行参数。
第6行创建了一个QPushButton对象,并设置它的显示文本为“Hello Kitty!”,由于此处并没有指定按钮的父窗体,因此以自己作为主窗口。
第7行调用show()方法,显示此按钮。
控件被创建时,默认是不显示的,必须调用show()函数来显示它。
第8行的connect方法是Qt最重要的特征,即信号与槽的机制。
当按钮被按下则触发clicked 信号,与之相连的QApplication对象的槽quit()响应按钮单击信号,执行退出应用程序的操作。
关于信号与槽机制在本实例最后将进行详细的分析。
最后调用QApplication的exec_()方法,程序进入消息循环,等待可能输入进行响应。
Qt完成事件处理及显示的工作,并在应用程序退出时返回exec_()的值。
最后执行程序即可出现上图所示的对话框,一个简单的Hello Kitty!例子完成。
信号与槽机制作为Qt最重要的特性,提供了任意两个Qt对象之间的通信机制。
其中,信号会在某个特定情况或动作下被触发,槽是用于接收并处理信号的函数。
例如,要将一个窗口中的变化情况通知给另一个窗口,则一个窗口发送信号,另一个窗口的槽接收此信号并进行相应的操作,即可实现两个窗口之间的通信。
QT4 总体简介
一、Qt概述1、QT概述Qt是Trolltech公司的一个产品。
Qt是一个多平台的C++图形用户界面应用程序框架。
它提供给应用程序开发者建立图形用户界面应用程序所需的所有功能。
Qt是完全面向对象的,它很容易扩展,并且允许真正的组件编程。
自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。
Qt也是流行的Linux桌面环境KDE的基础。
(KDE是所有主要的Linux发行版的一个标准组件)Qt支持下述平台:MS/Windows - 95、98、NT 4.0、ME、和2000Unix/X11 - Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX和其它很多X11平台Macintosh - Mac OS XEmbedded - 有帧缓冲(frame buffer)支持的Linux平台。
2、Qt版本信息Qt被按不同的版本发行:Qt企业版和Qt专业版:提供给商业软件开发。
它们提供传统商业软件发行版并且提供免费升级和技术支持服务。
企业版比专业版多一些扩展模块。
Qt自由版:是Qt仅仅为了开发自由和开放源码软件提供的Unix/X11版本。
在Q公共许可证和GNU 通用公共许可证下,它是免费的。
Qt/嵌入式自由版:是Qt为了开发自由软件提供的嵌入式版本。
在GNU通用公共许可证下,它是免费的。
下表是关于Qt在Windows环境下各个版本的区别。
(Qt为Windows只提供了专业版和企业版,不过自由版本的Qt仍然可以在Windows环境下使用)Qt提供了一组范围相当广泛的C++类库,并包含了几种命令行和图形界面的工具,有效地使用这些工具可以加速开发过程。
Qt Designer:Qt设计器。
用来可视化地设计应用程序界面。
Qt Linguist:Qt语言学家。
用来翻译应用程序。
以此提供对多种语言的支持。
Qmake:使用此工具可以由简单的、与平台无关的工程文件来生成编译所需的Makefile。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
原创QT4.4.3支持jpeg,gif及触摸屏总结原创2009-02-26 14:05:30 阅读2059 评论4 字号:大中小以qt-embedded-linux-opensource-src-4.4.3.tar.gz为例一、编译tslib下载最新的开发版本,见http://tslib.berlios.de/·解压到/home下·生成configure 文件,配置、编译、安装#./autogen.sh#./configure --prefix=/home/mytslib/ --host=arm-linuxac_cv_func_malloc_0_nonnull=yes/**************************echo "ac_cv_func_malloc_0_nonnull=yes" >tslib/arm-linux.autogen #为了防止出现undefined reference to `rpl_malloc' 错误***************************/#make#make install-strip //生成瘦身应用程序和库二、编译qt源码1、将源码解压到/home下2、设置环境变量:指定qt源码的路径export QTDIR=/home/qt-embedded-linux-opensource-src-4.4.3 指定交叉编译工具export PATH=/usr/local/arm/3.4.1/bin:$PATH3、配置、编译、安装#./configure -xplatform qws/linux-arm-g++ -embedded arm -shared -little-endian -qt-kbd-usb -qt-mouse-tslib -qt-libpng -qt-libjpeg -qt-gif -depths 4,8,16,32 -confirm-license-prefix /home/qt-embedded-opensource-4.4.3/-I /home/mytslib/include -L /home/mytslib/lib#time gmake#time gmake install4、说明·-qt-libjpeg -qt-gif(会/home/qt-embedded-opensource-4.4.3/plugins/imageformats/ 下生成多个插件so库文件)·-qt-mouse-tslib:添加触摸屏,注意要将它的头文件和库指定好即-I/home/mytslib/include -L/home/mytslib/lib,如果不添加链接的头文件和库配置时会提示The tslib functionality test failed!You might need to add additional include and library search pathsby passing the -I and -Lswitches to ,in -xplatform qws/linux-arm-g++)三、向目标板上库文件和板子上的环境配置,注意目录的创建在板子上创建两个目录:qt4.4.3和tslib1、移植qt库:·将/home/qt-embedded-opensource-4.4.3/lib下的动态库都拷贝到板子上qt4.4.3/lib,注意链接;·将字体拷贝到板子上/home/qt-embedded-opensource-4.4.3/lib/fonts,注意:不需要将所有的字体都拷贝到板子上qt4.4.3/lib/fonts,用一个就行;·移植jpeg,gif的插件库,将/home/qt-embedded-opensource-4.4.3/plugins/imageformats中的文件拷贝到板子上qt4.4.3/plugins/imageformats;2、移植tslib库及测试程序·将/home/mytslib/lib/的动态库移植到板子上的tslib/lib,注意链接; ·将/home/mytslib/lib/ts的动态库移植到板子上的tslib/lib/ts·将/home/mytslib/bin/的测试文件ts_calibrate移植到板子上的tslib/bin·将/home/mytslib/etc/ts.conf移植到板子上的tslib/etc/3、设置目标板上的环境变量export QWS_DISPLAY='/dev/fb1'#export QWS_KEYBOARD='LIRC:/dev/lircd'export QWS_MOUSE_PROTO='TSLIB:/dev/input/event0'export QWS_SIZE='800x600'export TSLIB_CALIBFILE='/*/tslib/etc/pointercal'export TSLIB_CONFFILE='/*/tslib/etc/ts.conf'export TSLIB_CONSOLEDEVICE='none'export TSLIB_FBDEVICE='/dev/fb0'export TSLIB_PLUGINDIR='/*/tslib/lib/ts'export TSLIB_TSDEVICE='/dev/input/event0'ExportLD_LIBRARY_PATH=/*/qt4.4.3/plugins/imageformats/:/*/qt4.4.3/lib :$LD_LIBRARY_PATHexport QT_PLUGIN_PATH=/*/qt4.4.3/plugins/export QT_QWS_FONTDIR=/*/qt4.4.3/lib/fonts四、测试tslib$cd /*/tslib/bin$./ts_calibrate会在触摸屏上显示一个焦点,点击这一点,焦点会移动,继续点击,直到5个点都点完了为止,这就是五点测试,点击完后,会在/*/tslib/etc/下产生pointercal文件,此文件记录了,刚点击的五点的位置坐标注意:目标板的kernel中一定要添加了tslib驱动,不然会提示:selected device uses a differentversion of the event protocol than tslib was compiled for五、编写带有jpeg图片的应用程序1、将图片编译到应用程序里;编译出来的可执行文件太大,cpu 占用多。
a、创建应用程序例如:main.cpp#include <QApplication>#include <QLabel>#include <QPixmap>int main(int argc, char *argv[]){QApplication app(argc, argv);QLabel *label = new QLabel;label->setPixmap(QString::fromUtf8(":/images/test.jpg"));label->setGeometry(0,0,800,600);label->show();return app.exec();}b、创建资源文件*.qrc,应用程序同一目录下有一个images文件夹中有一张test.jpg图片<!DOCTYPE RCC><RCC version="1.0"><qresource><file>images/test.jpg</file></qresource></RCC>c、创建工程文件*.pro#qmake -project //生成工程文件修改工程文件*.pro ;添加QTPLUGIN += qjpeg和RESOURCES += tmp.qrcQTPLUGIN += qjpegTEMPLATE = appTARGET =DEPENDPATH += .INCLUDEPATH += .# InputSOURCES += main.cppRESOURCES += tmp.qrcd、编译#qmake#makee、将生成的可执行文件放到板子上运行,就会在触摸屏上显示2、图片在板子上,应用程序中指定图片的路径;编译出的可执行文件小,cpu占用率小;路径一定要指定对a、创建应用程序例如:main.cpp#include <QApplication>#include <QLabel>#include <QPixmap>int main(int argc, char *argv[]){QApplication app(argc, argv);QLabel *label = new QLabel;label->setPixmap(QString::fromUtf8("images/test.jpg"));label->setGeometry(0,0,800,600);label->show();return app.exec();}b、创建工程文件#qmake -project //生成工程文件修改工程文件*.pro ;添加QTPLUGIN += qjpegQTPLUGIN += qjpegTEMPLATE = appTARGET =DEPENDPATH += .INCLUDEPATH += .# InputSOURCES += main.cppc、编译#qmake#maked、运行将可执行文件拷到板子上;在可执行的文件的同一目录下创建images文件夹,并将test.jpeg放到该目录下;运行可执行文件,就会在触摸屏上显示。