首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当从另一个QMainWindow调用时,QMainWindow消失

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

Stack Overflow用户
提问于 2019-01-30 23:58:57
回答 1查看 263关注 0票数 0

这是第二个窗口,我想在第一个窗口导入,但它会闪现和消失。

来自PyQt5 import QtCore,QtGui,QtWidgets

类Ui_MainWindow_6(对象):

代码语言:javascript
复制
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 名称 == "main":导入sys

代码语言:javascript
复制
app = QtWidgets.QApplication(sys.argv)
MainWindow1 = QtWidgets.QMainWindow()
ui = Ui_MainWindow_6()
ui.setupUi_6(MainWindow1)
MainWindow1.show()
sys.exit(app.exec_())

这是我的第一个窗口:

类Ui_MainWindow(对象):

代码语言:javascript
复制
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 名称 == "main":导入sys

代码语言:javascript
复制
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())

这是我使用的函数:

代码语言:javascript
复制
def data(self):
    MainWindow1 = QtWidgets.QMainWindow()
    ui = Ui_MainWindow_6()
    ui.setupUi_6(MainWindow1)
    MainWindow1.show()  
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-31 23:56:06

不太确定要从何处导入什么,但请尝试下面的示例:

main.py

代码语言:javascript
复制
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_())

MainWindow_1.py

代码语言:javascript
复制
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)

MainWindow_6.py

代码语言:javascript
复制
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)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54451416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档