当前位置: 首页 > 知识库问答 >
问题:

当从另一个QMainWindow调用时,QMainWindow将消失

章心水
2023-03-14

这是我想在第一个窗口中导入的第二个窗口,但它将闪烁并消失。

从PyQt5导入QtCore、QtGui、QtWidgets

类Ui_主窗口_6(对象):

def setupUi_6(self, MainWindow1):
    MainWindow1.setObjectName("MainWindow")
    MainWindow1.setFixedSize(462, 488)
    icon = QtGui.QIcon()
    icon.addPixmap(QtGui.QPixmap(":/newPrefix/snooker1.png"), 
    QtGui.QIcon.Normal, QtGui.QIcon.Off)
    MainWindow1.setWindowIcon(icon)
    MainWindow1.setStyleSheet("QMainWindow{\n"
                             "background-image: url(:/newPrefix/snk.jpg);\n"
                             "}")
    self.centralwidget = QtWidgets.QWidget(MainWindow1)

if name=="main":导入sys

app = QtWidgets.QApplication(sys.argv)
MainWindow1 = QtWidgets.QMainWindow()
ui = Ui_MainWindow_6()
ui.setupUi_6(MainWindow1)
MainWindow1.show()
sys.exit(app.exec_())

这是我的第一个窗口:

类Ui_主窗口(对象):

def setupUi(self, MainWindow):
    MainWindow.setObjectName("MainWindow")
    MainWindow.resize(1419, 768)
    icon = QtGui.QIcon()
    icon.addPixmap(QtGui.QPixmap(":/newPrefix/snooker1.png"), 
    QtGui.QIcon.Normal, QtGui.QIcon.Off)
    MainWindow.setWindowIcon(icon)
    MainWindow.setStyleSheet("QMainWindow{\n"
                             "background-image: url(:/newPrefix/snk.jpg);\n"
                             "}\n"
                             "")
    MainWindow.setIconSize(QtCore.QSize(38, 38))
    self.centralwidget = QtWidgets.QWidget(MainWindow)

if name=="main":导入sys

app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())

这是我正在使用的函数

def data(self):
    MainWindow1 = QtWidgets.QMainWindow()
    ui = Ui_MainWindow_6()
    ui.setupUi_6(MainWindow1)
    MainWindow1.show()  

共有1个答案

赵驰
2023-03-14

不太确定您想从哪里导入,但请尝试下面的示例:

主要的派克

from PyQt5 import QtCore, QtGui, QtWidgets
from MainWindow_1 import Ui_MainWindow
from MainWindow_6 import Ui_MainWindow_6


class Window2(QtWidgets.QMainWindow, Ui_MainWindow_6):
    def __init__(self):
        super().__init__()

        self.setupUi_6(self)

        self.btn2 = QtWidgets.QPushButton("import \n first window", self)
        self.btn2.setGeometry(5, 5, 70, 70)


class Window(QtWidgets.QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()

        self.setupUi(self)

        btn = QtWidgets.QPushButton("import \n second window", self)
        btn.setGeometry(50, 50, 100, 100)
        btn.clicked.connect(self.on_clicked_1)

    def on_clicked_1(self):
        self.window2 = Window2()
        self.window2.btn2.clicked.connect(self.on_clicked_2)
        self.hide()
        self.window2.show()

    def on_clicked_2(self):
        self.window2.hide()
        self.show()


if __name__ == '__main__':  
    import sys
    app = QtWidgets.QApplication(sys.argv)
    w = Window()
    w.show()
    sys.exit(app.exec_())

主窗口1。派克

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):

    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1419, 768)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("D:/_Qt/img/py-qt.png"), # ":/newPrefix/snooker1.png"
        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        MainWindow.setWindowIcon(icon)
        MainWindow.setStyleSheet("""
                    QMainWindow {
                        background-image: url(D:/_Qt/img/pyqt.jpg);
                    }""")               # url(:/newPrefix/snk.jpg)

        MainWindow.setIconSize(QtCore.QSize(38, 38))
        self.centralwidget = QtWidgets.QWidget(MainWindow)

主窗口6。派克

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow_6(object):

    def setupUi_6(self, MainWindow1):
        MainWindow1.setObjectName("MainWindow")
        MainWindow1.setFixedSize(462, 488)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("D:/_Qt/img/py-qt.png"),   # ":/newPrefix/snooker1.png"
            QtGui.QIcon.Normal, QtGui.QIcon.Off)
        MainWindow1.setWindowIcon(icon)

        MainWindow1.setStyleSheet("""
                    QMainWindow {
                        background-image: url(D:/_Qt/img/cat.jpg);
                    }""")               # url(:/newPrefix/snk.jpg)

        self.centralwidget = QtWidgets.QWidget(MainWindow1)
 类似资料:
  • 问题内容: 单击Dialog_01的按钮 将隐藏 其窗口并打开Dialog_02。单击Dialog_02的按钮应 关闭 其窗口并 取消隐藏Dialog_01。如何实现呢? 问题答案: 将第一个窗口作为第二个窗口的父窗口: 如果您希望每次都显示相同的对话框,请执行以下操作: 和子窗口,而不是关闭它。

  • 问题内容: 这有道理吗? 假设我需要从数据库中获取一个与另一个对象有关系的对象(由数据库中的外键以及域对象中的组合表示)。如果在我的第一个DAO中,我获取对象1的数据,则调用对象2的dao,最后(从第一个DAO中,调用对象1中的setter,并为其提供先前获取的对象2)。 我知道我可以代替加入连接,但是对我来说,断开功能耦合似乎更合乎逻辑(这就是为什么我对从另一个调用一个dao持怀疑态度)。还是应

  • 我正在使用ZXING1.7库开发J2ME条形码扫描器,因为1.7是支持J2ME的最新版本。 由于条形码功能已经作为这个Zxing的一部分出现了,所以我需要从我的组件MIDlet调用ZxingMidlet.java。 由于我对J2ME非常陌生,所以我不知道如何从另一个MIDlet调用ZxingMidlet。如果有人已经在J2ME上工作过/有这方面的经验,请提供您的投入/支持。 这对我会有很大的帮助。

  • 下面的SQL语句在flyway v5.1.3和DB2 LUW 10.5中会失败,但是在DB2中使用客户机直接执行时可以正常工作。 错误消息: “DB2 SQL错误:SQLCODE=-440,SQLSTATE=42884,SQLERRMC = TEST _ STATUS程序,驾驶员=4.19.26 " 绝对是飞行路线的问题。有谁知道解决方法或修复方法?

  • 问题内容: 我需要从另一个Servlet调用Servlet的POST方法,并在Servlet的参数中传递一个Blob。这是可能的,如果可以的话,该怎么做。PS:我不能使用Apache HttpClient 问题答案: 您需要自己创建并发送HTTP请求。您不能使用转发/重定向/包含,因为您要将方法从GET更改为POST,并且想要发送请求。 由于显然不是HttpClient(以及其他第三方库?),您最

  • 我正在做一个新的项目,我试图建立一个货币系统,在那里我可以提取它,以转移到另一个变量(在另一个类)。我在解决这个问题上遇到了一些问题,我对如何编写代码感到非常失望。下面是我想链接的类(我想让“coinsamount”在我做/存款时进入类2“amount” 第2类: