QT的初步学习笔记
1、Qt是什么:图形用户界面程序框架
能做界面的还有什么:MFC、GTK+
2、Qt的由来和发展
3、为什么选择Qt
1、工具
是开发的必备:工具,在终端可以使用assistant开启。
b、构建器:负责把一个目录下的源码文件、头文件构建成一个Qt工程,并且自动生成Makefile文件。
c、Qt设计器:以画图的方式来进行设计界面,设计出的界面是没有功能的,如果需要完成相应的功能,还要与代码结合(界面文件可以转换成源码)。
d、Qt界面界面编译器:负责把以.ui结尾的界面文件,生成对应的代码。
e、Qt创造器:(Qt creator 集成开发环境:集合了编辑器、助手、构建器、设计器、编译器)
Qt框架的头文件存储在/usr/include/qt4,一般以Qt开头结尾无.h。
Qt框架中的共享库存在在/usr/lib/qt4/imports目录中,一般以libQt开头。
、编写源码
a、创建目录,每个Qt工程都要有一个单独的目录
b、编写入口
// 创建应用程序对象
QApplication app(argc,argv);
// 创建标签对象,此控件专门用来显示文字。
QLabel lab("hello world");
// 显示标签,几乎所有的控件默认都是隐藏的。
lab.show();
// 把程序的运算交给Qt(监控事件、等待用户操作)
return app.exec();
、生成工程文件
qmake -project -> 目录名.pro
此文件可以被Qt创造器打开。
、生成Makefile文件
qmake -> Makefile
、编译
Qt程序在编译时语法检查非法严格,错误信息也很多。
2、头文件,注意使用此控件时要包含什么头文件,一般情况下是类名。
3、Properties:具有保护属性的成员变量。
4、Public Functions:具有公开属性的成员函数,部分功能函数可能在父类中,当需要的成员函数找不到时,可以去父类中再看看。
5、Reimplemented Public Functions:可以重写的成员函数。
6、Public Slots:具有公开属性的槽函数,首先它具有某些功能的成员,但它可以与信号绑定,不光可以被信号调用,也可以被直接调用。
7、Signals:它们是以函数形式存在的,但它们并不实现出来,可以用emit显示的触发。
8、Reimplemented Protected Functions:可以重写的具有保护属性的成员函数。
9、Detailed Description:类的使用注意事项。
10、其它:静态成员、静态成员函数、相关的宏。
中国大陆:GBK2312(windows下常用的字符编码,每个汉字2字节)。
港台地区:BIG5
UTF-2: 双字节统一字符集。
UTF-4: 四字节统一字符集。
UTF-8: 用一到四字节表示一个Unicode字符
UTF-16: 用二到四字节表示一个Unicode字符
UTF-32: 用四字节表示一个Unicode字符
内部编码:Qt应用程序中所有的控件默认使用的是UTF-16编码。
外部编码:操作系统所使用的编码(ubntu默认使用的是UTF-8编码)。
Qt4.8默认的是UTF-16编码,因此必须手动设置后才能正确显示中文。
Qt5.0之后默认的是UTF-8编码。
QTextCodec* code = QTextCodec::codecForName("ut f-8");
QTextCodec::setCodecForTr(code);
QTextCodec::setCodecForLocale(code);
QTextCodec::setCodecForCStrings(code);
注意:当出现灵异错误时,可以把Qt所有生成的文件删除,再重新构建工程。
槽: 是一种特殊的函数,如果不配合信号,可以当作普通函数使用。
connect(负责发送信号的对象指针
信号函数签名:SIGNAL(函数名及参数)
接收信号的对象指针:
槽函数的函数名签名:SLOT(函数名及参数)
)
2、自定义的类必须要继承QObject类
3、在类的开头必须要有宏:Q_OBJECT
4、定义信号时要加关键字,信号以函数形式存在,但不需要实现。
signals:
5、定义槽函数时要加public slots:关键字,可以显示调用,也可以与信号连接,由信号触发调用。
6、信号由关键字emit 触发,可以带参数也可以不带。
如果想让信号给槽发送数据,它们的参数格式必须一样。
组成窗口界面的小工具叫控件,QLabel,QTextEdit,QPushButton。
QMainwindow:主窗口容器,由标题栏、菜单栏、工具栏、状态栏组成。
用户名、密码使用,QLineEdit,setEchoMode
QT的初步学习笔记的更多相关文章
- (转)Qt Model/View 学习笔记 (七)——Delegate类
Qt Model/View 学习笔记 (七) Delegate 类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...
- (转)Qt Model/View 学习笔记 (五)——View 类
Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...
- Android NDK开发及OpenCV初步学习笔记
https://www.jianshu.com/p/c29bb20908da Android NDK开发及OpenCV初步学习笔记 Super_圣代 关注 2017.08.19 00:55* 字数 6 ...
- 工厂方法FactoryMethod 初步学习笔记
一,意图 定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使一个类的实例化延迟到其子类. 二,别名 虚构造器 Virtual Constructor 三,适用性 当一个类不知道它 ...
- A.Kaw矩阵代数初步学习笔记 10. Eigenvalues and Eigenvectors
“矩阵代数初步”(Introduction to MATRIX ALGEBRA)课程由Prof. A.K.Kaw(University of South Florida)设计并讲授. PDF格式学习笔 ...
- A.Kaw矩阵代数初步学习笔记 9. Adequacy of Solutions
“矩阵代数初步”(Introduction to MATRIX ALGEBRA)课程由Prof. A.K.Kaw(University of South Florida)设计并讲授. PDF格式学习笔 ...
- A.Kaw矩阵代数初步学习笔记 8. Gauss-Seidel Method
“矩阵代数初步”(Introduction to MATRIX ALGEBRA)课程由Prof. A.K.Kaw(University of South Florida)设计并讲授. PDF格式学习笔 ...
- A.Kaw矩阵代数初步学习笔记 7. LU Decomposition
“矩阵代数初步”(Introduction to MATRIX ALGEBRA)课程由Prof. A.K.Kaw(University of South Florida)设计并讲授. PDF格式学习笔 ...
- A.Kaw矩阵代数初步学习笔记 6. Gaussian Elimination
“矩阵代数初步”(Introduction to MATRIX ALGEBRA)课程由Prof. A.K.Kaw(University of South Florida)设计并讲授. PDF格式学习笔 ...
随机推荐
- WPF性能优化的一些建议
尽量多使用Canvas等简单的布局元素,少使用Grid或者StackPanel等复杂的,减小开销. 少用Margin Padding尤其避免嵌套使用. 在自定义控件,尽量不要在控件的ResourceD ...
- Tomcat学习总结(12)—— Tomcat集群配置
现目前基于javaWeb开发的应用系统已经比比皆是,尤其是电子商务网站,要想网站发展壮大,那么必然就得能够承受住庞大的网站访问量:大家知道如果服务器访问量过大,就会出现服应用务器崩溃的情况,这个时候怎 ...
- Tomcat学习总结(7)——Tomcat与Jetty比较
Jetty 基本架构 Jetty目前的是一个比较被看好的 Servlet 引擎,它的架构比较简单,也是一个可扩展性和非常灵活的应用服务器. 它有一个基本数据模型,这个数据模型就是 Handler(处理 ...
- Linux LAMP 配置
一.安装必要的软件 yum install -y update yum install pcre yum install openssl* yum -y install gcc gcc-c++ aut ...
- mysql LAST_INSERT_ID详解
http://blog.sina.com.cn/s/blog_5b5460eb0100nwvo.html LAST_INSERT_ID() LAST_INSERT_ID(expr) 自动返回最后一个I ...
- Navicat---使用SSH远程连接到MySql,报错80070007: SSH Tunnel: Server does not support diffie-hellman-group1-sha1 for keyexchange
尝试使用Navicat远程连接到我在阿里云服务器上的MySql,通过SSH. 但是报错: 80070007: SSH Tunnel: Server does not support diffie-he ...
- Spring基础(5): 构造函数注入无法处理循环依赖
public class Person{ public Leader leader; public Person(Leader l){ this.leader= l; } } public class ...
- jQuery在线引用地址(全)
转:https://www.cnblogs.com/lmyau/p/7736269.html 1.官网jquery压缩版引用地址: 3.1.1版本: <script src="http ...
- Oracle空表导出
执行: Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 执行该命令后产 ...
- oracle中scott/tiger、sys、SYSDBA、system都是什么用
scott 是个演示用户,是让你学习ORACLE用的 SYSDBA 不是用户,可以认为是个权限,超级权限详细点说吧 超级用户分两种 SYSDBA和SYSOPTSYSOPT 后面3 ...