PyQt5的第一个小项目:登录跳转页面

这篇博客介绍了使用PyQt5创建登录界面的步骤,包括通过QTDesigner生成.py文件,界面美化,添加组件如账号、密码输入框和登录按钮,并实现登录验证功能。在登录成功后,程序会跳转到hello.py页面。然而,当尝试将login.py作为模块在其他程序中调用时,跳转页面会出现闪退的情况,作者对此问题寻求解答。
摘要由CSDN通过智能技术生成
  1. 首先创建一个主窗口,命名为Login.py
    注:这一步可以通过QTDesigner工具来画出图形,然后生成.py文件,再做修改
    如何生成.py文件的过程已在上一篇博客发布,谢谢关注
from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
	#定义一个建立UI界面的函数
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")   #设置窗口名称
        MainWindow.resize(386, 127)  #设置窗口大小
        self.centralWidget = QtWidgets.QWidget(MainWindow)
        self.centralWidget.setObjectName("centralWidget")
        MainWindow.setCentralWidget(self.centralWidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))  #设置主窗口名称


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

运行的结果:
在这里插入图片描述

  1. 可以美化界面,添加logo和背景图
from PyQt5.QtGui import QIcon
        MainWindow.setWindowIcon(QIcon('logo.png'))
        MainWindow.setStyleSheet("background-image:url(Background.jpg)")

在这里插入图片描述

  1. 到这一步的所有代码
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import QIcon
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(386, 127)
        MainWindow.setWindowIcon(QIcon('logo.png'))
        MainWindow.setStyleSheet("background-image:url(Background.jpg)")
        self.centralWidget = QtWidgets.QWidget(MainWindow)
        self.centralWidget.setObjectName("centralWidget")
        MainWindow.setCentralWidget(self.centralWidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "一颗数据小白菜"))

if __name__ ==<
PyQt5 中,可以使用 QStackedWidget 控件来实现页面跳转功能。 QStackedWidget 是一个堆叠窗口控件,可以显示多个子控件,但是只有一个子控件是可见的。通过在子控件之间切换,可以实现页面跳转的效果。 下面是一个简单的例子,展示了如何使用 QStackedWidget 实现页面跳转功能: ```python import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QLabel, QStackedWidget class MainWindow(QWidget): def __init__(self): super().__init__() # 创建 QStackedWidget 控件 self.stacked_widget = QStackedWidget() # 创建两个页面并添加到 stacked_widget 控件中 self.page1 = Page1() self.stacked_widget.addWidget(self.page1) self.page2 = Page2() self.stacked_widget.addWidget(self.page2) # 创建按钮,用于切换页面 self.button1 = QPushButton("Page 1") self.button1.clicked.connect(self.show_page1) self.button2 = QPushButton("Page 2") self.button2.clicked.connect(self.show_page2) # 创建垂直布局,并将按钮和 stacked_widget 控件添加到布局中 layout = QVBoxLayout() layout.addWidget(self.button1) layout.addWidget(self.button2) layout.addWidget(self.stacked_widget) self.setLayout(layout) def show_page1(self): # 切换到第一个页面 self.stacked_widget.setCurrentWidget(self.page1) def show_page2(self): # 切换到第二个页面 self.stacked_widget.setCurrentWidget(self.page2) class Page1(QWidget): def __init__(self): super().__init__() # 创建标签,并将其添加到页面中 self.label = QLabel("This is Page 1") layout = QVBoxLayout() layout.addWidget(self.label) self.setLayout(layout) class Page2(QWidget): def __init__(self): super().__init__() # 创建标签,并将其添加到页面中 self.label = QLabel("This is Page 2") layout = QVBoxLayout() layout.addWidget(self.label) self.setLayout(layout) if __name__ == "__main__": app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) ``` 运行上述代码,会显示一个窗口,其中包含两个按钮和一个 QStackedWidget 控件。单击不同的按钮,可以切换到不同的页面。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值