QLineEdit
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QLineEdit的学习")
self.resize(500,500)
self.setup_ui()
def setup_ui(self):
le=QLineEdit(self)
le.setText("sz")
le.insert("18")
btn=QPushButton(self)
btn.setText("按钮")
btn.move(100,100)
btn.pressed.connect(lambda :le.insert("18"))
if __name__=='__main__':
import sys
app=QApplication(sys.argv)
window=Window()
window.show()
sys.exit(app.exec_())
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QLineEdit的学习")
self.resize(500,500)
self.setup_ui()
def setup_ui(self):
le_a=QLineEdit(self)
le_a.move(100,200)
le_b= QLineEdit(self)
le_b.move(100,300)
copy_btn=QPushButton(self)
copy_btn.setText("复制")
copy_btn.move(100,400)
def copy_cao():
content=le_a.text()
le_b.setText(content)
copy_btn.pressed.connect(copy_cao)
if __name__=='__main__':
import sys
app=QApplication(sys.argv)
window=Window()
window.show()
sys.exit(app.exec_())
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("登陆案例")
self.resize(500,500)
#设置最小尺寸
self.setMinimumSize(400,400)
self.setup_ui()
def setup_ui(self):
# le_a=QLineEdit(self)
# le_a.move(100,200)
# le_b= QLineEdit(self)
# le_b.move(100,300)
#
# copy_btn=QPushButton(self)
# copy_btn.setText("复制")
# copy_btn.move(100,400)
# def copy_cao():
# content=le_a.text()
# le_b.setText(content)
# copy_btn.pressed.connect(copy_cao)
widget_w=150
widget_h=40
#间距
margin=60
self.account_le=QLineEdit(self)
self.pwd_le=QLineEdit(self)
#设置密码不可见
self.pwd_le.setEchoMode(QLineEdit.Password)
self.login_btn=QPushButton(self)
self.login_btn.setText("登 陆")
self.login_btn.clicked.connect(self.login_cao)
self.account_le.resize(widget_w,widget_h)
self.pwd_le.resize(widget_w,widget_h)
self.login_btn.resize(widget_w,widget_h)
x=(self.width()-widget_w)/2
self.account_le.move(x,self.height()/4)
self.pwd_le.move(x, self.account_le.y()+widget_h+margin)
self.login_btn.move(x, self.pwd_le.y()+widget_h+margin)
def login_cao(self):
print("xxx",self)
'''获取账号密码'''
account=self.account_le.text()
pwd=self.pwd_le.text()
if account !="王青":
print("账户错误")
self.account_le.setText("")
self.pwd_le.setText("")
self.account_le.setFocus()
return None
if account =="王青":
if pwd == 123456:
print("登陆成功")
else:
print("密码错误")
self.pwd_le.setText("")
self.pwd_le.setFocus()
return None
# if account=="王青":
# if pwd==123456:
# print("登陆成功")
# else:
# print("密码错误")
# self.pwd_le.setText("")
# else:
#
# print("账户错误")
# self.account_le.setText("")
# self.pwd_le.setText("")
print(account,pwd)
def resizeEvent(self, evt):
widget_w=150
widget_h=40
margin=60
self.account_le.resize(widget_w,widget_h)
self.pwd_le.resize(widget_w,widget_h)
self.login_btn.resize(widget_w,widget_h)
x = (self.width() - widget_w) / 2
self.account_le.move(x, self.height() / 4)
self.pwd_le.move(x, self.account_le.y() + widget_h + margin)
self.login_btn.move(x, self.pwd_le.y() + widget_h + margin)
if __name__=='__main__':
import sys
app=QApplication(sys.argv)
window=Window()
window.show()
sys.exit(app.exec_())
from PyQt5.Qt import *
class AccountTool:
ACCOUNT_ERROR=1
PWD_ERROR=2
SUCCESS=3
@staticmethod
def check_login(account,pwd):
if account != "王青":
return AccountTool.ACCOUNT_ERROR
if pwd!='123456':
return AccountTool.PWD_ERROR
return AccountTool.SUCCESS
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("登陆案例")
self.resize(500,500)
#设置最小尺寸
self.setMinimumSize(400,400)
self.setup_ui()
def setup_ui(self):
widget_w=150
widget_h=40
#间距
margin=60
self.account_le=QLineEdit(self)
self.pwd_le=QLineEdit(self)
#设置密码不可见
self.pwd_le.setEchoMode(QLineEdit.Password)
self.login_btn=QPushButton(self)
self.login_btn.setText("登 陆")
self.login_btn.clicked.connect(self.login_cao)
self.account_le.resize(widget_w,widget_h)
self.pwd_le.resize(widget_w,widget_h)
self.login_btn.resize(widget_w,widget_h)
x=(self.width()-widget_w)/2
self.account_le.move(x,self.height()/4)
self.pwd_le.move(x, self.account_le.y()+widget_h+margin)
self.login_btn.move(x, self.pwd_le.y()+widget_h+margin)
def login_cao(self):
print("xxx",self)
'''获取账号密码'''
account=self.account_le.text()
pwd=self.pwd_le.text()
state=AccountTool.check_login(account,pwd)
if state==AccountTool.ACCOUNT_ERROR:
print("账户错误")
self.account_le.setText("")
self.pwd_le.setText("")
self.account_le.setFocus()
return None
if state==AccountTool.PWD_ERROR:
print("密码错误")
self.pwd_le.setText("")
self.pwd_le.setFocus()
return None
if state==AccountTool.SUCCESS:
print("登陆成功")
print(account,pwd)
def resizeEvent(self, evt):
widget_w=150
widget_h=40
margin=60
self.account_le.resize(widget_w,widget_h)
self.pwd_le.resize(widget_w,widget_h)
self.login_btn.resize(widget_w,widget_h)
x = (self.width() - widget_w) / 2
self.account_le.move(x, self.height() / 4)
self.pwd_le.move(x, self.account_le.y() + widget_h + margin)
self.login_btn.move(x, self.pwd_le.y() + widget_h + margin)
if __name__=='__main__':
import sys
app=QApplication(sys.argv)
window=Window()
window.show()
sys.exit(app.exec_())
增加了占位符setPlaceholderText()
from PyQt5.Qt import *
class AccountTool:
ACCOUNT_ERROR=1
PWD_ERROR=2
SUCCESS=3
@staticmethod
def check_login(account,pwd):
if account != "王青":
return AccountTool.ACCOUNT_ERROR
if pwd!='123456':
return AccountTool.PWD_ERROR
return AccountTool.SUCCESS
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("登陆案例")
self.resize(500,500)
#设置最小尺寸
self.setMinimumSize(400,400)
self.setup_ui()
def setup_ui(self):
# le_a=QLineEdit(self)
# le_a.move(100,200)
# le_b= QLineEdit(self)
# le_b.move(100,300)
#
# copy_btn=QPushButton(self)
# copy_btn.setText("复制")
# copy_btn.move(100,400)
# def copy_cao():
# content=le_a.text()
# le_b.setText(content)
# copy_btn.pressed.connect(copy_cao)
widget_w=150
widget_h=40
#间距
margin=60
self.account_le=QLineEdit(self)
self.pwd_le=QLineEdit(self)
#设置密码不可见
self.pwd_le.setEchoMode(QLineEdit.Password)
self.login_btn=QPushButton(self)
self.login_btn.setText("登 陆")
#占位文本的提示
self.account_le.setPlaceholderText("请输入账号")
self.pwd_le.setPlaceholderText("请输入密码")
self.login_btn.clicked.connect(self.login_cao)
self.account_le.resize(widget_w,widget_h)
self.pwd_le.resize(widget_w,widget_h)
self.login_btn.resize(widget_w,widget_h)
x=(self.width()-widget_w)/2
self.account_le.move(x,self.height()/4)
self.pwd_le.move(x, self.account_le.y()+widget_h+margin)
self.login_btn.move(x, self.pwd_le.y()+widget_h+margin)
def login_cao(self):
print("xxx",self)
'''获取账号密码'''
account=self.account_le.text()
pwd=self.pwd_le.text()
state=AccountTool.check_login(account,pwd)
if state==AccountTool.ACCOUNT_ERROR:
print("账户错误")
self.account_le.setText("")
self.pwd_le.setText("")
self.account_le.setFocus()
return None
if state==AccountTool.PWD_ERROR:
print("密码错误")
self.pwd_le.setText("")
self.pwd_le.setFocus()
return None
if state==AccountTool.SUCCESS:
print("登陆成功")
# if account !="王青":
# print("账户错误")
# self.account_le.setText("")
# self.pwd_le.setText("")
# self.account_le.setFocus()
# return None
#
# if account =="王青":
# if pwd == 123456:
# print("登陆成功")
# else:
# print("密码错误")
# self.pwd_le.setText("")
# self.pwd_le.setFocus()
# return None
# if account=="王青":
# if pwd==123456:
# print("登陆成功")
# else:
# print("密码错误")
# self.pwd_le.setText("")
# else:
#
# print("账户错误")
# self.account_le.setText("")
# self.pwd_le.setText("")
print(account,pwd)
def resizeEvent(self, evt):
widget_w=150
widget_h=40
margin=60
self.account_le.resize(widget_w,widget_h)
self.pwd_le.resize(widget_w,widget_h)
self.login_btn.resize(widget_w,widget_h)
x = (self.width() - widget_w) / 2
self.account_le.move(x, self.height() / 4)
self.pwd_le.move(x, self.account_le.y() + widget_h + margin)
self.login_btn.move(x, self.pwd_le.y() + widget_h + margin)
if __name__=='__main__':
import sys
app=QApplication(sys.argv)
window=Window()
window.show()
sys.exit(app.exec_())
setClearButtonEnabled(bool)
is
'''设置密码文本框清空按钮'''
self.pwd_le.setClearButtonEnabled(True)
from PyQt5.Qt import *
class AccountTool:
ACCOUNT_ERROR=1
PWD_ERROR=2
SUCCESS=3
@staticmethod
def check_login(account,pwd):
if account != "王青":
return AccountTool.ACCOUNT_ERROR
if pwd!='123456':
return AccountTool.PWD_ERROR
return AccountTool.SUCCESS
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("登陆案例")
self.resize(500,500)
#设置最小尺寸
self.setMinimumSize(400,400)
self.setup_ui()
def setup_ui(self):
# le_a=QLineEdit(self)
# le_a.move(100,200)
# le_b= QLineEdit(self)
# le_b.move(100,300)
#
# copy_btn=QPushButton(self)
# copy_btn.setText("复制")
# copy_btn.move(100,400)
# def copy_cao():
# content=le_a.text()
# le_b.setText(content)
# copy_btn.pressed.connect(copy_cao)
widget_w=150
widget_h=40
#间距
margin=60
self.account_le=QLineEdit(self)
self.pwd_le=QLineEdit(self)
#设置密码不可见
self.pwd_le.setEchoMode(QLineEdit.Password)
self.login_btn=QPushButton(self)
self.login_btn.setText("登 陆")
'''占位文本的提示'''
self.account_le.setPlaceholderText("请输入账号")
self.pwd_le.setPlaceholderText("请输入密码")
'''设置密码文本框清空按钮'''
self.pwd_le.setClearButtonEnabled(True)
'''设置密码明文秘文切换'''
action = QAction(self.pwd_le)
action.setIcon(QIcon("code.png"))
def change():
if self.pwd_le.echoMode() == QLineEdit.Normal:
self.pwd_le.setEchoMode(QLineEdit.Password)
action.setIcon(QIcon("code.png"))
else:
self.pwd_le.setEchoMode(QLineEdit.Normal)
action.setIcon(QIcon("code.png"))
action.triggered.connect(change)
self.pwd_le.addAction(action,QLineEdit.TrailingPosition)
self.login_btn.clicked.connect(self.login_cao)
self.account_le.resize(widget_w,widget_h)
self.pwd_le.resize(widget_w,widget_h)
self.login_btn.resize(widget_w,widget_h)
x=(self.width()-widget_w)/2
self.account_le.move(x,self.height()/4)
self.pwd_le.move(x, self.account_le.y()+widget_h+margin)
self.login_btn.move(x, self.pwd_le.y()+widget_h+margin)
def login_cao(self):
print("xxx",self)
'''获取账号密码'''
account=self.account_le.text()
pwd=self.pwd_le.text()
state=AccountTool.check_login(account,pwd)
if state==AccountTool.ACCOUNT_ERROR:
print("账户错误")
self.account_le.setText("")
self.pwd_le.setText("")
self.account_le.setFocus()
return None
if state==AccountTool.PWD_ERROR:
print("密码错误")
self.pwd_le.setText("")
self.pwd_le.setFocus()
return None
if state==AccountTool.SUCCESS:
print("登陆成功")
# if account !="王青":
# print("账户错误")
# self.account_le.setText("")
# self.pwd_le.setText("")
# self.account_le.setFocus()
# return None
#
# if account =="王青":
# if pwd == 123456:
# print("登陆成功")
# else:
# print("密码错误")
# self.pwd_le.setText("")
# self.pwd_le.setFocus()
# return None
# if account=="王青":
# if pwd==123456:
# print("登陆成功")
# else:
# print("密码错误")
# self.pwd_le.setText("")
# else:
#
# print("账户错误")
# self.account_le.setText("")
# self.pwd_le.setText("")
print(account,pwd)
def resizeEvent(self, evt):
widget_w=150
widget_h=40
margin=60
self.account_le.resize(widget_w,widget_h)
self.pwd_le.resize(widget_w,widget_h)
self.login_btn.resize(widget_w,widget_h)
x = (self.width() - widget_w) / 2
self.account_le.move(x, self.height() / 4)
self.pwd_le.move(x, self.account_le.y() + widget_h + margin)
self.login_btn.move(x, self.pwd_le.y() + widget_h + margin)
if __name__=='__main__':
import sys
app=QApplication(sys.argv)
window=Window()
window.show()
sys.exit(app.exec_())
验证器
from PyQt5.Qt import *
class AgeVadidator(QValidator):
def validate(self, input_str, pos_int):
print(input_str,pos_int)
#判断字符串是否全是数字
try:
if 18<=int(input_str) <=180:
return (QValidator.Acceptable,input_str,pos_int)
elif 1<=int(input_str)<=17:
return (QValidator.Intermediate,input_str,pos_int)
else:
return (QValidator.Invalid,input_str,pos_int)
except:
if len(input_str)==0:
return (QValidator.Intermediate,input_str,pos_int)
return (QValidator.Invalid,input_str,pos_int)
def fixup(self,p_str):
print("xxx",p_str)
try:
if int(p_str)<18:
return "18"
return "180"
except:
return "18"
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QLineEdit验证器的学习")
self.resize(500, 500)
self.setup_ui()
def setup_ui(self):
le=QLineEdit(self)
le.move(100,100)
vadidator=AgeVadidator()
le.setValidator(vadidator)
le2=QLineEdit(self)
le2.move(200,200)
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
from PyQt5.Qt import *
class MyAgeVadidator(QIntValidator):
def fixup(self,p_str):
print("xxx",p_str)
if len(p_str)==0 or int(p_str)<18:
return "18"
class AgeVadidator(QValidator):
def validate(self, input_str, pos_int):
print(input_str,pos_int)
#判断字符串是否全是数字
try:
if 18<=int(input_str) <=180:
return (QValidator.Acceptable,input_str,pos_int)
elif 1<=int(input_str)<=17:
return (QValidator.Intermediate,input_str,pos_int)
else:
return (QValidator.Invalid,input_str,pos_int)
except:
if len(input_str)==0:
return (QValidator.Intermediate,input_str,pos_int)
return (QValidator.Invalid,input_str,pos_int)
def fixup(self,p_str):
print("xxx",p_str)
try:
if int(p_str)<18:
return "18"
return "180"
except:
return "18"
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QLineEdit验证器的学习")
self.resize(500, 500)
self.setup_ui()
def setup_ui(self):
le=QLineEdit(self)
le.move(100,100)
# vadidator=AgeVadidator()
# vadidator=QIntValidator(18,180)
vadidator = MyAgeVadidator(18, 180)
le.setValidator(vadidator)
le2=QLineEdit(self)
le2.move(200,200)
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
掩码
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QLineEdit的学习")
self.resize(500,500)
self.setup_ui()
def setup_ui(self):
le_a=QLineEdit(self)
le_a.move(100,200)
le_b= QLineEdit(self)
le_b.move(100,300)
copy_btn=QPushButton(self)
copy_btn.setText("复制")
copy_btn.move(100,400)
def copy_cao():
content=le_a.text()
le_b.setText(content)
copy_btn.pressed.connect(copy_cao)
#最大长度限制
le_a.setMaxLength(3)
#获取最大长度
print(le_a.maxLength())
#只读限制
le_a.setReadOnly(True)
le_a.setText("王炸,要不起")
#le_b设置掩码
#总共输入5位 左边2(必须是大写)-右边2
le_b.setInputMask(">AA-99")
if __name__=='__main__':
import sys
app=QApplication(sys.argv)
window=Window()
window.show()
sys.exit(app.exec_())
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QLineEdit的学习")
self.resize(500,500)
self.setup_ui()
def setup_ui(self):
le_a=QLineEdit(self)
le_a.move(100,200)
le_b= QLineEdit(self)
le_b.move(100,300)
copy_btn=QPushButton(self)
copy_btn.setText("复制")
copy_btn.move(100,400)
def copy_cao():
#是否被编辑
print(le_b.isModified())
le_b.setModified(False)
copy_btn.pressed.connect(copy_cao)
#最大长度限制
le_a.setMaxLength(3)
#获取最大长度
print(le_a.maxLength())
#只读限制
le_a.setReadOnly(True)
le_a.setText("王炸,要不起")
# #le_b设置掩码
# #总共输入5位 左边2(必须是大写)-右边2
# le_b.setInputMask(">AA-99")
if __name__=='__main__':
import sys
app=QApplication(sys.argv)
window=Window()
window.show()
sys.exit(app.exec_())
光标
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QLineEdit光标的学习")
self.resize(500,500)
self.setup_ui()
def setup_ui(self):
le=QLineEdit(self)
le.move(100,100)
btn=QPushButton(self)
btn.setText("按钮")
btn.move(100,200)
def cursor_move():
le.cursorBackward(True,2)
le.setFocus()
btn.clicked.connect(cursor_move)
if __name__=='__main__':
import sys
app=QApplication(sys.argv)
window=Window()
window.show()
sys.exit(app.exec_())