【发布时间】:2021-11-16 09:25:04
【问题描述】:
我想使用一个可以选中的 QGroupBox,但是当 QGroupBox 复选框未选中时,我不会禁用 QGroupBox 的内容小部件。
checked : bool 该属性保存分组框是否被选中
如果组框是可选中的,它会显示一个复选框。如果 复选框被选中,组框的孩子被启用; 否则,孩子将被禁用并且用户无法访问。
默认情况下,选中的组框也会被选中。
我想在 QGroupBox 标题栏中有一个复选框,但我不希望应用上述功能。
复选框逻辑将是全选、全选,因此当未选中复选框时,用户可以修改内部 QGroupBox 复选框元素。
我想保留如下界面:
也许我必须使用带有 QPaintEvent 或 QSS 样式表的 QFrame,但我不是这方面的专家。
编辑:如果可能的话,我还希望 triState 用于 QGroupBox 复选框。
编辑 2: 我试试这段代码:
self.main_self.ui_visible_player_list_fields_window.groupBox.changeEvent(QtCore.QEvent.EnabledChange).connect(lambda event:event.ignore())
但它有错误。
self.main_self.ui_visible_player_list_fields_window.groupBox.changeEvent(QtCore.QEvent.EnabledChange).connect(lambda event:event.ignore())
TypeError: changeEvent(self, QEvent): argument 1 has unexpected type 'Type'
编辑:我认为下面的代码可以解决问题:
class Custom_QGroupBox(QtWidgets.QGroupBox):
def __init__(self, parent=None):
super(Custom_QGroupBox, self).__init__(parent)
def changeEvent(self, event):
if event.type() == QtCore.QEvent.EnabledChange:
self.blockSignals(True)
self.setEnabled(True)
event.ignore()
self.blockSignals(False)
else:
return super(Custom_QGroupBox, self).changeEvent(event)
但它没有:(
【问题讨论】:
标签: python pyqt5 qcheckbox qgroupbox