Хорошо, я перескакиваю с Tkinter на PyQt, потому что PyQt просто намного более продвинут и работает лучше. НО! У меня здесь проблемы.PyQt: изменить макет GUI после нажатия кнопки
Я пытаюсь изменить макет графического интерфейса после нажатия одной из моих кнопок на главном экране. Я нажимаю первую кнопку на главной странице GUI, а затем хочу, чтобы она перешла на другую страницу GUI, которую я создам. Я часами сижу здесь, пытаясь найти способ сделать это - никаких видеороликов на YouTube, и я не нашел ни одной страницы переполнения стека, которая поможет. Поэтому я узнал, что есть программа Qt Designer. Мне не нравятся такие программы, поэтому, пожалуйста, старайтесь держаться подальше от использования этого при ответе.
PS: Я не хочу работать с несколькими файлами .py, но если нет другого способа, я думаю, мне придется это сделать.
Вот мой код до сих пор:
class Window(QtGui.QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.setGeometry(50, 50, 400, 450)
self.setFixedSize(400,450)
self.setWindowTitle(" Tool")
self.setWindowIcon(QtGui.QIcon('PhotoIcon.png'))
self.home()
def home(self):
ToolsBTN = QtGui.QPushButton('text', self)
ToolsBTN.clicked.connect(ToolTab)
ToolsBTN.move(50, 350)
CPSBTN = QtGui.QPushButton('text', self)
CPSBTN.clicked.connect(QtCore.QCoreApplication.instance().quit)
CPSBTN.move(150, 350)
CreatorBTN = QtGui.QPushButton('Creator', self)
CreatorBTN.clicked.connect(QtCore.QCoreApplication.instance().quit)
CreatorBTN.move(250, 350)
self.show()
class ToolTab(QtGui.QMainWindow):
def __init__2(self):
super(ToolTab, self).__init__2()
self.setGeometry(50, 50, 400, 450)
self.setFixedSize(400,450)
self.setWindowTitle(" Tool")
self.setWindowIcon(QtGui.QIcon('PhotoIcon.png'))
self.Toolsgui()
def Toolsgui(self):
CPSBTN = QtGui.QPushButton('123', self)
CPSBTN.clicked.connect(QtCore.QCoreApplication.instance().quit)
CPSBTN.move(150, 300)
self.show()
def Run():
app = QtGui.QApplication(sys.argv)
GUI = Window()
GUITOOL = ToolTab()
sys.exit(app.exec_())
Run()
вы не изменить расположение - изменение окна. Вы закрываете одно окно и открываете новое окно. Изменение макета означает, что у вас есть только одно окно, и вы заменяете виджеты внутри этого окна. – furas