登录界面设置了密码掩码,如何通过函数显示密码,类似密码可见功能
我们这学期在学习PYqt5制作一个学生系统,我在编写登录界面时想要实现一个查看密码功能,我的信号槽是这样写的self.viewpwd.clicked.connect(self.passit)
def passit(self):
self.password.show()我的密码隐藏是这样写的:self.password.setEchoMode(QLineEdit.Password)我的查看密码按钮命名为viewpwd,我这样写方法不能实现显示密码,有没有大神指导一下
本帖最后由 hrp 于 2021-5-12 10:17 编辑
反向操作就好了def passit(self):
self.password.setEchoMode(QLineEdit.Normal)
甚至你可以给passit加点逻辑,先判断显示模式,再设置显示反的模式,这样点一次显示,再点一次隐藏def passit(self):
if self.password.显示模式为password(自己查方法改这里):
self.password.setEchoMode(QLineEdit.Normal)
else:
self.password.setEchoMode(QLineEdit.Password) hrp 发表于 2021-5-12 10:11
反向操作就好了
请问,第二个判断条件我写 ifQLineEdit.text() == self.password.setEchoMode(QLineEdit.Password)
为什么会闪退呀 hrp 发表于 2021-5-12 10:11
反向操作就好了
我刚才改写成这样,但是还是实现不了
def passit(self):
rec = True
if rec:
self.password.setEchoMode(QLineEdit.Normal)
rec == False
elif rec == False:
self.password.setEchoMode(QLineEdit.Password)
rec == True DOLLAR. 发表于 2021-5-12 11:32
我刚才改写成这样,但是还是实现不了
def passit(self):
rec = True
猜测获取显示模式的方法是echoMode,我用手机不好试,你试试看行不行
def passit(self):
if self.password.echoMode() == QLineEdit.Password:
self.password.setEchoMode(QLineEdit.Normal)
else:
self.password.setEchoMode(QLineEdit.Password) hrp 发表于 2021-5-12 11:45
猜测获取显示模式的方法是echoMode,我用手机不好试,你试试看行不行
def passit(self):
if self.password.echoMode(QLineEdit.Password):
self.password.setEchoMode(QLineEdit.Normal)
else:
self.password.setEchoMode(QLineEdit.Password)
是这样吗,我这样写会因为内存不够直接闪退 DOLLAR. 发表于 2021-5-12 13:27
def passit(self):
if self.password.echoMode(QLineEdit.Password):
self.pa ...
我写的方法闪退是吗?
你最好将抛出的异常发出来看一下 hrp 发表于 2021-5-12 13:46
我写的方法闪退是吗?
你最好将抛出的异常发出来看一下
file:///C:/Users/Administrator/Pictures/Camera%20Roll/2.PNG DOLLAR. 发表于 2021-5-12 14:05
Document\Anaconda\python.exe D:/Document/StudentMangementSystem/run.py
Traceback (most recent call last):
File "D:/Document/StudentMangementSystem/run.py", line 23, in passit
if self.password.echoMode(QLineEdit.Password):
TypeError: echoMode(self): too many arguments
图片发不出来,就直接复制给你了
本帖最后由 hrp 于 2021-5-12 14:19 编辑
DOLLAR. 发表于 2021-5-12 14:06
Document\Anaconda\python.exe D:/Document/StudentMangementSystem/run.py
Traceback (most recent cal ...
你先试一下5楼我写的,echoMode是不接受参数的。 hrp 发表于 2021-5-12 14:16
你先试一下5楼我写的,echoMode是不接受参数的。
厉害大佬,还有一个问题,有关注册界面连接数据库的,不知道你能否帮我解答一下 from PyQt5 import QtCore, QtGui, QtWidgets
from qtwidgets import PasswordEdit
# https://stackoverflow.com/questions/23634843/password-form-in-pyqt
class Window(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
password = PasswordEdit()
self.setCentralWidget(password)
app = QtWidgets.QApplication([])
w = Window()
w.show()
app.exec_() 阿奇_o 发表于 2021-5-12 15:04
谢谢你,已经实现了,你可以看看我另外一个帖子,有关PYqt5连接数据库的问题
页:
[1]