mysql - 当我使用 MainWindow.hide() 函数时,它给我一个错误,指出 MainWindow 未定义但相同的 MainWindow 在 setupUI 和 retranslateUI 中工作
问题描述
我对 PyQt5 相当陌生。所以在这里,我正在尝试在登录页面对话框窗口中的第一个窗口中工作的项目。因此,如果输入的密码正确,它将打开另一个窗口。
def login(self):
eid=self.lineEdit.text()
epass=self.lineEdit_2.text()
if eid==idd and epass==passs:
from BloodBank import Ui_MainWindow
self.MainWindow = QtWidgets.QMainWindow()
self.ui = Ui_MainWindow()
self.ui.setupUi(self.MainWindow)
LoginPage.hide()
self.MainWindow.show()
else:
self.msgdlg("Wrong ID or Password!")
在此窗口中,从标题栏菜单操作中,我尝试附加另一个窗口,当打开该窗口时,当前窗口变为隐藏。为此,我编写了以下代码:
def menu(self,action):
txt=(action.text())
if txt=="Blood":
try:
from Blood import Ui_MainWindow
self.MainWindow1 = QtWidgets.QMainWindow()
self.ui = Ui_MainWindow()
self.ui.setupUi(self.MainWindow1)
MainWindow.hide()
self.ui.updatelist()
self.MainWindow1.show()
except Exception as e:
print(e)
现在,当我在没有 MainWindow.hide() 的情况下运行上面的代码时,它运行得非常好。但是一旦我输入 MainWindow.hide() 它就会出现以下错误。
名称“MainWindow”未定义
当我尝试与登录页面相同的 .hide() 功能时,它可以工作。我需要做什么才能隐藏我的窗口?
解决方案
您的代码有点不清楚,但我认为这应该是self.MainWindow.hide()
因为我们试图隐藏我们的父小部件。
编辑
尝试self.hide()
在血库文件中,而不是MainWindow.hide()
我假设在文件血库中你有你的mainwindow。
这是问题所在,您有两个文件,登录文件,其中包括登录页面和血库文件。
当您创建它时,self.MainWindow
它的实例仅在namespace
loginpage中。
然后您尝试从此文件中打开另一个窗口(这是代码的第二部分)。MainWindow
instance 不存在,因为您已在另一个文件(登录页面)中定义(实例化)。
推荐阅读
- java - 我在下面运行一个循环。它会自动跳过第一次运行并给我一个答案“无效条目”
- java - 使用带有 RecyclerView 的 Boom Menu 时应用程序崩溃
- html - 添加背景图像后,部分 CSS 将无法工作
- eclipse - 如何让 JETTY_BASE 与 Eclipse GWT 项目一起工作
- r - 当 Shiny App 部署在 Ubuntu 服务器上时,复制到剪贴板和下载处理程序不起作用
- r - 标签未显示在 R 中的 CoCA 上
- load-balancing - 在可变数量的服务器之间拆分流量的算法
- java - 如何检查 JDialog 是否已经在 Java 中打开?
- javascript - Ajax 中的自动递增
- r - 没有“主表”的模糊匹配