windows 版本
This commit is contained in:
58
gbx_extension.py
Normal file
58
gbx_extension.py
Normal file
@@ -0,0 +1,58 @@
|
||||
# coding: utf8
|
||||
from PySide6 import QtCore, QtWidgets
|
||||
|
||||
|
||||
class ExtensionModesListModel(QtCore.QAbstractListModel):
|
||||
|
||||
def __init__(self, modes_info: dict, parent=None):
|
||||
super().__init__(parent)
|
||||
self.modes = []
|
||||
self.display_modes = []
|
||||
for k, v in modes_info.items():
|
||||
self.modes.append(k)
|
||||
self.display_modes.append(v)
|
||||
|
||||
def rowCount(self, parent: QtCore.QModelIndex = ...):
|
||||
return len(self.modes)
|
||||
|
||||
def data(self, index: QtCore.QModelIndex, role: int = ...):
|
||||
row = index.row()
|
||||
|
||||
if role == QtCore.Qt.ItemDataRole.DisplayRole:
|
||||
return self.display_modes[row]
|
||||
if role == QtCore.Qt.ItemDataRole.UserRole:
|
||||
return self.modes[row]
|
||||
|
||||
|
||||
class GbxExtension(QtWidgets.QGroupBox):
|
||||
|
||||
def __init__(self, extension_info: dict, parent=None):
|
||||
super().__init__(parent)
|
||||
self.vly_m = QtWidgets.QVBoxLayout()
|
||||
self.setLayout(self.vly_m)
|
||||
self.setTitle(extension_info["name"])
|
||||
self.setCheckable(True)
|
||||
self.setChecked(extension_info["enabled"])
|
||||
|
||||
self.lb_desc = QtWidgets.QLabel(extension_info["description"], self)
|
||||
self.vly_m.addWidget(self.lb_desc)
|
||||
|
||||
self.lb_modes = QtWidgets.QLabel("安装模式:", self)
|
||||
self.cmbx_modes = QtWidgets.QComboBox(self)
|
||||
modes_model = ExtensionModesListModel(extension_info["modes"], self)
|
||||
self.cmbx_modes.setModel(modes_model)
|
||||
self.cmbx_modes.setCurrentIndex(modes_model.modes.index(extension_info["default_mode"]))
|
||||
self.lb_update_url = QtWidgets.QLabel("更新链接:", self)
|
||||
self.lne_update_url = QtWidgets.QLineEdit(extension_info["update_url"], self)
|
||||
|
||||
self.hly_modes = QtWidgets.QHBoxLayout()
|
||||
self.vly_m.addLayout(self.hly_modes)
|
||||
self.hly_modes.addWidget(self.lb_modes)
|
||||
self.hly_modes.addWidget(self.cmbx_modes)
|
||||
self.hly_modes.addStretch(1)
|
||||
self.hly_update_url = QtWidgets.QHBoxLayout()
|
||||
self.vly_m.addLayout(self.hly_update_url)
|
||||
self.hly_update_url.addWidget(self.lb_update_url)
|
||||
self.hly_update_url.addWidget(self.lne_update_url)
|
||||
|
||||
self.id = extension_info["id"]
|
||||
Reference in New Issue
Block a user