pyqt5 tablewidget怎么通过退格键清除dateEdit中的内容
时间: 2023-05-12 09:05:08 浏览: 233
1_PyQt5.zip
您可以使用以下代码来实现:
```python
from PyQt5.QtWidgets import QTableWidget, QDateEdit, QTableWidgetItem, QWidget, QVBoxLayout, QApplication
from PyQt5.QtCore import Qt, QDate
import sys
class MyTableWidget(QTableWidget):
def __init__(self, parent=None):
super(MyTableWidget, self).__init__(parent)
self.setColumnCount(2)
self.setRowCount(1)
self.setHorizontalHeaderLabels(['Date Edit', 'Result'])
self.date_edit = QDateEdit()
self.setCellWidget(0, 0, self.date_edit)
self.date_edit.dateChanged.connect(self.update_result)
def update_result(self):
date = self.date_edit.date().toString(Qt.ISODate)
result_item = QTableWidgetItem(date)
self.setItem(0, 1, result_item)
def keyPressEvent(self, event):
if event.key() == Qt.Key_Backspace:
self.date_edit.setDate(QDate.currentDate())
else:
super(MyTableWidget, self).keyPressEvent(event)
if __name__ == '__main__':
app = QApplication(sys.argv)
widget = QWidget()
layout = QVBoxLayout(widget)
table_widget = MyTableWidget()
layout.addWidget(table_widget)
widget.show()
sys.exit(app.exec_())
```
这个代码创建了一个表格,其中第一列是一个 `QDateEdit`,第二列是一个 `QTableWidgetItem`,用于显示 `QDateEdit` 中的日期。当用户更改 `QDateEdit` 中的日期时,它会自动更新第二列中的值。如果用户按下退格键,`QDateEdit` 中的日期将被设置为当前日期。
阅读全文