Files
AutoControlSystem-git/test_ui.py

62 lines
2.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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()