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 信号函数名(参数)