pyqt6 输入框设置密码显示隐藏
时间: 2024-08-15 07:05:21 浏览: 91
PyQt6 是 PyQt 的最新版本,它是一个用于创建图形用户界面 (GUI) 应用程序的强大工具包。PyQt6 兼容 Python 和 Qt 库,并提供了一个丰富的库供开发者构建复杂的应用程序。
为了在一个 PyQt6 的输入框里设置密码显示隐藏功能,可以使用 `QLineEdit` 类,并结合自定义函数来改变文本显示模式。下面是一种实现这个功能的方法:
1. **导入必要的模块**:
```python
from PyQt6.QtWidgets import QApplication, QLineEdit, QPushButton, QVBoxLayout, QWidget
import sys
```
2. **创建一个窗口并添加组件**:
```python
class PasswordInputExample(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
layout = QVBoxLayout()
# 创建一个密码输入框
self.password_input = QLineEdit()
self.password_input.setEchoMode(QLineEdit.EchoMode.Password)
self.password_input.textChanged.connect(self.onTextChanged)
# 创建一个按钮控制显示/隐藏密码的功能
show_button = QPushButton('显示')
show_button.clicked.connect(self.toggle_password_visibility)
layout.addWidget(self.password_input)
layout.addWidget(show_button)
self.setLayout(layout)
def onTextChanged(self, text):
""" 这个函数会在输入框的内容变化时触发 """
pass
def toggle_password_visibility(self):
""" 切换密码输入框的显示模式 """
if self.password_input.echoMode() == QLineEdit.EchoMode.Password:
self.password_input.setEchoMode(QLineEdit.EchoMode.Normal)
else:
self.password_input.setEchoMode(QLineEdit.EchoMode.Password)
```
3. **运行应用程序**:
```python
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = PasswordInputExample()
ex.show()
sys.exit(app.exec())
```
在这个例子中,我们首先创建了一个 `QLineEdit` 对象,并将它的 `echoMode()` 设置为 `Password` 模式,这意味着默认状态下输入的内容将以星号表示。当按下 "显示" 按钮时,`toggle_password_visibility` 函数会检查当前的 `echoMode()` 并相应地更改其值。如果当前显示模式是 `Password`,则更改为 `Normal`,反之亦然,实现了密码显示与隐藏的功能。
---
阅读全文