QT常用属性篇(2)
2026/6/30 13:55:01 网站建设 项目流程

一、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(高度)的矩形区域,通过设置或获取这些值来管理元素在界面中的布局。

要点:

  • geometryframeGeometry的区别:对于顶层窗口(如QMainWindow),geometry()返回的是不包含窗口边框和标题栏的客户区矩形;而frameGeometry()返回的是包含整个窗口框架的矩形。对于普通的子控件,两者没有区别。

  • 获取窗口几何信息的时机:在窗口的构造函数中调用geometry()frameGeometry(),得到的值可能是不准确的。这是因为窗口此时尚未完全创建和显示,其框架信息还未确定。应在show()事件之后获取,以确保值可靠。

  • 与布局管理器的冲突:如果父控件使用了布局管理器(如QHBoxLayout),子控件的geometry属性可能会被布局管理器控制而无法手动设置。此时,手动调用setGeometry()可能无效。

  • 最小/最大尺寸的限制:通过setGeometry()设置的尺寸会受到控件minimumSizemaximumSize属性的限制。如果设置的尺寸超出范围,控件会自动调整到允许的尺寸范围内。

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(包括QMainWindowQDialog等)生效。普通子控件(如嵌入的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(层叠样式表)语法自定义界面元素(如窗口、控件)的外观样式

要点:

  • 作用范围与继承:样式表具有继承性
  • 采取键值对的方式:键和值采用:分隔,键值对采用;分隔。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询