QLineEdit单击文本框实现全选
时间: 2024-06-13 11:09:46 浏览: 175
可以通过在 `QLineEdit` 的 `mousePressEvent` 事件中调用 `selectAll()` 方法来实现单击文本框即全选的功能。具体实现方法如下所示:
```python
from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget
from PyQt5.QtGui import QMouseEvent
from PyQt5.QtCore import Qt
class MyLineEdit(QLineEdit):
def __init__(self, parent=None):
super().__init__(parent)
def mousePressEvent(self, event: QMouseEvent) -> None:
if event.button() == Qt.LeftButton:
self.selectAll()
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('QLineEdit')
line_edit = MyLineEdit(self)
line_edit.setGeometry(50, 50, 200, 30)
self.show()
if __name__ == '__main__':
app = QApplication([])
widget = MyWidget()
app.exec_()
```
在上述代码中,我们自定义了一个 `MyLineEdit` 类,继承自 `QLineEdit`,并重写了 `mousePressEvent` 事件。当鼠标左键单击时,调用 `selectAll()` 方法即可实现全选。在 `MyWidget` 类中,我们创建了一个 `MyLineEdit` 对象,并将其添加到窗口中。
阅读全文