QT学习笔记

一、QT安装
 
 1.sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer
 2.Sudo apt-get install qtcreator
 
 3.安装不了解决方法:方案一:sudo apt-get update
                      方案二:将qt4改为qt5
                      方案三:下载QT离线安装包:qt-creator-linux-x86-opensource-2.8.0.run
二、认识QT
    功 能:做图形开发
    命 名:
        Q - QT库中的类都是以Q开头的
         T - toolkit 工具箱
     学 习:
         关注工具如何使用,不要关注工具是如何实现的
     历 史:
         1991 奇趣公司
              QT 1.0 ~ 2.0 桌面软件
         2008 诺基亚公司
              QT 3.0 ~ 4.8 加入模拟器
         2012 Digia                     
              QT 5.0
     由于开发维护团队,市场目标等因素的不同,导至QT车呢供需在不同的版本环境下可能无法运行
     关键词:跨平台     C++     图形界面库
     
QT跨平台:
    程序运行在不同的操作系统下
    实 现:一处编码,到处编译
    
    java程序的跨平台:
        一处编译,处处运行
        必须安装不同平台的java虚拟机
java    运用程序 -> java虚拟机 -> 系统
qt        运用程序 -> 系统

三、GUI            API(系统接口:本质是函数)
    GUI:图形用户界面
    
C++        MFC 代表性质的图形库
        QT 嵌入式、手机APP
        
C#(C SHARP)        WP (手机)

java    Android    手机APP

oc/swift    IOS    手机APP、MFC桌面程序
        
        C/C++底层
    
四、QT的基础界面
    QMainWindow    - 主窗口
    特征:带菜单栏、工作栏、状态栏
    
    QWidget    - 组件窗口
    特征: 带有特定功能界面元素
    
    QDialog    - 对话窗口
    特点: 带有显示或输入界面元素以及按钮
    
QT Creator 介绍
    八种工作模式:
        欢迎 - 创建或打开项目、
        编辑 - 编辑代码
        设计 - 编辑界面
        帮助 - 帮助文档
    
    快捷按钮
        绿三角   编辑 + 运行
        绿三角 + 虫子   调试
        锤子     编译
编辑模式:
    项目栏   代码编辑区
             操作结果显示区
            
QT项目文件的组成结构
    .pro    项目文件
            描述项目文件和模块的组成
            
    可以通过.pro文件打开一个已存在的文件
    
    .ui    界面文件
        点击该文件进入界面设计模式
        
设计模式: 控件 - 界面元素
            界面设计区    对象和类
    控件栏
            信号处理区    属性面板
            
信号处理区: 处理组件信号的
    点击按钮,会产生一个点击信号
    
对象和类 : 编辑组件对象的名称
            并能够直到该组件的类型
            
属性面板 : 编辑属性组件值
            属性:大小/文本/颜色/样式
            
QT组件的分类与学习

Layout 布局组件:设置组件位置
spacers 建个组件:设置组件间距
buttons 按钮组件:各种按钮
input 输入组件:提供用户输入数据
display 输出组件:显示文本/图片等

QT  GUI项目开发的基本流程
    项目名称: SQQ (防QQ登录界面)
    1.设计界面
    2.信号与槽的处理
信号与槽
    信号:用户对控件的操作
        例如:点击、双击、右击等
    槽:专门用于信号处理的函数
    1.界面设计
    2.信号与槽的处理
        2-1 改变要编辑代码组件的对象名
        2-2
信号与槽的关联方式:
    (1)信号与槽编辑器
    (2)右击组件,点击“转到槽”菜单
    (3)connect()
    
(1)信号与槽编辑器运用于QT库中定义的信号和槽
举例:点击退出按钮,窗口关闭
    点击信号:clicked()
    关闭槽函数:close()
    
信号和槽关联的4个元素:
    信号发送者  信号类型
    信号接收者  处理信号的槽函数

(2)转到槽运用于用户自定义处理函数
举例:点击Login

错误调试:
(1)qDebug() <<"xxx";
    
    #include <QtGlobal>
    #include <QDebug>
    
(2)QMessageBox 消息框  

#include<QT>
ctr +TAB
sz开头是字符串

