QT编程随笔

来源:互联网 发布:java数据结构和算法 编辑:程序博客网 时间:2024/06/15 02:18

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//微调框类

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

原创粉丝点击