PyQt5页面跳转闪退问题解决

逻辑描述:
点击窗体login中的查询按钮,会出现sele窗体
问题描述:
点击查询之后,sele窗体闪退,刚出现就退出
问题分析:
直接在sele窗体中写main函数单独调用,是可以显示的,说明还是在调用过程中出现问题
解决办法:
在login中实例sele对象时,需要加self

出现问题前的代码如下:注意def select_act中的调用

login.py

class Ui_mainWindow(object):

    def setupUi(self,mainWindow):
        mainWindow.setObjectName("mainWindow")
        mainWindow.resize(800,500)
        self.centralwidget = QtWidgets.QWidget(mainWindow)
        self.centralwidget.setObjectName("centralwidget")
        mainWindow.setCentralWidget(self.centralwidget)
        # 查询按钮
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(200, 300, 100, 50))
        self.pushButton.setAutoDefault(True)
        self.pushButton.setObjectName("pushButton")
        # 通过styleSheet设置查询按钮得样式,包含字体颜色,大小,位置,背景颜色,边框样式等
        self.pushButton.setStyleSheet(
            "QPushButton{"                              #正常状态样式
            "background-color: rgb(100,94,16,0);"       # 背景色(也可以设置图片)
            "color: black;"                            # 字体颜色
            "font: bold 30px;"                         # 字体: 加粗 大小
            "border-radius: 5px;"                      # 边框圆角半径像素
            "border: 2px solid rgb(50, 50, 50);"       # 边框样式:border-width border-style border-color
            "border-style:outset;"                     # 定义一个3D突出边框,inset与之相反
            "text-align: center;"                        # 文本:左对齐
            "}")
        self.pushButton.clicked.connect(self.select_act)
        # 增加按钮
        self.add_pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.add_pushButton.setGeometry(QtCore.QRect(500, 300, 100, 50))
        self.add_pushButton.setAutoDefault(True)
        self.add_pushButton.setObjectName("pushButton")
        # 通过styleSheet设置 增加按钮得样式,包含字体颜色,大小,位置,背景颜色,边框样式等
        self.add_pushButton.setStyleSheet(
            "QPushButton{"                              #正常状态样式
            "background-color: rgb(100,94,16,0);"       # 背景色(也可以设置图片)
            "color: black;"                            # 字体颜色
            "font: bold 30px;"                         # 字体: 加粗 大小
            "border-radius: 5px;"                      # 边框圆角半径像素
            "border: 2px solid rgb(50, 50, 50);"       # 边框样式:border-width border-style border-color
            "border-style:outset;"                     # 定义一个3D突出边框,inset与之相反
            "text-align: center;"                        # 文本:左对齐
            "}")

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

    def retranslateUi(self, mainWindow):
        _translate = QtCore.QCoreApplication.translate
        mainWindow.setWindowTitle(_translate("mainWindow", "管理系统"))
        self.pushButton.setText(_translate("MainWindow", "查询"))
        self.add_pushButton.setText(_translate("MainWindow", "增加"))


    def select_act(self):
        import select_page
        demo=select_page.Sele()# 创建窗口类对象
        demo.show() # 显示窗口
      
if __name__ == '__main__':
    app =  QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_mainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

第二个窗体代码:select_page.py

from ast import Num
from itertools import count
from PyQt5 import QtCore
from PyQt5.QtWidgets import *

class Sele(QWidget):
    def __init__(self,parent=None):
        # import pdb
        # pdb.set_trace()
        
        super(Sele,self).__init__(parent)
        self.initUI() # 初始化窗口

    def initUI(self):
        print(f'into initUi')
        grid=QGridLayout() # 创建网格布局
        # 创建并设置标签文本
        label1=QLabel()
        label1.setText("用户名:")
        
        # 第一行第一列添加标签控件,并设置左对齐
        grid.addWidget(label1,0,0,QtCore.Qt.AlignLeft)
        print(grid)

        self.setLayout(grid) # 设置网格布局

# if __name__=='__main__':
#     import sys
#     app=QApplication(sys.argv) # 创建窗口程序
#     demo=Sele() # 创建窗口类对象
#     demo.show() # 显示窗口
#     # import pdb
#     # pdb.set_trace()
#     sys.exit(app.exec_())

解决后的代码:
其它不需要修改,只需将login中的select_act方法,在实例sele类时加self
在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值