Yayin Story Studio logo Yayin Story Studio 项目文档
回到主页 用户手册

Visindigo::Widgets::MultiButtonGroup Class

class Visindigo::Widgets::MultiButtonGroup

管理多个MultiButton的状态,使它们表现得像一个单选按钮组. 详情...

头文件: #include <MultiButtonGroup>
自以下版本: Visindigo 0.13.0

公开成员函数

(自 Visindigo 0.13.0 引入) MultiButtonGroup(QObject *parent = nullptr)
(自 Visindigo 0.14.0 引入) virtual ~MultiButtonGroup()
(自 Visindigo 0.13.0 引入) void addButton(Visindigo::Widgets::MultiButton *button)
(自 Visindigo 0.14.0 引入) QList<Visindigo::Widgets::MultiButton *> getMultiButtons() const
(自 Visindigo 0.13.0 引入) Visindigo::Widgets::MultiButton *getSelectedButton() const
(自 Visindigo 0.13.0 引入) void removeAll()
(自 Visindigo 0.13.0 引入) void removeButton(Visindigo::Widgets::MultiButton *button)
(自 Visindigo 0.13.0 引入) qint32 selectButton(Visindigo::Widgets::MultiButton *button)
(自 Visindigo 0.13.0 引入) void selectButton(qint32 index)
(自 Visindigo 0.13.0 引入) qint32 selectNext()
(自 Visindigo 0.13.0 引入) qint32 selectPrevious()

信号

(自 Visindigo 0.13.0 引入) void clicked(Visindigo::Widgets::MultiButton *button)
(自 Visindigo 0.13.0 引入) void doubleClicked(Visindigo::Widgets::MultiButton *button)
(自 Visindigo 0.13.0 引入) void hover(Visindigo::Widgets::MultiButton *button)
(自 Visindigo 0.13.0 引入) void leave(Visindigo::Widgets::MultiButton *button)
(自 Visindigo 0.13.0 引入) void pressed(Visindigo::Widgets::MultiButton *button)
(自 Visindigo 0.13.0 引入) void released(Visindigo::Widgets::MultiButton *button)
(自 Visindigo 0.13.0 引入) void selectIndexChanged(quint32 index)

详细说明

这个类可以管理多个MultiButton的状态,使它们表现得像一个单选按钮组。 当一个按钮被点击时,其他按钮会自动恢复到未选中状态。可以通过信号槽机制响应用户的点击、悬停等操作。

一般来讲,如果将MultiButton加入该组,就不需要再从外部单独连接每个按钮的信号,你可以直接使用 MultiButtonGroup的完全等价的信号来响应用户的操作。

此外,这组虽然是QObject子类,但并不管理按钮的生命周期,也不负责布局,它只是一个状态管理器。

成员函数文档

[since Visindigo 0.13.0] MultiButtonGroup::MultiButtonGroup(QObject *parent = nullptr)

parent 父对象,可以不是QWidget

构造函数

这个function 从 Visindigo 0.13.0 开始支持。

[virtual noexcept, since Visindigo 0.14.0] MultiButtonGroup::~MultiButtonGroup()

析构函数

这个function 从 Visindigo 0.14.0 开始支持。

[since Visindigo 0.13.0] void MultiButtonGroup::addButton(Visindigo::Widgets::MultiButton *button)

button 要添加的按钮

添加一个按钮到组中。这个函数会连接按钮的相关信号到本类内置的槽函数,以便管理按钮的状态。 参数button表示要添加的按钮,如果button为nullptr或者已经在组内,则此函数不会执行任何操作。

这个function 从 Visindigo 0.13.0 开始支持。

[signal, since Visindigo 0.13.0] void MultiButtonGroup::clicked(Visindigo::Widgets::MultiButton *button)

button 被点击的按钮

当组内的某个按钮被"咔哒"时发出此信号。即在该按钮区域内按下且释放鼠标时发出此信号。 参数button表示被点击的按钮。

这个function 从 Visindigo 0.13.0 开始支持。

[signal, since Visindigo 0.13.0] void MultiButtonGroup::doubleClicked(Visindigo::Widgets::MultiButton *button)

button 被双击的按钮 当组内的某个按钮被双击时发出此信号。即在该按钮区域内连续两次按下鼠标时发出此信号。 参数button表示被双击的按钮。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.14.0] QList<Visindigo::Widgets::MultiButton *> MultiButtonGroup::getMultiButtons() const

return 组内的所有按钮。这个函数会返回一个包含组内所有按钮指针的列表。

