一、创建第一个PyQt窗口
1 import sys
2 from PyQt5.QtWidgets import QApplication, QWidget
3
4 class MyWindow(QWidget):
5 def __init__(self):
6 super().__init__()
7 self.initUI()
8
9 def initUI(self):
10 self.setWindowTitle('我的第一个PyQt窗口')
11 self.setGeometry(300, 300, 400, 300) # (x,y,width,height)
12
13 if __name__ == '__main__':
14 #创建应用实例
15 app = QApplication(sys.argv)
16 window = MyWindow()
17 window.show() #显示
18 #app.exec_()启动Qt应用程序的事件循环,阻塞程序执行,直到主窗口关闭,返回状态(0表示正常退出)
19 #sys.exit()将Qt的退出状态传递给系统,确保程序完全退出并释放资源,比直接调用exit()更安全规范
20 sys.exit(app.exec_())
二、创建一个登陆界面
1 import sys
2 from PyQt5.QtWidgets import (QApplication, QWidget, QLabel,
3 QLineEdit, QPushButton, QVBoxLayout,
4 QMessageBox)
5 from PyQt5.QtCore import Qt
6
7 class LoginWindow(QWidget):
8 def __init__(self):
9 super().__init__()
10 self.initUI()
11 #创建UI界面方法
12 def initUI(self):
13 # 创建控件
14 self.title_label = QLabel('用户登录系统', self)
15 self.title_label.setAlignment(Qt.AlignCenter)#设置文本剧中对齐
16
17 self.username_label = QLabel('用户名:', self)
18 self.username_input = QLineEdit(self)#创建单行输入框
19 self.username_input.setPlaceholderText('请输入用户名')#设置占位文本(浅灰色提示文字)
20
21 self.password_label = QLabel('密码:', self)
22 self.password_input = QLineEdit(self)
23 self.password_input.setPlaceholderText('请输入密码') #设置占位文本(浅灰色提示文字)
24 self.password_input.setEchoMode(QLineEdit.Password)#设置回显模式为Password(输入显示为圆点或星号)
25
26 self.login_btn = QPushButton('登录', self)#创建登陆按钮,后续可以通过信号槽连接点击事件
27 self.status_label = QLabel('准备就绪', self)#用于显示登陆状态的文本标签
28
29 # 设置布局
30 layout = QVBoxLayout() #设置垂直布局
31 layout.addWidget(self.title_label)
32 layout.addWidget(self.username_label)
33 layout.addWidget(self.username_input)
34 layout.addWidget(self.password_label)
35 layout.addWidget(self.password_input)
36 layout.addWidget(self.login_btn)
37 layout.addWidget(self.status_label)
38
39 self.setLayout(layout) #把布局作为主窗口布局
40
41 # 连接信号槽
42 self.login_btn.clicked.connect(self.on_login_clicked)
43
44 # 窗口设置
45 self.setWindowTitle('PyQt5登录演示')
46 self.setGeometry(300, 300, 300, 200) #x,y,length,width
47
48 def on_login_clicked(self):
49 username = self.username_input.text()#获取用户输入的账号密码
50 password = self.password_input.text()
51
52 if not username or not password: #用户名或密码为空的情况
53 self.status_label.setText('用户名和密码不能为空!')
54 return
55
56 if username == 'admin' and password == '123456':
57 QMessageBox.information(self, '登录成功', '欢迎使用系统!')#弹出信息提示框,内容'欢迎使用系统'
58 self.status_label.setText('登录成功')
59 else:
60 QMessageBox.warning(self, '登录失败', '用户名或密码错误!')#弹出警告提示框,内容‘用户名或密码错误’
61 self.status_label.setText('登录失败')
62
63 if __name__ == '__main__':
64 app = QApplication(sys.argv)
65 window = LoginWindow()
66 window.show()
67 sys.exit(app.exec_())