/*
达内学习 Qt01 day54 2013-11-16
*/
qt是用户图形框架(软件的半成品)
基于C++语言 gtk(基于C)
2005 年Qt4.0发布 2009年开源
1,qt开发工具
qmake
qmake -version 察看版本
qmake -project 会把qt成员的源代码组织成项目描述文件 ***.pro
qmake 把项目描述文件变成 makefile(文件依赖关系)
make 根据 makefile 生成目标文件
designer 设计器 一个所见即所得的图形编辑工具 **.ui
uic 把ui文件转换成.h文件
qtcreator 集成了所有开发命令的开发工具
2,qt头文件
对类型的说明 /usr/include/qt4
qt按照功能把头文件 进行了分模块
qtCure QtGui QtSql QtXml QtNetwork QtOpenGL
3,qt的库文件
是对头文件的实现
/usr/lib/i386/-linux-gnu
libQtGui.so
4,第一个Qt程序
1)使用C++写程序
2)qt的应用程序
QApplication
3)查文档
assistant 打开帮助文档
4)任何qt程序的都是一个工程需要有单独的文件夹
qmake -project
qmake
make
./执行
5 帮助文档
a,类所属的模块
QLabel<QLabel>
b,类的继承
大部分继承自QObject
c,类中的别的类型 类的属性
d,公开函数 构造函数 成员函数(继承来的)
e,信号 和 槽 函数
public slots: //槽函数
void show();
/* 信号函数 只需要声明 不需要实现 */
public :signals; //信号
void mySig();
f,保护函数 事件处理函数
g,静态函数
不需要对象就可以调用
h,类的详细说明
6,中文显示
QObject 中静态函数 tr
QObject::tr("中文字符串","编码方式");
GBK gb2312 utf-8
QTexCodec 类来设置编码
静态函数创建对象
QTextCodec * codecForName ( const char * name )
QTextCodec::codecForName("编码方式");
/* 设置编码对象 */
QTextCodec::setCodecForTr(指针);
或者直接使用QTextCodec对象函数 toUnicode("中文字符") 直接转换
7,如何退出程序
QPushButton 对象的行为 点击行为
QLabel 类型的对象的行为 关闭行为
QObject 中有一个可以关联两个毫不相关的对象的静态函数
bool connect(const QObject* sender,const char* signal,const QObject* reciver,const char* method)
sender 信号发送者指针
signal 要发射的信号(信号函数)
reciver 信号的接收者
method 处理信号的函数(一般是槽函数)
QPushButton 找一个信号函数代表点击按钮
void clicked(); SIGNAL(clicked()); 函数转换成char*
QLabel 找一个槽函数 代表关闭
void close(); SLOT(close());转换成char*
8,如何让组件在同一个界面显示
如果一个对象没有父类指针 则这个对象就成为一个独立的窗体
如果一个对象指定了父窗口指针 则这个对象就会停靠在父窗口上
父窗口类型必须是QWidget类型 或者 QWidget的字类型。
Qdialog QMainWindow
调整组件大小,resize(x,y); //x长度 y高度
调整组件位置,move(x,y) //左上角距离父对象左上角的位置
9, 带参的信号 和 槽
窗口部件 QWidget
滑块类 QSlider
微调框 QSpinbox
QSlider 能代滑动的信号函数
sliderMoved(int val);
QSpinBox 找一个槽函数 代表值改变
/* 槽函数完全可以作为一个成员函数 */
void setValue(int val);
如果信号和槽函数中,有参数并且没有参数的默认值,则在进行信号和槽链接时,必须在宏中指定参数的类型(不能有行参名)。
作业:
1,让微调框反向 影响滑块
2,做一个qq登陆框
3,实现加法器界面 实现关闭功能
4,写一个C++代码,使用proc++代码链接数据库
5,加密解密实现