qtablewidget鼠标点击一行,再点击选课
时间: 2024-05-02 16:04:27 浏览: 17
这个问题是关于 PyQt5 中 QTableWidget 的使用。您可以通过以下代码实现鼠标点击行,再点击选课的功能:
```python
from PyQt5.QtWidgets import QMainWindow, QTableWidget, QTableWidgetItem
from PyQt5.QtCore import Qt
class MyTableWidget(QTableWidget):
def __init__(self):
super().__init__()
self.setColumnCount(2)
self.setRowCount(4)
self.setHorizontalHeaderLabels(['Course', 'Teacher'])
self.setItem(0, 0, QTableWidgetItem('Math'))
self.setItem(0, 1, QTableWidgetItem('Tom'))
self.setItem(1, 0, QTableWidgetItem('English'))
self.setItem(1, 1, QTableWidgetItem('Jane'))
self.setItem(2, 0, QTableWidgetItem('Physics'))
self.setItem(2, 1, QTableWidgetItem('Jim'))
self.setItem(3, 0, QTableWidgetItem('Chemistry'))
self.setItem(3, 1, QTableWidgetItem('Lily'))
self.cellClicked.connect(self.on_click)
def on_click(self, row, col):
if col == 0:
self.current_item = self.item(row, col)
elif col == 1:
course = self.current_item.text()
teacher = self.item(row, col).text()
print(f'Course: {course}, Teacher: {teacher}')
class MyMainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle('QTableWidget')
self.table = MyTableWidget()
self.setCentralWidget(self.table)
if __name__ == '__main__':
import sys
from PyQt5.QtWidgets import QApplication
app = QApplication([])
mainWindow = MyMainWindow()
mainWindow.show()
sys.exit(app.exec_())
```
这个例子中,我们首先创建一个 QTableWidget,并为其添加 4 行和 2 列的课程信息。然后通过 `cellClicked` 信号来监听表格中的单元格点击事件,在 `on_click()` 槽函数中,记录当前点击的单元格信息,当下一次点击另一个单元格时,就可以根据之前记录的信息获取选中的课程和老师信息。最后打印出选中的课程和老师信息。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)