34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
# coding: utf8
|
|
from PySide6 import QtWidgets, QtCore, QtGui
|
|
|
|
|
|
class GbxSetting(QtWidgets.QGroupBox):
|
|
|
|
def __init__(self, setting_info: dict, parent=None):
|
|
super().__init__(parent)
|
|
self.vly_m = QtWidgets.QVBoxLayout()
|
|
self.setLayout(self.vly_m)
|
|
self.setTitle(setting_info["display_name"])
|
|
self.setCheckable(True)
|
|
self.setChecked(setting_info["enabled"])
|
|
|
|
self.bgp_radios = QtWidgets.QButtonGroup(self)
|
|
self.bgp_radios.setExclusive(True)
|
|
|
|
for i, name in setting_info["values"].items():
|
|
value = int(i)
|
|
rbn_1 = QtWidgets.QRadioButton(name, self)
|
|
self.bgp_radios.addButton(rbn_1, id=value)
|
|
self.vly_m.addWidget(rbn_1)
|
|
if setting_info["default_value"] == value:
|
|
rbn_1.setChecked(True)
|
|
|
|
self.allow_recommend = setting_info["allow_recommend"]
|
|
if self.allow_recommend:
|
|
self.cbx_recommend = QtWidgets.QCheckBox("设置为推荐", self)
|
|
self.vly_m.addWidget(self.cbx_recommend)
|
|
self.cbx_recommend.setChecked(True)
|
|
self.cbx_recommend.setLayoutDirection(QtCore.Qt.LayoutDirection.RightToLeft)
|
|
|
|
self.name = setting_info["name"]
|