| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- import sys
- from stringprep import in_table_c11
- from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QHBoxLayout, QWidget, QPushButton, QTabWidget, QLabel, QLineEdit, QTextEdit, QFormLayout, QMessageBox, QTreeWidget, QTreeWidgetItem, QDialog, QVBoxLayout as QDialogVBoxLayout, QLineEdit as QDialogLineEdit, QDialogButtonBox, QCheckBox, QComboBox
- from PyQt5.QtCore import Qt
- import requests as req
- import time,random,numpy as np
- import threading
- import asyncio
- import json
- from PyQt5.QtWidgets import QFileDialog
- from PyQt5.QtCore import pyqtSignal, QObject,pyqtSlot
- import sqlite3
- from CollectibleDialog import CollectibleDialog
- import logging
- logging.basicConfig(level=logging.DEBUG, format='%(asctime)s: %(message)s')
- logger = logging.getLogger(__name__)
- class AppearanceDialog(QDialog):
- def __init__(self, parent=None, title="添加外观", initial_code="", initial_name=""):
- super().__init__(parent)
- self.setWindowTitle(title)
- self.setGeometry(100, 100, 200, 200)
- layout = QDialogVBoxLayout()
- # 外观编码输入框
- code_label = QLabel("外观编码")
- self.appearance_code_edit = QDialogLineEdit()
- self.appearance_code_edit.setText(initial_code)
- layout.addWidget(code_label)
- layout.addWidget(self.appearance_code_edit)
- # 外观名称输入框
- name_label = QLabel("外观名称")
- self.appearance_name_edit = QDialogLineEdit()
- self.appearance_name_edit.setText(initial_name)
- layout.addWidget(name_label)
- layout.addWidget(self.appearance_name_edit)
- button_box = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok | QDialogButtonBox.StandardButton.Cancel)
- button_box.accepted.connect(self.accept)
- button_box.rejected.connect(self.reject)
- layout.addWidget(button_box)
- self.setLayout(layout)
- @staticmethod
- def add_appearance(self):
- dialog = AppearanceDialog(self, "添加外观")
- if dialog.exec():
- appearance_code = dialog.appearance_code_edit.text()
- appearance_name = dialog.appearance_name_edit.text()
- if appearance_code and appearance_name:
- item = QTreeWidgetItem(self.appearance_tree_widget)
- item.setText(1, appearance_code)
- item.setText(2, appearance_name)
- checkbox = QCheckBox()
- checkbox.setChecked(False)
- self.appearance_tree_widget.setItemWidget(item, 0, checkbox)
- @staticmethod
- def delete_appearance(self):
- selected_items = self.appearance_tree_widget.selectedItems()
- for item in selected_items:
- (item.parent() or self.appearance_tree_widget).takeTopLevelItem(self.appearance_tree_widget.indexOfTopLevelItem(item))
- @staticmethod
- def edit_appearance(self):
- selected_items = self.appearance_tree_widget.selectedItems()
- if len(selected_items) != 1:
- QMessageBox.warning(self, "编辑外观", "请选择一个外观进行编辑")
- return
- item = selected_items[0]
- dialog = AppearanceDialog(self, "编辑外观", item.text(1), item.text(2))
- if dialog.exec():
- new_appearance_code = dialog.appearance_code_edit.text()
- new_appearance_name = dialog.appearance_name_edit.text()
- if new_appearance_code and new_appearance_name:
- item.setText(1, new_appearance_code)
- item.setText(2, new_appearance_name)
- @staticmethod
- def save_appearances(self):
- # 连接到SQLite数据库
- conn = sqlite3.connect('buff.db')
- cursor = conn.cursor()
- # 清空表中的数据
- cursor.execute('DELETE FROM appearances')
- # 获取树形控件中的所有项
- for i in range(self.appearance_tree_widget.topLevelItemCount()):
- item = self.appearance_tree_widget.topLevelItem(i)
- appearance_code = item.text(1)
- appearance_name = item.text(2)
- checkbox = self.appearance_tree_widget.itemWidget(item, 0)
- selected = checkbox.isChecked() # 获取复选框的状态
- # 插入数据到表中
- cursor.execute('''
- INSERT INTO appearances (code, name,selected)
- VALUES (?, ?,?)
- ''', (appearance_code, appearance_name,selected))
- # 提交更改并关闭连接
- conn.commit()
- conn.close()
- QMessageBox.information(self, "保存外观信息", "外观信息已成功保存")
|