观看视频:BV1g4411H78N
学习帖子:http://t.csdn.cn/zZhLU QT GUI编程
1 .Qt介绍,优点
跨平台的C++图形用户界面应用程序框架、UI、允许组件开发
几个中文的 Qt 学习资源平台
官方:http://qt.nokia.com/resources-cn
csdn : http://qt.csdn.net
Qt中文论坛 http://www.qtcn.org
Qt 官方中文网站 http://qt.nokia.com/title-cn
2 . 创建第一个Qt程序
2-1三种基类
(1)QMainWindow:
QMainWindow类提供一个带有菜单条,工具条和一个状态条的主应用程序窗口。主窗口通常提供一个大的中央窗口部件,以及周围菜单,工具条,和一个状态栏。QMainWindow窗口经常被继承,使得封装中央部件,菜单,工具条,状态栏等都变得很容易,当用户点击它的时候,相应的槽就会被调用。
(2)QWidget
QWidet类是所有用户界面对象的基类,窗口部件是用户界面的一个基本单元,它从窗口系统接收鼠标,键盘和其他消息,并在屏幕上绘制自己。一个窗口部件可以被他的父窗口或者是其他窗口挡住一部分。
(3)QDialog
QDialog类是对话框窗口的基类,对话框窗口主要用于短期任务和用户进行短期通讯的顶级窗口,QDialog可以是模态对话框或者是非模态对话框。QDialog支持扩展并带有返回值,他们可以带有默认值
https://doc.qt.io/qt-6/qdialog.html
点击此处跳转
2-2版本控制系统
svn vss git
2-3一些实用按钮
1简化树形结构
2分栏
2-3 默认给出的代码理解
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
2-4命名规范和快捷键
【命名规范】
类名首字母大写,单词和单词之间首字母大写
函数名变量名称首字母小写,单词和单词之间首字母大写
【 快捷键】
注释 ctrl + /
运行 ctrl + r
编译 ctrl + b
字体缩放 ctrl +鼠标滚轮
查找 ctrl + f
整行移动 ctrl + shift +↑或者↓
帮助文档 F1
自动对齐 ctrl + i
同名之间的.h和.cpp切换 F4
帮助文档:
第一种:方式F1; 第二种:左侧按钮 ;第三种:c:\qt\qt5.6.0\5.6\mingw49_32\bin
3 .按钮控件和API
3-1按钮控件常用API
#使用QPushButton创建按钮引入头文件#include
QPushButton * btn = new QPushButton
使用btn->show();的方式对按钮进行显示,则会以顶层方式弹出窗口控件;
如果想让btn对象依赖在myWidget窗口中,则需要在父类的构造函数中使用btn->setParent(this);。
在按钮上显示文本btn->setText(“button”);
在创建按钮时可以根据传入的参数不同调用不同的构造函数,
例如QPushButton *btn = new QPushButton(“button”, this);
该命令可以实现上述两行命令相同的效果。
其构造函数声明为QPushButton(const QString &text, QWidget *parent = nullptr)。
但是该方法存在一个问题,就是会按照控件的大小创建窗口。
#设置父亲setParent(this)
#设置文本 setText(“文字”)
#设置位置移动按钮位置 void move(const QPoint &);或void move(int x, int y),参数:宽高
#重新指定窗口大小void resize(int w, int h),也可以使用该命令改变按钮的大小
#设置窗口标题 setWindowTitle(const QString &)
#设置窗口固定大小setFixedSize(int w, int h)
4.对象树
一种机制,自动、有效的组织和管理继承自QObject的Qt对象。能够帮助程序员减轻内存泄露的压力。比如说当应用程序创建了一个具有父窗口部件的对象时,该对象将被加入父窗口部件的孩子列表。当应用程序销毁父窗口部件时,其下的孩子列表中的对象将被一一删除。这让我们在编程时,能够将主要精力放在系统的业务上,提高编程效率,同时也保证了系统的稳健性。
当创建的对象在堆区时候,如果指定的父亲是Qobject派生下来的类或者Qobject
子类派生下来的类,可以不用管理释放的操作,将对象会放入到对象树中。