擅长:python、mysql、java
<p>PyQt5的一大优点是它将<em>自动</em>将信号连接到方法。如果您的应用程序中有一个名为<code><mybutton></code>的按钮和一个名为<code>on_<mybutton>_clicked</code>的方法,loadUi将自动连接。所以模式是</p>
<pre><code>on_<widget_name>_<signal>
</code></pre>
<p>如果我们将此应用于您的问题,您应该将“显示/隐藏”按钮设置为切换按钮。在Qt设计器中,将checkable属性设置为True(或do<code>btn_show_pwd.clicked.setChecked(True)</code>)</p>
<p>守则:</p>
<pre><code>from PyQt5 import QtCore, QtGui, QtWidgets, uic
from PyQt5.QtWidgets import QPushButton, QLineEdit
import sys
#import pymysql
#pymysql.install_as_MySQLdb()
class MyWindow(QtWidgets.QMainWindow):
def __init__(self, maxWidth=None):
super(MyWindow, self).__init__()
uic.loadUi('test1.ui', self)
self.line_password.setEchoMode(QLineEdit.Password)
def on_btn_show_pwd_toggled(self, checked):
if checked:
self.line_password.setEchoMode(QLineEdit.Password)
else:
self.line_password.setEchoMode(QLineEdit.Normal)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())
</code></pre>