QCheckBox类

QCheckBox小部件提供了一个带有文本标签的复选框。更多...

头文件 #include <QCheckBox>
CMakefind_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmakeQT += widgets
继承自 QAbstractButton

属性

公共函数

QCheckBox(QWidget *parent = nullptr)
QCheckBox(const QString &text, QWidget *parent = nullptr)
虚拟~QCheckBox()
Qt::CheckStatecheckState() const
boolisTristate() const
voidsetCheckState(Qt::CheckState state)
voidsetTristate(bool y = true)

重实现公共函数

虚拟minimumSizeHint() const override
虚拟sizeHint() const override

信号

(自6.7起) voidcheckStateChanged(Qt::CheckState state)

保护函数

虚拟initStyleOption(QStyleOptionButton *option) const

重实现保护函数

虚拟checkStateSet() override
虚拟event(QEvent *e) override
虚拟hitButton(const QPoint &pos) const override
虚拟mouseMoveEvent(QMouseEvent *e) override
虚拟nextCheckState() override
虚拟paintEvent(QPaintEvent *) override

详细描述

A QCheckBox 是一个可以切换开启(选中)或关闭(未选中)的选项按钮。复选框通常用于表示应用程序中的功能,可以在不影響他人情況下啟用或禁用。可以實現不同的操作行為。例如,可以使用 QButtonGroup 將單選按钮邏輯性地組合在一起,允許獨立選擇的复选框。但是,QButtonGroup 沒有任何視覺表示。

以下圖像进一步說明了獨立和非獨立复选框之間的差異。

每次复选框被勾選或清除時,它都會發出 checkStateChanged() 信號。如果您想每次复选框狀態變化時觸發操作,請連接到此信號。您可以使用 isChecked() 查詢复选框是否被勾選。

除了常用的勾選和未勾選狀態外,QCheckBox 選擇性提供一個第三種狀態來表示 "沒有變化"。當您需要給用戶選擇既不勾選也不取消勾選的選項時,這很有用。如果您需要這第三個狀態,可以使用 setTristate()啟用它,並使用 checkState()查詢當前的切換狀態。

QPushButton類似,複选框會顯示文字,並可选地顯示一個小圖標。圖標使用setIcon()設置。文字可以在構造函數中設置或使用setText()設置。可以指定一個快捷鍵,通过在您希望的字符前面加上&和&符号。例如

QCheckBox *checkbox = new QCheckBox("C&ase sensitive", this);

在這個例子中,快捷鍵是 Alt+A。詳見QShortcut 文档。如果您想顯示一個實際的&符号,請使用'&&'。

重要的繼承功能: text(),setText(),text(),pixmap(),setPixmap(),accel(),setAccel(),isToggleButton(),setDown(),isDown(),isOn(),checkState(),autoRepeat(),isExclusiveToggle(),group(),setAutoRepeat(),toggle(),pressed(),released(),clicked(),toggled(),checkState(),以及 checkStateChanged().

另请参阅 QAbstractButtonQRadioButton.

屬性文檔

tristate : bool

此屬性表示复选框是否是三態复选框

默認值為 false,即复选框只有兩種狀態。

訪問函數

boolisTristate() const
voidsetTristate(bool y = true)

成員函數文檔

[explicit] QCheckBox::QCheckBox(QWidget *parent = nullptr)

使用給定的parent構造一個沒有文字的复选框,但是沒有文字。

parent會傳遞給QAbstractButton構造函數。

[explicit] QCheckBox::QCheckBox(const QString &text, QWidget *parent = nullptr)

使用给定的父对象文本构造一个复选框。

parent會傳遞給QAbstractButton構造函數。

[virtual noexcept] QCheckBox::~QCheckBox()

析构函数。

Qt::CheckState QCheckBox::checkState() const

返回复选框的检查状态。如果您不需要三态支持,您还可以使用QAbstractButton::isChecked(),它返回一个布尔值。

另请参阅setCheckState()和Qt::CheckState

[signal, since 6.7] void QCheckBox::checkStateChanged(Qt::CheckState state)

当复选框的状态发生变化时,即用户检查或取消检查时,会发射此信号。

state包含复选框的新Qt::CheckState

此函数自Qt 6.7开始引入。

[override virtual protected] void QCheckBox::checkStateSet()

重新实现:QAbstractButton::checkStateSet

[override virtual protected] bool QCheckBox::event(QEvent *e)

重新实现:QAbstractButton::event(QEvent *e)。

[override virtual protected] bool QCheckBox::hitButton(const QPoint &pos) const

重新实现:QAbstractButton::hitButton(const QPoint &pos) const

[virtual protected] void QCheckBox::initStyleOption(QStyleOptionButton *option) const

使用此复选框QCheckBox的值初始化option。此方法对于需要QStyleOptionButton但不想自己填写所有信息的子类很有用。

另请参阅QStyleOption::initFrom()。

[override virtual] QSize QCheckBox::minimumSizeHint() const

重新实现了属性访问函数:QWidget::minimumSizeHint

[override virtual protected] void QCheckBox::mouseMoveEvent(QMouseEvent *e)

重新实现:QAbstractButton::mouseMoveEvent(QMouseEvent *e)。

[override virtual protected] void QCheckBox::nextCheckState()

重新实现:QAbstractButton::nextCheckState

[override virtual protected] void QCheckBox::paintEvent(QPaintEvent *)

重新实现:QAbstractButton::paintEvent(QPaintEvent *e)。

void QCheckBox::setCheckState(Qt::CheckState state)

将复选框的选中状态设置为state。如果您不需要三态支持,也可以使用QAbstractButton::setChecked(),它接受一个布尔值。

另请参阅checkState() 和 Qt::CheckState.

[重写虚函数] QSize QCheckBox::sizeHint() const

重新实现了属性访问函数:QWidget::sizeHint.

© 2024 The Qt Company Ltd. 本文件中包含的文档贡献权归其各自的拥有者所有。本文件提供的文档是根据Free Software Foundation发布的GNU Free Documentation License版本1.3的条款许可的。Qt及其相关标志是The Qt Company Ltd在芬兰和/或其他国家的商标。所有其他商标均为各自所有者的财产。