def fairyInfoShow(self,fairyID): # 在界面中显示精灵信息 fairy = fairy_tab_console.get_fairy_info(fairyID) self.FairyFileNamelabel.setText(fairyID) self.FairyFolderNamelabel.setText(fairy.name+"\t"+fairy.fairySetXMLLocation) if(fairy.author is not None): self.FairyAuthorLabel.setText("作者: "+fairy.author) if(fairy.version is not None): self.FairyVersionLabel.setText("版本: "+fairy.version) if(fairy.license is not None): self.FairyLicenseLabel.setText("许可: "+fairy.license) if(fairy.fairyINFO is not None): self.FairyInfomationLabel.setText("信息: "+fairy.fairyINFO) # 状态内容 from model.TinyPNG import is_id_had_compressed #tinyPNG if(is_id_had_compressed(fairyID)): self.tinypng_buff_label.setIcon(fairy_tab_console.get_icon("buff_box")) self.tinypng_buff_label.setCheckable(False) else: self.tinypng_buff_label.setIcon(fairy_tab_console.get_icon("buff_box_black")) self.tinypng_buff_label.setCheckable(True) # 关于动画信息的内容 self.animation_register_combobox.clear() self.animation_logic_combobox.clear() self.animation_resource_combobox.clear() general_info = fairy_tab_console.get_general_animation_info(fairyID) if(general_info is not None): self.animation_register_combobox.addItem("一共 "+str(len(general_info.get("注册信息")))+" 条动画信息") for register_id in general_info.get("注册信息"): self.animation_register_combobox.addItem(register_id) self.animation_logic_combobox.addItem("一共 "+str(len(general_info.get("逻辑信息")))+" 条逻辑信息") for logic_id in general_info.get("逻辑信息"): self.animation_logic_combobox.addItem(logic_id) self.animation_resource_combobox.addItem("一共 "+str(len(general_info.get("资源信息")))+" 条资源信息") for resource_id in general_info.get("资源信息"): self.animation_resource_combobox.addItem(resource_id) from controller.viewConsole import is_fairy_frame_active if(is_fairy_frame_active(fairyID)): # 已激活精灵的页面 self.uninstallCutieButton.setText("卸载") self.uninstallCutieButton.setEnabled(True) self.reflashOneButton.setEnabled(True) self.EditFairyPushButton.setEnabled(True) else: # 未激活精灵的页面 self.uninstallCutieButton.setText("加载") self.uninstallCutieButton.setEnabled(True) self.reflashOneButton.setEnabled(False) self.EditFairyPushButton.setEnabled(True)
def defaultUi(self): self.FairyFileNamelabel.setText("...") self.FairyFolderNamelabel.setText("") self.FairyAuthorLabel.setText("作者:") self.FairyInfomationLabel.setText("信息:") self.FairyLicenseLabel.setText("许可:") self.FairyVersionLabel.setText("版本:") self.uninstallCutieButton.setDisabled(True) self.reflashOneButton.setDisabled(True) self.EditFairyPushButton.setDisabled(True) self.tinypng_buff_label.setIcon(fairy_tab_console.get_icon("buff_box_black")) self.tinypng_buff_label.setCheckable(False)
def click_tinypng_buffer(self): ''' 点击tinyPNG buff图标 ''' print("使用tinyPNG压缩所有资源图片") fairy_id = self.FairyFileNamelabel.text() if(fairy_id == "..."): return reply = QMessageBox.information(self, "TinyPNG压缩图片询问", "是否需要使用TinyPNG压缩精灵资源中所有的图片?\n(此操作用时较多,会造成程序卡住很久很久1张图大概4s时间处理,操作完毕后能永久大大减少图片大小,不会对损坏图片质量,重复压缩无效)", QMessageBox.Yes|QMessageBox.No, QMessageBox.Yes) if(reply == QMessageBox.No): return #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # 有待优化 #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # 获取所有图片资源的的位置list all_picture_list = [] from infoTool.load_Fairy_From_XML_File import get_FairyInfo import xml.etree.cElementTree as ET from infoTool.load_Project_Location import get_TheCuiteFolderLocation xml_add = get_FairyInfo(fairy_id).resourceLocation tree = ET.parse(xml_add) root = tree.getroot() # 获取根节点 for resource_set in root.find("动作资源"): resource_set_location = get_TheCuiteFolderLocation(fairy_id) + resource_set.attrib.get("资源地址") for picture_node in resource_set: picture_file_name = picture_node.get("图像") picture_location = resource_set_location+picture_file_name # 计算资源路径 all_picture_list.append(picture_location) from model import TinyPNG TinyPNG.compressing_image_overwirte_source_file_list(all_picture_list) TinyPNG.add_compressed_id(fairy_id) self.tinypng_buff_label.setIcon(fairy_tab_console.get_icon("buff_box"))
def show_fairy_data_in_treewidget(self, reScan=False): #读取精灵信息显示在treeWidget中 folderIcon = fairy_tab_console.get_icon("folder") fairyDict = fairy_tab_console.get_fairy_dict(reScan) # print(fairyDict) self.treeWidget.clear() # print("clear") # print(list(fairyDict.keys())) fairy_id_list = list(fairyDict.keys()) for fairyID in fairy_id_list: fairy = fairy_tab_console.get_fairy_info(fairyID) child = QTreeWidgetItem(self.treeWidget) child.setIcon(0, folderIcon) if(fairy is None): child.setText(0, fairyID+"\t这似乎不是注册文件") continue child.setText(0, fairy.id) fairyXML = QTreeWidgetItem(child) fairyXML.setText(0,fairy.name)
def setupUi(self, Form): Form.setObjectName("Form") Form.resize(638, 461) Form.setObjectName("FairyTab") # 精灵选项卡-精灵选项卡布局 self.fairyTabGridLayout = QtWidgets.QGridLayout(Form) self.fairyTabGridLayout.setObjectName("fairyTabGridLayout") # 精灵选项卡-精灵选项卡布局-左边的布局 self.fairyTab_LeftGridLayout = QtWidgets.QGridLayout() self.fairyTab_LeftGridLayout.setObjectName("fairyTab_LeftGridLayout") # 精灵选项卡-精灵选项卡布局-左边的布局-激活的精灵下拉选框 self.ActiveFairyComboBox = QtWidgets.QComboBox() self.ActiveFairyComboBox.setFrame(True) self.ActiveFairyComboBox.setModelColumn(0) self.ActiveFairyComboBox.setObjectName("ActiveFairyComboBox") self.ActiveFairyComboBox.addItem("已激活的精灵") self.fairyTab_LeftGridLayout.addWidget(self.ActiveFairyComboBox, 0, 0, 1, 1) # 精灵选项卡-精灵选项卡布局-左边的布局-添加精灵按钮 self.addFairyButton = QtWidgets.QPushButton() self.addFairyButton.setObjectName("addFairyButton") self.fairyTab_LeftGridLayout.addWidget(self.addFairyButton, 0, 1, 1, 1) # 精灵选项卡-精灵选项卡布局-左边的布局-用来显示各个资源文件夹的树形控件 self.treeWidget = QtWidgets.QTreeWidget() self.treeWidget.setObjectName("treeWidget") self.treeWidget.headerItem().setText(0, "1") self.treeWidget.header().setVisible(False) self.fairyTab_LeftGridLayout.addWidget(self.treeWidget, 1, 0, 1, 2) # 精灵选项卡-精灵选项卡布局-左边的布局 self.fairyTab_LeftGridLayout.setColumnStretch(0, 6) self.fairyTab_LeftGridLayout.setColumnStretch(1, 2) self.fairyTabGridLayout.addLayout(self.fairyTab_LeftGridLayout, 0, 0, 3, 1) # 精灵选项卡-精灵选项卡布局-右边第一层布局 self.fairyTab_RightFloor1GridLayout = QtWidgets.QGridLayout() self.fairyTab_RightFloor1GridLayout.setObjectName( "fairyTab_RightFloor1GridLayout") # 精灵选项卡-精灵选项卡布局-右边第一层布局-精灵文件名标签 self.FairyFileNamelabel = QtWidgets.QLabel() self.FairyFileNamelabel.setObjectName("FairyFileNamelabel") self.FairyFileNamelabel.setFont(QFont("微软雅黑", 12, QFont.Bold)) self.fairyTab_RightFloor1GridLayout.addWidget(self.FairyFileNamelabel, 0, 0, 1, 5) # 精灵选项卡-精灵选项卡布局-右边第一层布局-精灵文件夹名标签 self.FairyFolderNamelabel = QtWidgets.QLabel() self.FairyFolderNamelabel.setObjectName("FairyFolderNamelabel") self.fairyTab_RightFloor1GridLayout.addWidget( self.FairyFolderNamelabel, 1, 0, 1, 7) # 精灵选项卡-精灵选项卡布局-右边第一层布局-卸载按钮 self.uninstallCutieButton = QtWidgets.QPushButton() self.uninstallCutieButton.setObjectName("uninstallCutieButton") self.fairyTab_RightFloor1GridLayout.addWidget( self.uninstallCutieButton, 0, 4, 1, 1) # 精灵选项卡-精灵选项卡布局-右边第一层布局-刷新按钮 self.reflashOneButton = QtWidgets.QPushButton() self.reflashOneButton.setObjectName("reflashOneButton") self.fairyTab_RightFloor1GridLayout.addWidget(self.reflashOneButton, 0, 5, 1, 1) # 精灵选项卡-精灵选项卡布局-右边第一层布局-编辑按钮 self.EditFairyPushButton = QtWidgets.QPushButton() self.EditFairyPushButton.setObjectName("EditFairyPushButton") self.fairyTab_RightFloor1GridLayout.addWidget(self.EditFairyPushButton, 0, 6, 1, 1) # 精灵选项卡-精灵选项卡布局-右边第一层布局 self.fairyTabGridLayout.addLayout(self.fairyTab_RightFloor1GridLayout, 0, 1, 1, 1) # 精灵选项卡-精灵选项卡布局-右边第二层布局 self.fairyTab_RightFloor2GridLayout = QtWidgets.QGridLayout() self.fairyTab_RightFloor2GridLayout.setObjectName( "fairyTab_RightFloor2GridLayout") # 精灵选项卡-精灵选项卡布局-右边第二层布局-作者名称标签 self.FairyAuthorLabel = QtWidgets.QLabel() self.FairyAuthorLabel.setObjectName("FairyAuthorLabel") self.FairyAuthorLabel.setAlignment(Qt.AlignTop) self.fairyTab_RightFloor2GridLayout.addWidget(self.FairyAuthorLabel, 0, 0, 1, 1) # 精灵选项卡-精灵选项卡布局-右边第二层布局-精灵版本标签 self.FairyVersionLabel = QtWidgets.QLabel() self.FairyVersionLabel.setObjectName("FairyVersionLabel") self.FairyVersionLabel.setAlignment(Qt.AlignTop) self.fairyTab_RightFloor2GridLayout.addWidget(self.FairyVersionLabel, 1, 0, 1, 1) # 精灵选项卡-精灵选项卡布局-右边第二层布局-许可标签 self.FairyLicenseLabel = QtWidgets.QLabel() self.FairyLicenseLabel.setObjectName("FairyLicenseLabel") self.FairyLicenseLabel.setAlignment(Qt.AlignTop) self.FairyLicenseLabel.setWordWrap(True) self.fairyTab_RightFloor2GridLayout.addWidget(self.FairyLicenseLabel, 2, 0, 1, 1) # 精灵选项卡-精灵选项卡布局-右边第二层布局-精灵信息标签 self.FairyInfomationLabel = QtWidgets.QLabel() self.FairyInfomationLabel.setObjectName("FairyInfomationLabel") self.FairyInfomationLabel.setAlignment(Qt.AlignTop) self.FairyInfomationLabel.setWordWrap(True) self.fairyTab_RightFloor2GridLayout.addWidget( self.FairyInfomationLabel, 3, 0, 1, 1) # 精灵选项卡-精灵选项卡布局-右边第二层布局 self.fairyTab_RightFloor2GridLayout.setRowStretch(0, 1) self.fairyTab_RightFloor2GridLayout.setRowStretch(1, 1) self.fairyTab_RightFloor2GridLayout.setRowStretch(2, 1) self.fairyTab_RightFloor2GridLayout.setRowStretch(3, 3) self.fairyTabGridLayout.addLayout(self.fairyTab_RightFloor2GridLayout, 1, 1, 1, 1) # 精灵选项卡-精灵选项卡布局-右边第三层布局 self.fairyTab_RightFloor3GridLayout = QtWidgets.QGridLayout() self.fairyTab_RightFloor3GridLayout.setObjectName( "fairyTab_RightFloor3GridLayout") # 精灵选项卡-精灵选项卡布局-右边第三层布局-第1行buff第1列 self.buffer_label = QtWidgets.QLabel() self.fairyTab_RightFloor3GridLayout.addWidget(self.buffer_label, 0, 0, 1, 1) # 精灵选项卡-精灵选项卡布局-右边第三层布局-第1行buff第2列—TinyPNG self.tinypng_buff_label = QtWidgets.QPushButton() # self.tinypng_buff_label = QtWidgets.QLabel() self.tinypng_buff_label.setFixedHeight(25) self.tinypng_buff_label.setFixedWidth(25) self.tinypng_buff_label.setIcon(get_icon("buff_box_black")) self.tinypng_buff_label.setCheckable(False) # self.tinypng_buff_label.setPixmap(get_icon("buff_box").pixmap(25,25)) self.fairyTab_RightFloor3GridLayout.addWidget(self.tinypng_buff_label, 0, 1, 1, 1) # 精灵选项卡-精灵选项卡布局-右边第三层布局-第1行buff第2列—添加buff按钮 # self.add_buff_button = QtWidgets.QPushButton() # self.add_buff_button.setFixedWidth(50) # self.fairyTab_RightFloor3GridLayout.addWidget(self.add_buff_button, 0, 5, 1, 1) # 精灵选项卡-精灵选项卡布局-右边第三层布局-第2行第1列—动画注册标签 self.animation_register_set_label = QtWidgets.QLabel() self.animation_register_set_label.setObjectName( "animation_registe_set_label") self.fairyTab_RightFloor3GridLayout.addWidget( self.animation_register_set_label, 1, 0, 1, 1) # 精灵选项卡-精灵选项卡布局-右边第三层布局-第2行第2列—动画注册id下拉菜单 self.animation_register_combobox = QtWidgets.QComboBox() self.animation_register_combobox.setObjectName( "animation_register_combobox") self.fairyTab_RightFloor3GridLayout.addWidget( self.animation_register_combobox, 1, 1, 1, 5) # 精灵选项卡-精灵选项卡布局-右边第三层布局-第3行第1列—动画逻辑标签 self.animation_logic_set_label = QtWidgets.QLabel() self.animation_logic_set_label.setObjectName( "animation_logic_set_label") self.fairyTab_RightFloor3GridLayout.addWidget( self.animation_logic_set_label, 2, 0, 1, 1) # 精灵选项卡-精灵选项卡布局-右边第三层布局-第3行第2列—动画逻辑下拉菜单 self.animation_logic_combobox = QtWidgets.QComboBox() self.animation_logic_combobox.setObjectName("animation_logic_combobox") self.fairyTab_RightFloor3GridLayout.addWidget( self.animation_logic_combobox, 2, 1, 1, 5) # 精灵选项卡-精灵选项卡布局-右边第三层布局-第4行第1列—动画资源标签 self.animation_resource_label = QtWidgets.QLabel() self.animation_resource_label.setObjectName("animation_resource_label") self.fairyTab_RightFloor3GridLayout.addWidget( self.animation_resource_label, 3, 0, 1, 1) # 精灵选项卡-精灵选项卡布局-右边第三层布局-第4行第2列—动画资源id下拉菜单 self.animation_resource_combobox = QtWidgets.QComboBox() self.animation_resource_combobox.setObjectName( "animation_resource_combobox") self.fairyTab_RightFloor3GridLayout.addWidget( self.animation_resource_combobox, 3, 1, 1, 5) # 精灵选项卡-精灵选项卡布局-右边第三层布局 self.fairyTabGridLayout.addLayout(self.fairyTab_RightFloor3GridLayout, 2, 1, 1, 1) # 精灵选项卡-精灵选项卡布局 self.fairyTabGridLayout.setColumnStretch(0, 2) self.fairyTabGridLayout.setColumnStretch(1, 3) self.fairyTabGridLayout.setRowStretch(0, 1) self.fairyTabGridLayout.setRowStretch(1, 3) self.fairyTabGridLayout.setRowStretch(2, 3) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form)