qt 编程基础
-----------------
一.qt简介
1.Qt是形用户界面(GUI)框架,一套基于c++语言的类库
2.Qt专注但是不局限于图形用户界面的开发,系统调用,网络编程,数据库编程,2D/3D图形处理
3.Qt是跨平台的应用编程框架
4.Qt堪称艺术级的图形开发工具,同时为最终用户和开发团队带来高品质的使用体验
二.Qt环境和工具链
1.QT助手$assistant
2.QT构建器
$qmake -version //看版本
$qmake -project //生成工程文件(.pro)
$qmake //生成构建脚本(Makefile) ->make
3.QT辅助编译器
1.moc -模型对象编译器,编译信号和槽代码
uic- 用户界面编译器,编译用户界面描述脚本 例如: uic Mydialog.ui -o Mydialog.h
rcc - 资源编译器,编译资源多媒体文件
4.QT设计师
所见即所得的方式来编辑.设计和修改图形用户界面.
产生用户界面描述脚本(.ui)
$designer
5.QT创建器
集成开发环境(IDE)集编辑,设计,编译,链接,调试诸功能于一身的开发环境
$qtcreator
6.头文件和库
1)/usr/include/qt4
2)/usr/lib/i386-linux-gnu/libQtxxx.so
三.第一个qt程序
四.使用中文
五.信号和槽
QLabel lab("点击按钮干掉我!");
QPushButton btn("close");
QPushButton btnQuit("Quit");
QObject::connect(
&btn,
SIGNAL(clicked(void)),
&lab,
SLOT(close(void)));
QObject::connect(
&btnQuit,
SIGNAL(clicked()),
&app,
SLOT(quit()));
lab.show();
六.容器窗口和事件同步
父窗口和子窗口 (子窗口在构造的时候把父窗口的指针给它作为参数就行了)
.如果把一个窗口作为某个容器窗口的子窗口,那么该窗口将被束缚在其父窗口的内部,并伴随父窗口一起移动,隐藏,显示和关闭,否则该窗口
将作为独立窗口显示在屏幕上,且游离于其他窗口之外
.只有QWidget及其子类的对象可以作为其他窗口的容器
.父窗口的析构函数负责销毁其所有的子窗口对象,因此即使子窗口对象是通过new运算符动态创建的,也无需因为没有显式地delete它们而担心内存泄漏的风险
.设置窗口的位置和大小
-void move(int x,int y);
-void resize(int w,int h);
QT中常见的容器窗口通常都可被用作应用程序的主框架
-主窗口,QMainWindow,通常由标题栏,菜单栏,工具条,状态栏以及中央客户区组成
-多文档,QMdiArea,管理多个多文档子窗口的中央部件
-对话框,QDialog,管理多个不同种类的交互式部件
例子:
#include<QTextCodec>
#include<QApplication>
#include<QMainWindow>
#include<QLabel>
#include<QPushButton>
int main(int argc,char * argv[]){
QApplication app(argc,argv);
QMainWindow wnd;
wnd.resize(210,150);
QLabel* lab = new QLabel(("i'am a son window!"),&wnd);
lab->move(30,20);
lab->resize(150,20);
QPushButton* btn = new QPushButton(("quit"),&wnd);
btn->move(54,60);
QObject::connect(
btn,
SIGNAL(clicked(void)),
&wnd,
SLOT(close(void))
);
wnd.show();
return app.exec();
}
滑块和微调框:
QSlider//滑块类
QSpinBox//微调框类