QualityDialog.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. import sys
  2. from stringprep import in_table_c11
  3. from PyQt6.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
  4. from PyQt6.QtCore import Qt
  5. import requests as req
  6. import time,random,numpy as np
  7. import threading
  8. import asyncio
  9. import json
  10. from PyQt6.QtWidgets import QFileDialog
  11. from PyQt6.QtCore import pyqtSignal, QObject,pyqtSlot
  12. import sqlite3
  13. from CollectibleDialog import CollectibleDialog
  14. class QualityDialog(QDialog):
  15. def __init__(self, parent=None, title="添加品质", initial_code="", initial_name=""):
  16. super().__init__(parent)
  17. self.setWindowTitle(title)
  18. self.setGeometry(100, 100, 400, 150)
  19. layout = QDialogVBoxLayout()
  20. # 品质编码输入框
  21. code_label = QLabel("品质编码")
  22. self.quality_code_edit = QDialogLineEdit()
  23. self.quality_code_edit.setText(initial_code)
  24. layout.addWidget(code_label)
  25. layout.addWidget(self.quality_code_edit)
  26. # 品质名称输入框
  27. name_label = QLabel("品质名称")
  28. self.quality_name_edit = QDialogLineEdit()
  29. self.quality_name_edit.setText(initial_name)
  30. layout.addWidget(name_label)
  31. layout.addWidget(self.quality_name_edit)
  32. button_box = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok | QDialogButtonBox.StandardButton.Cancel)
  33. button_box.accepted.connect(self.accept)
  34. button_box.rejected.connect(self.reject)
  35. layout.addWidget(button_box)
  36. self.setLayout(layout)
  37. @staticmethod
  38. def add_quality(self):
  39. dialog = QualityDialog(self, "添加品质")
  40. if dialog.exec():
  41. quality_code = dialog.quality_code_edit.text()
  42. quality_name = dialog.quality_name_edit.text()
  43. if quality_code and quality_name:
  44. item = QTreeWidgetItem(self.quality_tree_widget)
  45. item.setText(1, quality_code)
  46. item.setText(2, quality_name)
  47. checkbox = QCheckBox()
  48. checkbox.setChecked(False)
  49. self.quality_tree_widget.setItemWidget(item, 0, checkbox)
  50. @staticmethod
  51. def delete_quality(self):
  52. selected_items = self.quality_tree_widget.selectedItems()
  53. for item in selected_items:
  54. (item.parent() or self.quality_tree_widget).takeTopLevelItem(self.quality_tree_widget.indexOfTopLevelItem(item))
  55. @staticmethod
  56. def edit_quality(self):
  57. selected_items = self.quality_tree_widget.selectedItems()
  58. if len(selected_items) != 1:
  59. QMessageBox.warning(self, "编辑品质", "请选择一个品质进行编辑")
  60. return
  61. item = selected_items[0]
  62. dialog = QualityDialog(self, "编辑品质", item.text(1), item.text(2))
  63. if dialog.exec():
  64. new_quality_code = dialog.quality_code_edit.text()
  65. new_quality_name = dialog.quality_name_edit.text()
  66. if new_quality_code and new_quality_name:
  67. item.setText(1, new_quality_code)
  68. item.setText(2, new_quality_name)
  69. @staticmethod
  70. def save_qualities(self):
  71. # 连接到SQLite数据库
  72. conn = sqlite3.connect('buff.db')
  73. cursor = conn.cursor()
  74. # 清空表中的数据
  75. cursor.execute('DELETE FROM qualities')
  76. # 获取树形控件中的所有项
  77. for i in range(self.quality_tree_widget.topLevelItemCount()):
  78. item = self.quality_tree_widget.topLevelItem(i)
  79. quality_code = item.text(1)
  80. quality_name = item.text(2)
  81. checkbox = self.quality_tree_widget.itemWidget(item, 0)
  82. selected = checkbox.isChecked() # 获取复选框的状态
  83. # 插入数据到表中
  84. cursor.execute('''
  85. INSERT INTO qualities (code, name,selected)
  86. VALUES (?, ?, ?)
  87. ''', (quality_code, quality_name,selected))
  88. # 提交更改并关闭连接
  89. conn.commit()
  90. conn.close()
  91. QMessageBox.information(self, "保存品质信息", "品质信息已成功保存")