Mesela sizinkine göre karşılaştırma yaparsam normalde UI_angarapage sınıfını ben ayrı olarak kullanırdım (bir nevi abstract gibi), bu doğrultuda main scriptimin içine import ederek 2. bir sınıf oluşturarak onun içinde inherit ederdim. Daha sonra workshopac() metodunu UI_angarapage içinde değil main script içinde kullanmam gerektiği zaman çağırırdım, yeniac metodunu da öyle main içinde kullanırdım. Tabi şimdi bunları örneklemek lazım.
Bir de siz UI_workshop 'u UI_angarapage içinde çağırıyosunuz falan yani her şey çok iç içe geçmiş gözüküyor. Ve de 2. pencereler dialog penceresi olmalı, siz yeni pencereleri QMainWindow() olarak tanımlamışsınız, QDialog() kullanmalısınız.
Kabaca bir örnek tasarladım, siz zaten anlarsınız
main.py
from PyQt5 import QtWidgets
from PyQt5 import QtWidgets
from mainUI import Ui_MainWindow
from angaraPage import UI_angarapage
class Window(QtWidgets.QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
....
....
# veya bu script içinde başka bir class içinde de olabilir
def yeniac(self):
dialog = angaraPage()
dialog.exec_()
dialog.show()
class angaraPage(QtWidgets.QDialog):
def __init__(self):
super(angaraPage, self).__init__()
self.ui = UI_angarapage()
self.ui.setupUi(self)
....
....
mainUI.py
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1500, 900)
....
....
angarapage.py
from PyQt5 import QtCore, QtGui, QtWidgets
class UI_angarapage(object):
def setupUi(self, Dialog):
Dialog.setObjectName("angarapage")
Dialog.resize(1500, 900)
....
....
şeklinde kendimce örneklendirmeye çalıştım umarım faydalı olur.