qt designer中用table widget 做一个多选界面
时间: 2023-07-13 12:26:04 浏览: 572
好的,以下是使用Qt Designer和PyQt5创建一个多选界面的步骤:
1. 在Qt Designer中创建一个主窗口,并添加一个Table Widget控件。
2. 在属性编辑器中设置Table Widget控件的选择模式为多选模式:
- 选择Table Widget控件
- 在属性编辑器中,找到`selectionMode`属性,并将其设置为`ExtendedSelection`
3. 在代码中添加Table Widget控件的行和列:
```python
from PyQt5.QtWidgets import QTableWidgetItem
# 设置列数
self.tableWidget.setColumnCount(2)
# 添加行和内容
for i in range(5):
row_position = self.tableWidget.rowCount()
self.tableWidget.insertRow(row_position)
item1 = QTableWidgetItem("Item %s" % i)
item2 = QTableWidgetItem("Description %s" % i)
self.tableWidget.setItem(row_position, 0, item1)
self.tableWidget.setItem(row_position, 1, item2)
```
4. 添加一个按钮和一个文本框来显示选中的项:
```python
from PyQt5.QtWidgets import QPushButton, QVBoxLayout, QWidget, QLabel
class MainWindow(QWidget):
def __init__(self):
super().__init__()
# 创建Table Widget控件并添加行和列
self.tableWidget = QTableWidget()
self.tableWidget.setColumnCount(2)
for i in range(5):
row_position = self.tableWidget.rowCount()
self.tableWidget.insertRow(row_position)
item1 = QTableWidgetItem("Item %s" % i)
item2 = QTableWidgetItem("Description %s" % i)
self.tableWidget.setItem(row_position, 0, item1)
self.tableWidget.setItem(row_position, 1, item2)
# 创建一个按钮和一个文本框
self.button = QPushButton("Get selected items")
self.label = QLabel()
# 连接按钮的点击事件
self.button.clicked.connect(self.get_selected_items)
# 创建一个垂直布局,并将Table Widget控件、按钮和文本框添加到布局中
layout = QVBoxLayout()
layout.addWidget(self.tableWidget)
layout.addWidget(self.button)
layout.addWidget(self.label)
self.setLayout(layout)
# 获取选中的项并在文本框中显示
def get_selected_items(self):
selected_items = self.tableWidget.selectedItems()
items = [item.text() for item in selected_items]
self.label.setText("Selected items: " + ", ".join(items))
```
5. 运行程序,选择多个项并点击按钮,你将会在文本框中看到选中的项。
希望这个例子能够帮助你创建一个多选界面。
阅读全文