QT第一天

qt的安装目录:
  QTDIR ------/opt/qt
  qt的工具:  
  $QTDIR/bin
  ${QTDIR}/bin 
  assistant  帮助文档 
  designer   设计师  设计器  用来设计用户图形界面的工具 
             这个界面后缀是ui
  moc   后台转换工具  可以转换信号 和槽 函数 
  qmake 可以把c++的代码文件 组织成pro文件 
        在pro文件的基础上 转换成makefile
  make  把makefile 生成目标
  qtconfig  qt相关的配置
  uic   可以把.ui件转换成.h文件
高度集成的开发工具-------qtcreator(IDE)
  /opt/qt-creator-1.3.0
  qt的头文件
    $QTDIR/include 
    头文件分不同的模块
    qtcore   qtgui    qtnetworke  qtsql  qtxml
    符合c++的标准 
    把.h去掉前面加c  这些头文件必须c的标准头
    这些头文件的名和类名完全相同


   qt的库:
   $QTDIR/lib
   对不同模块头文件的实现
   使用时  把libQt  和.以及后面的去掉
   库默认加载 core  和gui 


   环境变量:
       QTDIR  qt的安装目录
       PATH   工具指令相关的环境变量
       QMAKESPEC 可以根据系统的编译器 来生成不同的makefile
   QMAKESPEC=/opt/qt/mkspecs/win32-g++
   
   1.编码  cpp文件
    #include <QApplication>
    #include <QLabel>
    int main(int argc,char** argv){
        QApplication app(argc,argv);
        QLabel lab("hello qt");
        lab.show();
        return app.exec();
    }
   2.使用qmake  -project 生成pro项目描述文件
   3.使用qmake  把pro 文件转换成makefile
   4.make 生成目标程序(有错忽略)
   5.执行程序   
   
   #include <QApplication>
    #include <QLabel>
    int main(int argc,char** argv){
        QApplication app(argc,argv);
        QLabel lab("hello qt");
        lab.show();
        return app.exec();
    }
 
   没个类都有对应的头文件   对应的库中有想应的实现 
   QApplication是管理qt的应用程序
   QLabel  标签类 显示组件  默认是矩形
   组件默认不可见  需要调用相应函数
   exec 让程序进入事件循环   不然窗口立即退出


   qt  ----3
   sql ----3  3.5
   plsql---2
   proc ---2
   dms  ---4
   30 31
     
   帮助文档的显示问题:
   qtconfig  
   双击----Fonts-----family-->luxiserif  
   guoaj@tarena.com.cn
   
   代码中的乱码问题:
   标签   hello  qt  
          你好   qt


   1.QTextCodec  编码类
     帮助文档:
         继承关系
         公用的类型
         公开的函数 属性
         静态函数和属性
         保护的函数------供子类使用 
         槽函函数 public slots 
         信号函数 signals
   2.用这个编码类 的静态函数 得到一个编码对象
     静态函数可以不创建对象直接调用
     这里要一个编码对象 -----单例模式
     QTextCodec *coder=
           QTextCodec::codecForName("gbk");  
       
   3.通过这个类的静态函数去设置编码对象
     QTextCodec::setCodecForTr(coder);
   4.使用QObject类的静态tr函数 编码对应的字符串
     QLabel(QObject::tr("你好 qt","gbk"));






   函数调用:
    void  a(){
       b();
    }
   函数指针
    void  c();
    void  b();
    void  (*pa)(); 
    
    qsort();


    void  a(void  (*pa)()){
       pa();
    } 
    pa=b;
    a(pa);
    pb=c;
    a(pa);


    这两个函数如果不用函数指针 
    a函数和b c函数 就有直接的耦合关系
    如果使用函数指针a和b c没有直接的耦合
    高内聚  低耦合


    c++  的多态
    一个类 的调用怎么影响另一个类
    A.a();希望能影响到B类的a
    
    A* oa=new B();
    oa.a();
    c++的多态是可选
    B是A的子类  
    如果a方法是virtual 的会调用B的a函数
    如果a方法不是virtual 的会调用A的a函数  


    QT 中我希望调用一个类的函数时 调用到另一个类的函数
    信号 和槽 解决把两个毫无关系的对象关联起来
    查询QPushButton的文档找到相应的signal 函数
    clicked()
    我们希望 点击按钮影响QLabel对象
    查询QLabel的槽函数
    hide()
    close()
 
    QObject
    查询一个静态函数  可以关联两个对象
    QObject::connect(*sender,const char*,*reciver,const char *);
    
    如果参数是一级指针  定义的变量是一个普通对象 取地址即可
    如果参数是二级指针  定义变量是一个一级指针   取地址即可
    ....
    QObject::connect(btn,SIGNAL(clicked()),&lab,SLOT(hide()));
    


   如果一个组建没有父窗体  这个组件就是一个独立的组件


   QWidget  qwid;
   QPushButton("quit",&qwid);


   点击quit按钮  界面退出?


   用滑块 和微调框 改变值
   QSlider
   QSpinBox
   如果连接的信号和槽函数中有参数
   连接时要指明参数类型


   SLOT(abc(QString))




 
 


    


























     


















  
   










  
   
  
 
   
 




 






  
    
    


 













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值