pyside6布置一个MainWindow。MainWindow含有两个widget。第一个Widget共四行,第一行依次为textlabel1,,comboBox1;第二行依次为textlabel2,CheckBox1,CheckBox2;第三行依次为textlabel3,CheckBoxA,CheckBoxB;第四行为一个Pushbutton,点击Pushbutton后显示或隐藏第二个Widget。第二个Widget默认隐藏,第二个Widget包含三个TableWidget,每个tablewidget都是两列,其中TableWidget1与CheckBox1和CheckBox2对应,根据CheckBox1和CheckBox2的勾选情况在table中第一列动态显示CheckBox:101,102,103和CheckBox:201,202,203;第二列设置为comboBox,每个comboBox有两个选项;TableWidget2与CheckBoxA和CheckBoxB对应,根据CheckBoxA和CheckBoxB的勾选情况在table中第一列动态显示CheckBox:A1,A2,A3和CheckBox:B1,B2,B3;第二列设置为comboBox,每个comboBox有两个选项;TableWidget3第一列为CheckBox:301,302,303和;第二列设置为comboBox,每个comboBox有两个选项。三个TableWidget下方设置一个Pushbutton,点击Pushbutton后依次print所有CheckBox和comboBox的值。
时间: 2024-01-24 19:03:37 浏览: 27
好的,以下是实现该界面的代码:
```python
import sys
from PySide6.QtCore import Qt
from PySide6.QtWidgets import QApplication, QMainWindow, QWidget, QLabel, QComboBox, QCheckBox, QPushButton, \
QVBoxLayout, QHBoxLayout, QTableWidget, QTableWidgetItem
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建两个widget
self.widget1 = QWidget()
self.widget2 = QWidget()
# 创建widget1的内容
self.label1 = QLabel("TextLabel1")
self.comboBox1 = QComboBox()
self.comboBox1.addItems(["Option1", "Option2", "Option3"])
self.label2 = QLabel("TextLabel2")
self.checkBox1 = QCheckBox("CheckBox1")
self.checkBox2 = QCheckBox("CheckBox2")
self.label3 = QLabel("TextLabel3")
self.checkBoxA = QCheckBox("CheckBoxA")
self.checkBoxB = QCheckBox("CheckBoxB")
self.pushButton = QPushButton("Show/Hide Widget2")
self.pushButton.clicked.connect(self.show_hide_widget2)
# 创建widget1的布局
layout1 = QVBoxLayout()
layout1.addWidget(self.label1)
layout1.addWidget(self.comboBox1)
layout1.addWidget(self.label2)
layout1.addWidget(self.checkBox1)
layout1.addWidget(self.checkBox2)
layout1.addWidget(self.label3)
layout1.addWidget(self.checkBoxA)
layout1.addWidget(self.checkBoxB)
layout1.addWidget(self.pushButton)
layout1.addStretch()
self.widget1.setLayout(layout1)
# 创建widget2的内容
self.tableWidget1 = QTableWidget()
self.tableWidget1.setRowCount(3)
self.tableWidget1.setColumnCount(2)
self.tableWidget1.setHorizontalHeaderLabels(["CheckBox", "ComboBox"])
self.tableWidget2 = QTableWidget()
self.tableWidget2.setRowCount(3)
self.tableWidget2.setColumnCount(2)
self.tableWidget2.setHorizontalHeaderLabels(["CheckBox", "ComboBox"])
self.tableWidget3 = QTableWidget()
self.tableWidget3.setRowCount(3)
self.tableWidget3.setColumnCount(2)
self.tableWidget3.setHorizontalHeaderLabels(["CheckBox", "ComboBox"])
# 设置widget2默认隐藏
self.widget2.hide()
# 创建widget2的布局
layout2 = QVBoxLayout()
layout2.addWidget(self.tableWidget1)
layout2.addWidget(self.tableWidget2)
layout2.addWidget(self.tableWidget3)
self.widget2.setLayout(layout2)
# 创建MainWindow的布局
main_layout = QHBoxLayout()
main_layout.addWidget(self.widget1)
main_layout.addWidget(self.widget2)
# 创建MainWindow的centralWidget
central_widget = QWidget()
central_widget.setLayout(main_layout)
self.setCentralWidget(central_widget)
def show_hide_widget2(self):
if self.widget2.isVisible():
self.widget2.hide()
else:
self.widget2.show()
def print_values(self):
# 打印所有CheckBox和ComboBox的值
print("CheckBox1:", self.checkBox1.isChecked())
print("CheckBox2:", self.checkBox2.isChecked())
print("CheckBoxA:", self.checkBoxA.isChecked())
print("CheckBoxB:", self.checkBoxB.isChecked())
for row in range(self.tableWidget1.rowCount()):
checkBox_item = self.tableWidget1.item(row, 0)
comboBox_item = self.tableWidget1.item(row, 1)
if checkBox_item and comboBox_item:
print("TableWidget1 CheckBox{}: {}".format(row+1, checkBox_item.checkState() == Qt.Checked))
print("TableWidget1 ComboBox{}: {}".format(row+1, comboBox_item.currentText()))
for row in range(self.tableWidget2.rowCount()):
checkBox_item = self.tableWidget2.item(row, 0)
comboBox_item = self.tableWidget2.item(row, 1)
if checkBox_item and comboBox_item:
print("TableWidget2 CheckBox{}: {}".format(row+1, checkBox_item.checkState() == Qt.Checked))
print("TableWidget2 ComboBox{}: {}".format(row+1, comboBox_item.currentText()))
for row in range(self.tableWidget3.rowCount()):
checkBox_item = self.tableWidget3.item(row, 0)
comboBox_item = self.tableWidget3.item(row, 1)
if checkBox_item and comboBox_item:
print("TableWidget3 CheckBox{}: {}".format(row+1, checkBox_item.checkState() == Qt.Checked))
print("TableWidget3 ComboBox{}: {}".format(row+1, comboBox_item.currentText()))
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec())
```