QtDesignerを使用してすべてのウィンドウを作成しました。メインウィンドウはmdiAreaを使用して呼び出されました。私の主な問題は、mdiArea内のウィンドウを閉じると消えてしまいます。私はそれを再び開くことができません。idは終了ボタンがないようにウィンドウを開くか、ファイルが存在しない場合はファイルを開くウィンドウを作ります。最小化されPython(QtDesigner)MdiAreaウィンドウの複数の.pyファイルをボタンで開く
出力スクリーンショット
ウィンドウがValveSimulatorであり、私はそれを閉じた場合、それはもう存在していないと私はそれを
私のメインのコードを開くことができません:のcreateWindowの作りますボタンとCreateValveSimulatorがあるウィンドウは私が閉じるときにボタンから開くメインプログラムです
from PyQt5 import QtCore, QtGui, QtWidgets, uic
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidget,QWidget, QMdiSubWindow
import ValveSim
import MainWindow
import Window
class Win1(QMainWindow):
def __init__(self):
QWidget.__init__(self)
self.vtn = MainWindow.Ui_MainWindow()
self.vtn.setupUi(self)
self.subwindow = QMdiSubWindow()
self.CreateValveSimulator()
self.CreateWindow()
def CreateValveSimulator(self):
widget = QMainWindow()
self.VSim_subwindow = ValveSim.Ui_ValveSim()
self.VSim_subwindow.setupUi(widget)
self.subwindow = QMdiSubWindow(self.vtn.mdiArea)
widget.setParent(self.subwindow)
self.subwindow.setWidget(widget)
self.vtn.mdiArea.addSubWindow(self.subwindow)
widget.show()
self.subwindow.show()
self.subwindow.widget().show()
def CreateWindow(self):
widget = QMainWindow()
self.win_subwindow = Window.Ui_MainWindow()
self.win_subwindow.setupUi(widget)
self.subwindow = QMdiSubWindow(self.vtn.mdiArea)
widget.setParent(self.subwindow)
self.subwindow.setWidget(widget)
self.vtn.mdiArea.addSubWindow(self.subwindow)
widget.show()
self.subwindow.show()
self.subwindow.widget().show()
if __name__=='__main__':
app =QApplication(sys.argv)
win = Win1()
win.show()
sys.exit(app.exec_())
openvsという関数にself.pushbuttonを接続しました。私のメインコードにあるように閉じたときにValve Simulatorウィンドウを開くことを望みますが、ボタンをクリックするとクラッシュします。
ボタンコード付きテーブル:
from PyQt5 import QtCore, QtGui, QtWidgets, uic
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidget, QWidget, QMdiSubWindow, QAction
import Untitled
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.setWindowModality(QtCore.Qt.WindowModal)
MainWindow.resize(351, 442)
MainWindow.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(85, 125, 75, 23))
self.pushButton.setObjectName("pushButton")
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(85, 195, 75, 23))
self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_3.setGeometry(QtCore.QRect(200, 125, 75, 23))
self.pushButton_3.setObjectName("pushButton_3")
MainWindow.setCentralWidget(self.centralwidget)
self.pushButton.clicked.connect(self.openvs)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButton.setText(_translate("MainWindow", "Open Valve Simulator"))
self.pushButton_2.setText(_translate("MainWindow", "Open Module Program"))
self.pushButton_3.setText(_translate("MainWindow", "Open Metal Sizing"))
def openvs(self):
Untitled.Win1.CreateValveSimulator()
github、ドライブなどでコードを共有できますか? – eyllanesc
ValveSimとは何ですか? – eyllanesc
実行される主なコードはWin1()クラスのコードです。ウィンドウが閉じているときに新しいValveSimウィンドウを開きますボタンを備えたGUI ..ですメインウィンドウはQtDesignerにmdiAreaで作られたGUIで、ValveSimとウィンドウは、メインウィンドウ(mdiArea)の内側に行こうQtDesignerから作られただけで、通常のGUIですスクリーンショットに示すように... WIN1は、メインウィンドウ内の定期的なGUIの両方を兼ね備えた –