520也在敲代码的Qt学习笔记(一)
常用快捷键:
运行:ctrl+r
编译:ctrl+b
查找:ctrl+f
整行移动:ctrl+shift+方向键
帮助文档:F1
自动对齐:ctrl+i
同名.h和.cpp的切换:F4 第三种C:\Qt\Qt5.6.0\5.6\mingw49_ _32\bin(直接打开)
Qt的坐标系:以窗口左上角为0点,向右向下为正
新建一个Qt项目:main.cpp:
#include "mywidget.h" #include <QApplication>//包含一个应用程序类的头文件 //argc:命令行变量的数量,argv:命令行变量的数组 int main(int argc, char *argv[]) { // a:应用程序对象,在Qt中有且只有一个 QApplication a(argc, argv); //窗口对象,mywidget父类为->QWidget myWidget w; //窗口对象默认不会显示,必须调用show方法显示窗口 w.show(); return a.exec(); }
Qpushbutton:创建一个按钮,Qpushbutton的构造函数有四种重载
如果想要让button依附于当前的窗口widget中:(1)
myWidget::myWidget(QWidget *parent) : QWidget(parent) { qDebug()<<"my widget 的构造"<<endl; QPushButton *but = new QPushButton; // but->show();//show默认顶层弹出控件 //让but对象依附于mywidget窗口中 but->setParent(this);//this是当前对象的指针 }
(2)
QPushButton * but2 = new QPushButton("button",this);
对按钮的各种操作:
//重置窗口大小: resize(400,200); //移动按钮 but2->move(100,100); //设置窗口标题: setWindowTitle("project"); //设置窗口固定大小: setFixedSize(600,400); //按钮重新指定大小: but2->resize(50,50); //显示文本 but->setText("project1");
上述创建了一个Qpushbutton对象,有new就要有delete
但是在Qt中有对象树的概念使得清理十分方便:
Qt 引入对象树的概念,在一定程度上解决了内存问题。
l 当一个QObject对象在堆上创建的时候,Qt 会同时为其创建一个对象树。不过,对象树中对象的顺序是没有定义的。这意味着,销毁这些对象的顺序也是未定义的。
l

任何对象树中的 QObject对象 delete 的时候,如果这个对象有 parent,则自动将其从 parent 的children()列表中删除;如果有孩子,则自动 delete 每一个孩子。Qt 保证没有QObject会被 delete 两次,这是由析构顺序决定的。
学习的时候喜欢用Markdown做记录,存货已经堆满文件夹了

浙公网安备 33010602011771号