一、enable
1介绍和要点
介绍:
“enable”相关的功能主要用于控制界面元素(如窗口、控件、菜单动作等)的交互状态。它的核心是
enabled属性,通过启用或禁用**来管理用户能否与这些元素进行交互。
要点:
父子控件的联动陷阱:当父控件被禁用(
setEnabled(false))时,所有子控件会自动全部禁用。但父控件重新启用时,不会自动恢复那些被单独调用过的子控件(需单独重新启用)。区分“禁用”与“隐藏”:
setEnabled(false)只是让控件变灰且不可交互,仍占据布局空间;如需完全隐藏且不占位,应使用setVisible(false)或hide()。
2.属性
3.代码
ui->pushButton1->setEnabled(false); ui->pushButton2->setEnabled(true);//默认为true二、geometry
1.介绍和要点
介绍:
"geometry"相关的功能主要用于控制界面元素(如窗口、控件等)的位置和尺寸。它的核心是一个包含
x(横坐标)、y(纵坐标)、width(宽度)和height(高度)的矩形区域,通过设置或获取这些值来管理元素在界面中的布局。
要点:
geometry与frameGeometry的区别:对于顶层窗口(如QMainWindow),geometry()返回的是不包含窗口边框和标题栏的客户区矩形;而frameGeometry()返回的是包含整个窗口框架的矩形。对于普通的子控件,两者没有区别。获取窗口几何信息的时机:在窗口的构造函数中调用
geometry()或frameGeometry(),得到的值可能是不准确的。这是因为窗口此时尚未完全创建和显示,其框架信息还未确定。应在show()事件之后获取,以确保值可靠。与布局管理器的冲突:如果父控件使用了布局管理器(如
QHBoxLayout),子控件的geometry属性可能会被布局管理器控制而无法手动设置。此时,手动调用setGeometry()可能无效。最小/最大尺寸的限制:通过
setGeometry()设置的尺寸会受到控件minimumSize和maximumSize属性的限制。如果设置的尺寸超出范围,控件会自动调整到允许的尺寸范围内。
2.属性
QRect了解
#include <QRect> QRect(int x, int y, int width, int height); // 功能: // 构造一个矩形,指定左上角坐标和宽度、高度 // 参数说明: // int x: // 左上角的 x 坐标 // int y: // 左上角的 y 坐标 // int width: // 矩形的宽度(若为负则自动调为0) // int height: // 矩形的高度(若为负则自动调为0) // 返回值: // 无(void)3.代码
//一号位向右和下移动10像素 int x1 = ui->pushButton1->geometry().x();//获取x的坐标 int y1 = ui->pushButton1->geometry().y();//获取y的坐标 ui->pushButton1->setGeometry(x1+10,y1+10,ui->pushButton1->width(),ui->pushButton1->height()); //二号位向左和上移动40像素 int x2 = ui->pushButton2->geometry().x();//获取x的坐标 int y2 = ui->pushButton2->geometry().y();//获取y的坐标 ui->pushButton2->setGeometry(x1-40,y1-40,ui->pushButton2->width(),ui->pushButton2->height());三、window frame
1.介绍
window frame 指的是window 自带的边框,这会导致有的窗口会带有该边框,而有的则不会;并且一定要等窗口加载出来,这个边框才会有高度和宽度。
2. 属性
四、windowTitle
1.介绍和要点
介绍:
"windowTitle"相关的功能主要用于设置顶层窗口标题栏中显示的文本。
要点:
仅作用于顶层窗口:该属性仅对设置了窗口标志(如
Qt::Window)的QWidget(包括QMainWindow、QDialog等)生效。普通子控件(如嵌入的QPushButton)设置此属性无效。
2. 属性
3.代码
setWindowTitle("高分少女");五、windowIcon
1.介绍和要点
"windowIcon"相关的功能主要用于设置顶层窗口标题栏、任务栏以及任务切换器中显示的图标。
2.属性
QIcon了解
#include <QIcon> QIcon(const QString &fileName); // 功能: // 从指定的图像文件加载图标,支持多种格式(PNG、JPEG、BMP等) // 若文件不存在或格式无效,则创建一个空图标 // 参数说明: // const QString &fileName: // 图像文件的路径(可以是资源文件或本地文件)qrc了解
路径无关性:无论是绝对路径还是相对路径,都无法保证客户端有同样的文件结构,而qrc机制将资源编译进可执行文件,彻底解决路径依赖问题
内存加载:qrc将资源转换为C++代码(二进制数据),程序运行时直接从内存加载,无需读取外部文件
3.代码
setWindowIcon(QIcon(":/ege.png"));六、windowOpacity
1.介绍和要点
介绍:
"windowOpacity"相关的功能主要用于控制顶层窗口的整体透明度。
要点:
仅顶层窗口生效:该属性仅对设置了窗口标志(如
Qt::Window)的QWidget生效。普通子控件设置无效。整体透明度:设置的值会影响整个窗口,包括其所有子控件。
增量趋近0.1:每次调整透明度时,增加或减少的值趋近于0.1,而非精确等于0.1
浮点数精度问题:由于计算机浮点数表示的局限性,会出现精度不准确的情况,例如0.1 + 0.2 ≠ 0.3
2.属性
3.代码
setWindowOpacity(0.5); setWindowOpacity(1);七、cursor
1.介绍和要点
介绍:
"cursor"相关的功能主要用于控制鼠标悬停在界面元素(如窗口、控件)上时的光标外观。
要点:
- 继承与取消逻辑:子控件默认继承父控件的光标。
2.属性
QCursor了解
#include <QCursor> QCursor(Qt::CursorShape shape); // 功能: // 构造一个光标对象,使用预定义的光标形状 // 参数说明: // Qt::CursorShape shape: // 光标形状枚举值,常用值包括: // - Qt::ArrowCursor:标准箭头 // - Qt::IBeamCursor:文本输入(I形) // - Qt::WaitCursor:等待(沙漏或旋转) // - Qt::CrossCursor:十字准星 // - Qt::PointingHandCursor:手形(链接) // - Qt::ClosedHandCursor:闭合手形 // - Qt::ForbiddenCursor:禁止标志 // - Qt::SizeAllCursor:四向箭头 // 返回值: // 无(void)3.代码
ui->pushButton->setCursor(QCursor(Qt::CrossCursor));//十字准星八、font
1.介绍和要点
介绍:
"font"相关的功能主要用于控制界面元素(如窗口、标签、按钮等)中显示文本的字体样式。
要点:
- 继承特性:子控件默认继承父控件的字体设置。
2.属性
QFont的属性
3.代码
QFont font; font.setFamily("楷体");//字体 font.setPointSize(10);//大小 font.setItalic(true);//是否斜体 font.setUnderline(true);//是否有下划线 ui->pushButton->setFont(font);![]()
九、focusPolicy
1.介绍和要点
介绍:
"focusPolicy"相关的功能主要用于控制界面元素(如窗口、控件)如何通过键盘(Tab键)或鼠标点击来获得输入焦点。
要点:所谓“焦点”,指的是当前被激活、可接收用户输入的界面元素。
一旦某个控件获得焦点,后续的键盘操作(如输入、方向键、回车等)都会直接作用于该控件。
常见支持焦点的控件包括:输入框(QLineEdit)、单选框(QRadioButton)、复选框(QCheckBox)、按钮(QPushButton)等。
2.属性
Qt::FocusPolicy类型
重点:NoFocus是拒绝接受焦点,不是拒绝接受键盘焦点。
3.代码
ui->lineEdit->setFocusPolicy(Qt::ClickFocus);//拒绝接受键盘焦点 ui->lineEdit_2->setFocusPolicy(Qt::StrongFocus);//默认是键盘鼠标焦点 ui->lineEdit_3->setFocusPolicy(Qt::StrongFocus);//默认是键盘鼠标焦点十、styleSheet
1.介绍和要点
介绍:
"styleSheet"相关的功能主要用于通过CSS(层叠样式表)语法自定义界面元素(如窗口、控件)的外观样式。
要点:
- 作用范围与继承:样式表具有继承性,
- 采取键值对的方式:键和值采用:分隔,键值对采用;分隔。