update 完成点位控制逻辑,UI可视化界面生成

This commit is contained in:
FrankCV2048
2024-11-30 22:46:32 +08:00
parent bde241574c
commit ef5ed6eed1
9 changed files with 369 additions and 63 deletions

61
test_ui.py Normal file
View File

@ -0,0 +1,61 @@
from PySide6.QtWidgets import QApplication, QWidget, QTableWidget, QTableWidgetItem, QComboBox, QPushButton, QVBoxLayout, QHBoxLayout
from PySide6.QtCore import Qt
class TableWithComboAndButtons(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("表格:两列按钮,某一列下拉框")
self.setGeometry(100, 100, 600, 400)
# 布局
layout = QVBoxLayout()
# 创建表格
self.table = QTableWidget(5, 3) # 5行3列
self.table.setHorizontalHeaderLabels(["位置", "获取位置", "保存位置"])
# 设置“位置”列为下拉框
for row in range(5):
combo = QComboBox()
combo.addItems(["位置 A", "位置 B", "位置 C"])
self.table.setCellWidget(row, 0, combo)
# 设置“获取位置”和“保存位置”列为按钮
for row in range(5):
get_button = QPushButton("获取位置")
get_button.clicked.connect(self.get_location)
self.table.setCellWidget(row, 1, get_button)
save_button = QPushButton("保存位置")
save_button.clicked.connect(self.save_location)
self.table.setCellWidget(row, 2, save_button)
# 将表格添加到布局中
layout.addWidget(self.table)
self.setLayout(layout)
def get_location(self):
# 获取当前行的“位置”列的内容
selected_row = self.table.currentRow()
if selected_row >= 0:
location = self.table.cellWidget(selected_row, 0).currentText()
print(f"获取位置: {location}")
else:
print("没有选中任何行")
def save_location(self):
# 获取当前行的“位置”列的内容并保存
selected_row = self.table.currentRow()
if selected_row >= 0:
location = self.table.cellWidget(selected_row, 0).currentText()
print(f"保存位置: {location}")
self.table.setItem(selected_row, 0, QTableWidgetItem(f"已保存 - {location}"))
else:
print("没有选中任何行")
if __name__ == "__main__":
app = QApplication([])
window = TableWithComboAndButtons()
window.show()
app.exec()