Qt教程(004):按钮的创建
4.1 按钮的创建
【1】包含头文件,在widget.cpp
中添加头文件
#include <QPushButton>
【2】添加模块,在.pro
中添加(一般创建项目的时候已经生成)
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
【3】创建按钮
// 创建按钮
QPushButton *button = new QPushButton;
// 方式一:这种方式会重新打开一个窗口
// button->show();
// 方式二:设置按钮的父对象为窗口
button->setParent(this);
【4】效果
【5】按钮属性设置
- 显示文字
- 按钮位置
- 按钮大小
- 设置按钮背景色
- 按钮显示文本颜色
- 按钮边角
- 按钮显示字体大小
/**********设置按钮属性***********/
// 设置按钮显示文字
button->setText("我是按钮");
// 设置按钮位置
button->move(100, 100);
// 设置按钮大小
button->resize(100, 50);
button->setStyleSheet(
"QPushButton {"
"background-color: #000000;"
"color: white;"
"border-radius: 10px;"
"font-size: 16px;"
"}");
【6】显示效果
拓展:创建按钮的第二种方式
/*******创建按钮方式二*******/ QPushButton *button1 = new QPushButton("我是按钮2", this);
传递两个参数:
- 参数1:按钮的显示文本
- 参数2:设置的父对象
两种创建按钮的方式区别:
方式1:窗口是默认大小,按钮显示在左上角。
方式2:窗口是根据按钮的大小来创建的。
4.2 对象模型
在Qt中创建对象的时候会提供一个Parent对象指针,接下来解释这个parent
的作用:
- QObject是以对象树的形式组织起来的。
- 当你创建一个
QObject
对象时,会看到QObject
的构造函数接收一个QObject
指针作为参数,这个参数就是parent
,也就是父对象指针。 - 这相当于,在创建
QObject
对象时,可以提供一个其父对象,我们创建的这个QObject
对象会自动添加到其父对象的children()
列表。 - 当父对象析构的时候,这个列表中的所有对象也会被析构。
- 当你创建一个
QWidget
时能够在屏幕上显示的一切组件的父类。QWidget
继承自QObject
,因此也继承了这种对象树关系。一个孩子自动成为父组件的一个子组件。- 因此它会显示在父组件的坐标系统中,被父组件的边界剪裁。例如,当用户关闭一个对话框的时候,应用程序将其删除,那么,我们希望属于这个对话框的按钮、图表等应该被一起删除。
4.3 Qt窗口坐标体系
以左上角为原点(0,0)