关闭PyQt4上的窗口而不关闭其他窗口

时间:2017-10-20 14:25:05

标签: python pyqt4

我的程序打开了另一个窗口,但是,在使用之后,我希望这个窗口自动关闭。这可能吗?

我已经尝试过使用sys.exit(),但这会关闭我的所有窗口,我只想关闭一个特定的窗口。

编辑: 在我的主窗口中,我有一个按钮,通过此功能调用我的其他窗口:

    from RPG_Changes import run as change
    class Ui_RPG_Roll(object):
        (...)
        def yes(self):
            change(self.dices)
        (...)
    if __name__ == "__main__":
        import sys
        app = QtGui.QApplication(sys.argv)
        RPG_Roll = QtGui.QMainWindow()
        ui = Ui_RPG_Roll()
        ui.setupUi(RPG_Roll)
        RPG_Roll.show()
        sys.exit(app.exec_())

在被调用的窗口中,我有一些数据处理,但基本上这就是代码:

from PyQt4 import QtCore, QtGui, QtTest
import dice_roll    #this is a function that I created that rolls dices 
import sys

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)


class Ui_MainWindow(object):
    def setupUi(self, MainWindow, dados):
    (...data process...)

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    MainWindow = QtGui.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow,dados)
    MainWindow.show()
    ui.sistema()
    sys.exit(app.exec_())

def run(dices):
    app = QtGui.QApplication(sys.argv)
    MainWindow = QtGui.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow,dados)
    MainWindow.show()
    ui.sistema()
    sys.exit(app.exec_())

0 个答案:

没有答案