add batch operation file
This commit is contained in:
parent
ebd11fd36f
commit
deabca2aa8
112
batch_dialog.py
Normal file
112
batch_dialog.py
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
import sys
|
||||||
|
from PyQt5.QtWidgets import QApplication, QDialog, QVBoxLayout, QHBoxLayout, QTableWidget, QTableWidgetItem, \
|
||||||
|
QPushButton, QCheckBox
|
||||||
|
|
||||||
|
|
||||||
|
class BatchOperationDialog(QDialog):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__()
|
||||||
|
self.setWindowTitle("批量操作节点")
|
||||||
|
self.setGeometry(100, 100, 800, 400)
|
||||||
|
|
||||||
|
# 初始化UI
|
||||||
|
self.init_ui()
|
||||||
|
|
||||||
|
def init_ui(self):
|
||||||
|
# 主布局
|
||||||
|
main_layout = QVBoxLayout()
|
||||||
|
|
||||||
|
# 创建表格(8列,初始行数可以设置为10)
|
||||||
|
self.table_widget = QTableWidget(10, 8) # 10行8列
|
||||||
|
self.table_widget.setHorizontalHeaderLabels(
|
||||||
|
["选择", "IP地址", "MAC地址", "版本号", "通道1名称", "通道1绑定设备", "通道2名称", "通道2绑定设备"]
|
||||||
|
)
|
||||||
|
|
||||||
|
# 使通道列可编辑
|
||||||
|
for row in range(self.table_widget.rowCount()):
|
||||||
|
self.table_widget.setItem(row, 4, QTableWidgetItem()) # 通道1名称
|
||||||
|
self.table_widget.setItem(row, 5, QTableWidgetItem()) # 通道1绑定设备
|
||||||
|
self.table_widget.setItem(row, 6, QTableWidgetItem()) # 通道2名称
|
||||||
|
self.table_widget.setItem(row, 7, QTableWidgetItem()) # 通道2绑定设备
|
||||||
|
|
||||||
|
# 添加勾选框到第1列
|
||||||
|
for row in range(self.table_widget.rowCount()):
|
||||||
|
check_box_item = QTableWidgetItem()
|
||||||
|
check_box_item.setCheckState(0) # 初始状态为未选中
|
||||||
|
self.table_widget.setItem(row, 0, check_box_item)
|
||||||
|
|
||||||
|
# 按钮布局
|
||||||
|
button_layout = QHBoxLayout()
|
||||||
|
|
||||||
|
# 创建按钮
|
||||||
|
self.select_all_button = QPushButton("全选")
|
||||||
|
self.select_none_button = QPushButton("全不选")
|
||||||
|
self.get_version_button = QPushButton("获取版本")
|
||||||
|
self.get_mac_button = QPushButton("获取MAC")
|
||||||
|
self.upgrade_button = QPushButton("升级节点")
|
||||||
|
self.load_ips_button = QPushButton("加载IP列表")
|
||||||
|
self.load_all_button = QPushButton("加载完整信息列表")
|
||||||
|
self.save_button = QPushButton("保存表数据")
|
||||||
|
|
||||||
|
# 按钮连接
|
||||||
|
self.select_all_button.clicked.connect(self.select_all)
|
||||||
|
self.select_none_button.clicked.connect(self.select_none)
|
||||||
|
self.get_version_button.clicked.connect(self.get_version)
|
||||||
|
self.get_mac_button.clicked.connect(self.get_mac)
|
||||||
|
self.upgrade_button.clicked.connect(self.upgrade_node)
|
||||||
|
self.save_button.clicked.connect(self.save_data)
|
||||||
|
self.load_ips_button.clicked.connect(self.load_ips)
|
||||||
|
self.load_all_button.clicked.connect(self.load_all_info)
|
||||||
|
|
||||||
|
# 将按钮加入布局
|
||||||
|
button_layout.addWidget(self.select_all_button)
|
||||||
|
button_layout.addWidget(self.select_none_button)
|
||||||
|
button_layout.addWidget(self.get_version_button)
|
||||||
|
button_layout.addWidget(self.get_mac_button)
|
||||||
|
button_layout.addWidget(self.upgrade_button)
|
||||||
|
button_layout.addWidget(self.load_ips_button)
|
||||||
|
button_layout.addWidget(self.load_all_button)
|
||||||
|
button_layout.addWidget(self.save_button)
|
||||||
|
|
||||||
|
# 将表格和按钮布局添加到主布局
|
||||||
|
main_layout.addWidget(self.table_widget)
|
||||||
|
main_layout.addLayout(button_layout)
|
||||||
|
|
||||||
|
# 设置对话框的布局
|
||||||
|
self.setLayout(main_layout)
|
||||||
|
|
||||||
|
def select_all(self):
|
||||||
|
for row in range(self.table_widget.rowCount()):
|
||||||
|
item = self.table_widget.item(row, 0)
|
||||||
|
item.setCheckState(2) # 选中
|
||||||
|
|
||||||
|
def select_none(self):
|
||||||
|
for row in range(self.table_widget.rowCount()):
|
||||||
|
item = self.table_widget.item(row, 0)
|
||||||
|
item.setCheckState(0) # 未选中
|
||||||
|
|
||||||
|
def get_version(self):
|
||||||
|
print("获取版本按钮被点击")
|
||||||
|
|
||||||
|
def get_mac(self):
|
||||||
|
print("获取MAC按钮被点击")
|
||||||
|
|
||||||
|
def upgrade_node(self):
|
||||||
|
print("升级节点按钮被点击")
|
||||||
|
|
||||||
|
def save_data(self):
|
||||||
|
print("保存表数据按钮被点击")
|
||||||
|
# 可以在这里实现保存表格数据的操作,比如导出为CSV等
|
||||||
|
|
||||||
|
def load_ips(self):
|
||||||
|
print("load ip list")
|
||||||
|
|
||||||
|
def load_all_info(self):
|
||||||
|
print("load complete info")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
app = QApplication(sys.argv)
|
||||||
|
dialog = BatchOperationDialog()
|
||||||
|
dialog.show()
|
||||||
|
sys.exit(app.exec_())
|
Loading…
x
Reference in New Issue
Block a user