QT学习笔记2
- P6. QPushButton创建
- P7. 对象树
- P8. Qt中的坐标系
- (P6 QPushButton创建)
QPushButton Class:
Header: #include <QPushButton>
qmake: QT += widgets
1 #include "widget.h"
2 #include<QPushButton>
3 Widget::Widget(QWidget *parent)
4 : QWidget(parent)
5 {
6 //创建一个按钮
7 QPushButton * btn = new QPushButton;
8 //btn->show();//show以顶层方式弹出窗口控件
9 //我们的需求是让btn对象 依赖在Widget窗口中
10 btn->setParent(this);//this指的就是当前的Widget
11
12 //显示文本
13 //btn->setText("第一个按钮");//(这行视频中没问题,但是我的报错了)中文报错的可以看看是不是新建项目的时候选了msvc,换成mingw就可以了
14 btn->setText("中文中文中文");
15
16 //创建第二个按钮 (会按照控件的大小创建窗口)
17 QPushButton * btn2=new QPushButton("second",this);//这种方式是直接设置了按钮文字和父亲
18 //移动第二个按钮(否则会把第一个按钮在相同的位置覆盖)
19 btn2->move(200,0);//(第一个是横向距离,第二个是纵向距离)
20 //按钮重新设置大小
21 btn2->resize(100,50);
22
23 //重置窗口大小
24 resize(600,400);//传入宽和高
25 //固定窗口大小(用户不可拖拽窗口大小)
26 setFixedSize(600,400);
27
28 //设置窗口标题
29 setWindowTitle("First Window");
30 }
31
32 Widget::~Widget()
33 {
34 }
运行结果
setText设置中文编译不通过:msvc编译器的小朋友要在.pro文件中加编译选项设置msvc { QMAKE_CFLAGS += /utf-8 QMAKE_CXXFLAGS += /utf-8 } //直接在代码里添加;亲测有效
如果中文显示乱码:最上面一栏 工具->选项->文本编辑器->行为->(右侧)文件编码,默认编码->UTF-8
- (P7. 对象树)
当创建的对象在堆区的时候,如果指定的父亲是 QObject 派生下来的类或者 QObject 子类派生下来的类,可以不用管理释放的操作,会自动将对象放到对象树中。
对象树 一定程度上简化了内存回收机制。
- (P8. Qt中的坐标系)
坐标体系:以左上角为原点(0,0),X向右增加,Y向下增加。