qDebug函数的头文件:#include<QtGlobal> #include<QDebug>
 QString szName = ui->userline->text();//定义一个QString类的对象szName  界面指针ui指向userline按钮用text()函数获得按钮上的文本并复制给szName
 
 Comb BOX类函数currentText()获得当前选中文本的文本内容
 
 
 
 QList<QAbstractButton *>    buttons () const
 
 返回一个容器
 
 QFile file("out.txt");
     if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
         return;

     QTextStream out(&file);
     out << "The magic number is: " << 49 << "\n";

Table View +数据模型 -> 显示数据
Table Widget(自动创建/包含数据模型)    
分离QString
将分离的道德数据放置到Model中

m_pmodel->setItem(i,0,list.at(0));//第i个学生第0
行第0列


MVC
    main.cpp

VIEW
student.cpp
    recordDLg.cpp
    queryDlg.cpp
    updateGlg.cpp
    
Ctroller    :垃圾过滤/功能实现
    Core.cpp

Model : 数据操作 : 容器 + 文件
    data.cpp QList / QFile
reject();

============================day04==============
1.事件的意义  
      用户对控件的操作
      
2.事件的本质
  在QT类库中以虚函数形式的存在
 
3.常用事件
  鼠标 按键 定时器
 
4.如何自定义处理用户的操作
  重写父类事件函数
 
5.了解事件的重要性
    QT很多动作都是通过事件处理的
    以关闭窗口为列:
        close()  ->  closeEvent() -> 底层模块 - 默认直接关闭窗口
    
6.QT类的构架
QOBject
    |
    ------QWidget
            |
            QLineEdit
            QAbractButton
                |
                QPushButton
                QReadButton
                    
可视化的事件定义
设置可显示中文字符(如果有中文乱码时可加以下代码):需要加在显示窗口之前,在主函数里加
头文件#include <QTextCodec>
    QTextCodec *codec = QTextCodec::codecForName("utf8");     //GB2312
    QTextCodec::setCodecForLocale(codec);
    QTextCodec::setCodecForCStrings(codec);
    QTextCodec::setCodecForTr(codec);
    
深入信号和槽机制

    static void QObject::connect();
    只有继承了QObject类才能使用信号与槽机制

    信号和槽的本质:成员函数
    
    信号函数的特点:
        1.只有声明没有实现
        2.可以带形参 ---用于数据传递  
        3.返回值必须是void
        4.信号的声明形式
            sigals:
                void xxx(int i)
        
        5.信号的发射:
            emit xxx(10);
        信号发射时带的数据会被对应(它关联的)的槽函数接收(也可以不接受)
                
    槽函数的特点:
        1.具备普通函数的性质
        2.可以当普通函数在其他函数中调用
        3.通过形参列表可以接收信号传递的数据
        4.槽函数的声明:
            访问权限 slots:
                        int slotfun( int );
                        
    connect()
        1.可以使用自定义的信号和槽
        2.信号和槽的关联关系
            1:1 1:n n:1
        3.信号可以转发
            connect(send,SINGAL(),
                    recv,SIGNAL());
        4.信号和槽的移除
            disconnect()
    信号和槽的使用注意事项;
        信号发送的数据
            槽可以接收也可以不接收,但不能多收!!!
            signal(int)  slotz(int,int)  //error
            singal(int)  slot(QString)  //error
            signal(int)  slot()  //ok
        使用原则:多发少收
================day05===========                
打地鼠游戏搭建实现流程:
打地鼠游戏实现流程:

time : 10~15 min

    1.添加图形框架类
    2.添加图片资源
    3.添加组件
    4.改变组件名称

time : 10min

    1.组建框架
    2.显示图员
    3.配置鼠标样式

time : 15min

    1.获得9个坑的位置
    2.设置定时器让地鼠每隔一段时间随机出现

time : 30min

    1.处理鼠标的击打动作
    2.击中地鼠的处理
        2-1.击中图片切换
        2-2.击中得分(信号转发)
    3.倒计时
    4.重新游戏
        5-1 3个定时器stop
        5-2 score = 0  time = 60
        5-3 3个定时器start
    5.退出游戏 - 给退出提示

---------------------------

游戏升级方案:

    关卡 与 分析设置
    Up Level = Level * 50 + 200;

    升级表现:地鼠出现的间隔时间减少
    time = 1200 - Level*100;

    Level = 10  游戏结束
    
    
    
 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值