pyqt5 怎么实现通过退格键清空插入在tablewidget单元格里的QDateEdit中的时间
时间: 2023-05-12 14:05:17 浏览: 36
您可以通过以下代码实现:
```python
def clear_date_edit(widget):
if isinstance(widget, QDateEdit):
widget.setDate(QDate.currentDate())
elif isinstance(widget, QWidget):
for child in widget.findChildren(QWidget):
clear_date_edit(child)
else:
pass
tableWidget.cellChanged.connect(lambda row, column: clear_date_edit(tableWidget.cellWidget(row, column)))
```
这段代码会在单元格中插入 QDateEdit 控件时,将退格键绑定到清空日期的操作上。当用户按下退格键时,QDateEdit 中的日期将被清空。
相关问题
pyqt5 简单一点的代码实现通过退格键清空插入在tablewidget单元格里的QDateEdit中的时间
可以使用以下代码实现:
```python
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QDateEdit
from PyQt5.QtCore import Qt
app = QApplication([])
table = QTableWidget(1, 1)
table.setHorizontalHeaderLabels(['Date'])
date_edit = QDateEdit()
date_edit.setCalendarPopup(True)
table.setCellWidget(0, 0, date_edit)
table.resize(400, 300)
table.show()
def clear_date():
date_edit.setDate(None)
table.installEventFilter(date_edit)
date_edit.installEventFilter(table)
table.cellChanged.connect(lambda row, col: clear_date() if col == 0 else None)
app.exec_()
```
这段代码创建了一个包含一个单元格的表格,单元格中插入了一个 `QDateEdit` 控件。当用户在单元格中输入日期后,按下退格键会清空日期。
pyqt5 怎么实现通过退格键清空QDateEdit中的时间
您可以使用以下代码实现通过退格键清空QDateEdit中的时间:
```python
from PyQt5.QtGui import QKeyEvent
from PyQt5.QtWidgets import QDateEdit
class CustomDateEdit(QDateEdit):
def keyPressEvent(self, event: QKeyEvent) -> None:
if event.key() == Qt.Key_Backspace:
self.setDate(QDate())
else:
super().keyPressEvent(event)
```
这里我们继承了QDateEdit类,并重写了keyPressEvent方法。当用户按下退格键时,我们将日期设置为QDate(),即清空日期。如果用户按下其他键,则调用父类的keyPressEvent方法。