【QT】QWidget 重要属性

不是笨小孩i 2024-10-09 13:35:01 阅读 50

文章目录

enabledgeometrywindowTitlewindowIconqrc 机制windowOpacitycursorfontQFont

toolTip 和 toolTipDurationfocusPolicyQt::FocusPolicy

styleSheet

enabled

作用:设置控件是否可使用. true 表⽰可用, false 表⽰禁用.

对应的API

<code>bool isEnabled(); // 获取到控件的可⽤状态.

void setEnabled(bool); // 设置控件是否可使⽤. true 表⽰可⽤, false 表⽰禁⽤.

// 所谓 "禁⽤" 指的是该控件不能接收任何⽤⼾的输⼊事件, 并且外观上往往是灰⾊的.

// 一个widget 被禁用,其子对象也会被禁用

geometry

作用:位置和尺寸. 其实是四个属性的统称

x 横坐标y 纵坐标width宽度height 高度

对应的API

const QRect &geometry() const;

// 获取到控件的位置和尺⼨. 返回结果是⼀个 QRect, 包含了 x, y, width, height. 其中 x, y 是左上⻆的坐标.

void setGeometry(int x, int y, int w, int h);

void setGeometry(const QRect &)

// 设置控件的位置和尺⼨. 可以直接设置⼀个 QRect, 也可以分四个属性单独设置.

window frame

如果 widget 作为⼀个窗口(带有标题栏, 最⼩化, 最⼤化, 关闭按钮), 那么在计算尺寸和坐标的时候就有两种算法. 包含 window frame 和 不包含 window frame.

其中 x(), y(), frameGeometry(), pos(), move() 都是按照包含 window frame 的⽅式来计算的 。

其中 geometry(), width(), height(), rect(), size() 则是按照不包含 window frame 的⽅式来计算的 。

windowTitle

作用:设置 widget 标题

API

QString windowTitle() const; // 获取到控件的窗⼝标题.

void setWindowTitle(const QString &); // 设置控件的窗⼝标题.

windowIcon

作用:设置 widget 图标

API

QIcon windowIcon() const; // 获取到控件的窗⼝图标. 返回 QIcon 对象.

void setWindowIcon(const QIcon &icon); // 设置控件的窗⼝图标.

qrc 机制

如果我们把图片⽂件放到构建目录中, 可能在不小心删除后就丢失了. 我们还是希望能够把图片和源代码放到⼀起, 并且使我们的程序无论拷贝到任何位置中都能正确使⽤图片.qrc 机制帮我们自动完成了上述工作, 更方便的来管理项目依赖的静态资源.

qrc ⽂件是⼀种XML格式的资源配置⽂件, 它⽤XML记录硬盘上的⽂件和对应的随意指定的资源名称. 应⽤程序通过资源名称来访问这些资源.

在Qt开发中, 可以通过将资源文件添加到项⽬中来⽅便地访问和管理这些资源. 这些资源⽂件可以位于qrc⽂件所在⽬录的同级或其录下. 在构建程序的过程中, Qt 会把资源⽂件的⼆进制数据转成 cpp 代码, 编译到 exe 中. 从而使依赖的资源变得 “路径无关”.

使⽤ : 作为开头, 表⽰从 qrc 中读取资源.

windowOpacity

作用 设置 widget 透明度

API

float windowOpacity() const;

//获取到控件的不透明数值. 返回 float, 取值为 0.0 -> 1.0 其中 0.0 表⽰全透明, 1.0 表⽰完全不透明.

void setWindowOpacity(float n); // 设置控件的不透明数值.

cursor

作用:⿏标悬停时显⽰的图标形状.

API

QCursor cursor() const; // 获取到当前 widget 的 cursor 属性, 返回 QCursor 对象.

void setCursor(const QCursor &); // 设置该 widget 光标的形状. 仅在⿏标停留在该 widget 上时⽣效.

QGuiApplication::setOverrideCursor(QCursor(Qt::WaitCursor));

// 设置全局光标的形状. 对整个程序中的所有 widget 都会⽣效. 覆盖上⾯的 setCursor 设置的内容.

font

作用:字体的相关属性。

API

const QFont &font() const; // 获取当前 widget 的字体信息. 返回 QFont 对象.

void setFont(const QFont &); // 设置当前 widget 的字体信息.

QFont

family 字体家族pointSize 字体大小weight 字体粗细 以数值⽅式表⽰粗细程度取值范围为 [0, 99], 数值越⼤, 越粗.bold 是否加粗. 设置为 true, 相当于 weight 为 75. 设置为 false 相当于 weight 为 50.italic 是否倾斜underline 是否带有下划线strikeOut 是否带有删除线

toolTip 和 toolTipDuration

toolTip 作用 :⿏标悬停在 widget 上会在状态栏中显示的提示信息.

toolTipDuring 作用:toolTip 显示的持续时间.

API

QString toolTip() const; // 获取当前提示的信息

void setToolTip(const QString &); // 设置 toolTip.

void setToolTipDuration(int msec);// 设置toolTip停留时间.

focusPolicy

设置控件获取到焦点的策略. 比如某个控件能否⽤⿏标选中或者能否通过 tab 键选中.

API

Qt::FocusPolicy focusPolicy() const; // 获取该 widget 的 focusPolicy, 返回 Qt::FocusPolicy

void setFocusPolicy(Qt::FocusPolicy policy); // 设置 widget 的 focusPolicy

Qt::FocusPolicy

枚举类型

Qt::NoFocus :控件不会接收键盘焦点Qt::TabFocus :控件可以通过Tab键接收焦点Qt::ClickFocus :控件在⿏标点击时接收焦点Qt::StrongFocus :控件可以通过Tab键和⿏标点击接收焦点 (默认值)Qt::WheelFocus : 类似于 Qt::StrongFocus , 同时控件也通过⿏标滚轮获取到焦点

styleSheet

作用:允许使⽤ CSS 来设置 widget 中的样式.

CSS 中可以设置的样式属性非常多. 基于这些属性 Qt 只能⽀持其中⼀部分, 称为 QSS (Qt Style Sheet) 。

API

QString styleSheet() const; // 获取当前的QSS样式

void setStyleSheet(const QString &styleSheet);设置当前的QSS样式



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。