这个function 从 Visindigo 0.14.0 开始支持。

[since Visindigo 0.13.0] Visindigo::Widgets::MultiButton *MultiButtonGroup::getSelectedButton() const

return 当前被选中的按钮。这个函数会返回当前被选中的按钮的指针,如果没有按钮被选中则返回nullptr。

这个function 从 Visindigo 0.13.0 开始支持。

[signal, since Visindigo 0.13.0] void MultiButtonGroup::hover(Visindigo::Widgets::MultiButton *button)

button 被悬停的按钮

当鼠标悬停在组内的某个按钮上时发出此信号。即当鼠标进入该按钮区域时发出此信号。 参数button表示被悬停的按钮。

这个function 从 Visindigo 0.13.0 开始支持。

[signal, since Visindigo 0.13.0] void MultiButtonGroup::leave(Visindigo::Widgets::MultiButton *button)

button 被离开的按钮

当鼠标离开组内的某个按钮时发出此信号。即当鼠标离开该按钮区域时发出此信号。 参数button表示被离开的按钮。

这个function 从 Visindigo 0.13.0 开始支持。

[signal, since Visindigo 0.13.0] void MultiButtonGroup::pressed(Visindigo::Widgets::MultiButton *button)

button 被按下的按钮

当组内的某个按钮被按下时发出此信号。即在该按钮区域内按下鼠标时发出此信号。 参数button表示被按下的按钮。

这个function 从 Visindigo 0.13.0 开始支持。

[signal, since Visindigo 0.13.0] void MultiButtonGroup::released(Visindigo::Widgets::MultiButton *button)

button 被释放的按钮

当组内的某个按钮被释放时发出此信号。即在该按钮区域内释放鼠标时发出此信号。 参数button表示被释放的按钮。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] void MultiButtonGroup::removeAll()

移除组内的所有按钮,并重置选中状态。这个函数不会删除按钮对象本身,只是将它们从组内移除。 如果你已经在外部丢失了这些按钮的指针,请用getMultiButtons()函数先获得它们,否则会造成内存泄漏。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] void MultiButtonGroup::removeButton(Visindigo::Widgets::MultiButton *button)

button 要移除的按钮

从组内移除一个按钮,并重置选中状态。这个函数不会删除按钮对象本身,只是将它从组内移除。 如果参数button为nullptr或者不在组内,则此函数不会执行任何操作。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] qint32 MultiButtonGroup::selectButton(Visindigo::Widgets::MultiButton *button)

button 要选择的按钮

选择指定的按钮。这个函数会将当前选中的按钮切换到参数button所指定的按钮,并发出相关信号。 如果参数button为nullptr或者不在组内,则此函数不会执行任何操作。返回值是当前被选中的按钮在组内的索引,如果没有按钮被选中则为-1。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] void MultiButtonGroup::selectButton(qint32 index)

index 要选择的按钮在组内的索引

选择指定索引的按钮。这个函数会将当前选中的按钮切换到组内索引为index的按钮,并发出相关信号。 如果参数index超出组内按钮的范围,则此函数不会执行任何操作。

从0.15.0开始,如果index为-1,则表示取消选中所有按钮,即没有按钮被选中。

这个function 从 Visindigo 0.13.0 开始支持。

[signal, since Visindigo 0.13.0] void MultiButtonGroup::selectIndexChanged(quint32 index)

index 当前被选中的按钮在组内的索引,如果没有按钮被选中则为-1。

当组内的选中按钮发生变化时发出此信号。即当用户点击某个按钮使其成为选中状态时发出此信号。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] qint32 MultiButtonGroup::selectNext()

选择下一个按钮。这个函数会将当前选中的按钮切换到组内的下一个按钮,并发出相关信号。 如果当前没有按钮被选中,则会选择第一个按钮。返回值是当前被选中的按钮在组内的索引,如果没有按钮被选中则为-1。

如果当前选中的按钮是最后一个按钮,则调用此函数会将选中状态切换到第一个按钮,实现循环选择的效果。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] qint32 MultiButtonGroup::selectPrevious()

选择上一个按钮。这个函数会将当前选中的按钮切换到组内的上一个按钮,并发出相关信号。 如果当前没有按钮被选中,则会选择最后一个按钮。返回值是当前被选中的按钮在组内的索引,如果没有按钮被选中则为-1。

如果当前选中的按钮是第一个按钮,则调用此函数会将选中状态切换到最后一个按钮,实现循环选择的效果。

这个function 从 Visindigo 0.13.0 开始支持。