【PyQt5篇】使用QtDesigner添加控件和槽

文章目录

🍔使用QtDesigner进行设计

我们首先使用QtDesigner设计界面

得到代码login.ui

python 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>Form</class>
 <widget class="QWidget" name="Form">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>478</width>
    <height>220</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Form</string>
  </property>
  <widget class="QLabel" name="label">
   <property name="geometry">
    <rect>
     <x>20</x>
     <y>30</y>
     <width>72</width>
     <height>15</height>
    </rect>
   </property>
   <property name="text">
    <string>用户名:</string>
   </property>
  </widget>
  <widget class="QLabel" name="label_2">
   <property name="geometry">
    <rect>
     <x>21</x>
     <y>74</y>
     <width>71</width>
     <height>21</height>
    </rect>
   </property>
   <property name="text">
    <string>密码:</string>
   </property>
  </widget>
  <widget class="QTextBrowser" name="textBrowser">
   <property name="geometry">
    <rect>
     <x>215</x>
     <y>20</y>
     <width>201</width>
     <height>91</height>
    </rect>
   </property>
  </widget>
  <widget class="QPushButton" name="pushButton">
   <property name="geometry">
    <rect>
     <x>10</x>
     <y>150</y>
     <width>93</width>
     <height>28</height>
    </rect>
   </property>
   <property name="text">
    <string>登录</string>
   </property>
  </widget>
  <widget class="QPushButton" name="pushButton_2">
   <property name="geometry">
    <rect>
     <x>140</x>
     <y>150</y>
     <width>93</width>
     <height>28</height>
    </rect>
   </property>
   <property name="text">
    <string>忘记密码</string>
   </property>
  </widget>
  <widget class="QLineEdit" name="lineEdit">
   <property name="geometry">
    <rect>
     <x>80</x>
     <y>30</y>
     <width>113</width>
     <height>21</height>
    </rect>
   </property>
  </widget>
  <widget class="QLineEdit" name="lineEdit_2">
   <property name="geometry">
    <rect>
     <x>80</x>
     <y>70</y>
     <width>113</width>
     <height>21</height>
    </rect>
   </property>
  </widget>
 </widget>
 <resources/>
 <connections/>
</ui>

🛸在代码中添加信号和槽

我们看下面的代码

python 复制代码
import sys

from PyQt5.QtWidgets import *
from PyQt5 import uic

class MyWindow(QWidget):

    def __init__(self):
    
        super().__init__()  #这段代码不能少
        
        self.init_ui()

    def init_ui(self):
		
		# 引入ui文件
        self.ui=uic.loadUi("./login.ui",self)

        self.user_name=self.ui.lineEdit
        self.password=self.ui.lineEdit_2
        self.login_btn=self.ui.pushButton
        self.forget_btn=self.ui.pushButton_2
        self.text_Browser=self.ui.textBrowser  #文本显示区域

        # 绑定信号和槽函数
        self.login_btn.clicked.connect(self.login)
        self.forget_btn.clicked.connect(self.forget)


    def login(self):
        # 实现登录的逻辑
        user_name=self.user_name.text()
        password=self.password.text()
        if user_name == "admin" and password == "123456":
            print("登录成功")
            self.text_Browser.setText("欢迎%s"% user_name)
            self.text_Browser.repaint()
        else:
            print("用户名或密码错误")
            self.text_Browser.setText("用户名或密码错误")
            self.text_Browser.repaint()


    def forget(self):
        print("忘记密码")

if __name__=='__main__':
    app=QApplication(sys.argv)

    window=MyWindow()

    window.show()

    app.exec_()

运行结果

相关推荐
好学且牛逼的马3 小时前
GOLANG 接口
开发语言·golang
ahauedu3 小时前
AI资深 Java 研发专家系统解析Java 中常见的 Queue实现类
java·开发语言·中间件
韭菜钟3 小时前
在Qt中用cmake实现类似pri文件的功能
开发语言·qt·系统架构
闲人编程4 小时前
Python第三方库IPFS-API使用详解:构建去中心化应用的完整指南
开发语言·python·去中心化·内存·寻址·存储·ipfs
CTRA王大大5 小时前
【golang】制作linux环境+golang的Dockerfile | 如何下载golang镜像源
linux·开发语言·docker·golang
zhangfeng11335 小时前
以下是基于图论的归一化切割(Normalized Cut)图像分割工具的完整实现,结合Tkinter界面设计及Python代码示
开发语言·python·图论
还梦呦6 小时前
2025年09月计算机二级Java选择题每日一练——第五期
java·开发语言·计算机二级
鱼鱼说测试7 小时前
postman接口自动化测试
开发语言·lua
從南走到北7 小时前
JAVA国际版东郊到家同城按摩服务美容美发私教到店服务系统源码支持Android+IOS+H5
android·java·开发语言·ios·微信·微信小程序·小程序
_不会dp不改名_8 小时前
C++ 20: Concepts 与Requires
开发语言·c++20