08 Qt

08 Qt

**1、安装 **
Linx-32:
sudo apt-get install libgl1-mesa-dev
./…run
windows:
xxx.exe
请参考文档

2、简介
www.qt.io 首页
download.qt.io 下载页面

free:开源

Qt 是一个基于c++ 的跨平台应用程序 开发框架
跨平台:
    一次编写,到处编译

应用程序:
    application
    文件  目录  进程     线程   数据库 网络  串口  蓝牙 ...

开发框架:
    大多数基础设施都是现成的,可以拿来直接用
    Qt -> toolkits

3、第一个GUI程序(Graphic User Interface)
QtCreator IDE(集成开发环境)
qmake qt工程的管理工具

在windows环境下
    项目文件路径不可以有中文字符,会无法编译

工程创建完成后,会自动生成一个pro文件,用于管理(描述)整个工程,一般称为工程管理文件,
每个工程必须生成一个!
在pro文件中添加如下代码:
    QT += widgets #告诉QT系统,要用界面模块

main.cpp

#include <QApplication>  //应用程序管理类型
#include <QWidget>		//空白界面类

int main(int argc,char** argv)
{
    QApplication app(argc,argv);//创建应用程序管理对象,如接受命令行参数(app对象必须的有)

    QWidget w;	//创建空白界面对象,默认不显示
    w.show();	//让界面 显示出来

    app.exec();	//如,让应用程序进入时间循环(不退出),等待用户的各种吃啊哦做(如鼠标点击,键盘输入等)
    return 0;
}

4、自定义类
1.继承已有界面类
2.添加新元素
3.调整新元素的属性

5、调式打印

qDebug() 调试函数,有两种使用方式,可以像printf一样,也可以像cout一样使用,需要专门的头文件
例子:

#include<QDebug>
qDebug() << "hello";
qDebug("%d",12);

6.接班的界面元素
界面元素,指在界面上看得到的东西
在Qt中称为widget(小部件)
在windows中,一般称为 控件!
如界面、按钮、文本框 等

最基本的 且常用的有如下三个:
    标签: Qlabel
    文本框:QlineEdit
    按钮: QPushButton

7、父窗体与子控件
包含其他控件的控件,称为父窗体
被包含的控件,称为子控件

父窗体负责显示 它所有的子控件
父窗体还负责销毁他所有的子控件
设置一个控件的父窗体:
    1.可以在创建对象时直接指定
        btn = new QPushButton(this);
    3. 也可以在创建完成后再调用相应函数指定
        btn = new QPushButton;
        btn->setParent(this);

8、常用控件的常用属性
文本:text
访问函数
QString text();
setText(QString &text);

    也可以在创建对象时直接指定
        例子:
            btn = new QPushButton("Button");
    也可以创建完成后再调用相应的函数去设置
        例子:
            btn = new QPushButton;
            btn = setText("Button");

大小
    size()
    resize()
位置
    pos()
    move()
字体
     QFont font;
    font.setFamily("black");  //字体
    font.setPointSize(20);
    font.setBold(true);
    font.setItalic(true);
    this->setFont(font);
标题
    //标签对齐
    label_title->setAlignment(Qt::AlignCenter);
图标
固定大小
    this->setFixedSize(400,300);//set windows size
标签的对齐
文本框的密码模式
    edit_passwd = new QLineEdit(this);
    edit_passwd ->setEchoMode(QLineEdit::Password);
    
禁用与使能
    edit_passwd->setEnabled(false);
...

任务
1、 explicit :直接的
2、做交叉编译Qt源码

答 :
explicit:
用来修饰单参(指给一个参数就可以调用)的构造函数
用来防止编译器的隐式转换


1、常用快捷键
预览 alt + shift + r
对齐 ctrl + i
注释 ctrl + /
F1 在代码 中查看文档
F2 从使用点跳转到第一处,从定义处跳转到声明处
F4 从文件与源文件之间的跳转

2、信号与槽
信号与槽 是一种对象之间的一种通信机制。
信号是函数 :一种用于通知另外的对象
槽也是函数 :用于响应信号(收到信号执行某个功能)

每个Qt对象(QObject)都有内置(预定义)的(信号函数和槽函数)
所有的界面元素(控件)都是Qt对象

通信之前必须建立连接,连接方式:
    connect(对象1,信号,对象2,槽);
    连接好对象后,只要对象1的信号发出来,对象2立即调用这个准备好的槽函数。

预定的信号与槽
自定义槽函数:
    在头文件中声明:
    public/private/protected slots:     //声明多个槽函数    
        void 槽函数名称(参数);
        
    在源文件中定义:
        void 类名::槽函数名(参数)
        {
            //函数体
        }
    使用 : 
        1.直接调用\
        2.写在connect中,与某个信号相对应
  
  自定义信号:
    在头文件中声明:
        signals:
            void 信号函数名称(参数)
        直接使用,信号函数不需要自己定义
            emit 信号函数名(参数)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值