Окно PyQt5 не работает с окном tkinter
# -*- coding: utf-8 -*-
from PyQt5 import QtWidgets
import Chat
import Avtorization
from tkinter import *
class AvtorizationApp(Avtorization.Ui_MainWindow):
def __init__(self, url):
super().__init__()
self.setupUi(self)
self.pushButton.pressed.connect(self.get_password)
def get_password(self):
avtorization.close()
choose_chat()
def choose_chat():
root = Tk()
def open_chat():
root.destroy()
Button(root, text='click', width=48, height=3, command=open_chat).pack()
root.mainloop()
mainwindow = ExampleApp('ужегов виктор', '34')
mainwindow.show()
class ExampleApp(Chat.Ui_MainWindow):
def __init__(self, userone, usertwo):
super().__init__()
self.setupUi(self)
w = Tk()
def ex():
w.destroy()
Button(w,text='click', command=ex).pack()
w.mainloop()
app = QtWidgets.QApplication(sys.argv)
avtorization = AvtorizationApp("http://127.0.0.1:5000")
avtorization.show()
app.exec_()
Вот мой полный код В чем собственно проблема
def choose_chat():
root = Tk()
def open_chat():
root.destroy()
Button(root, text='click', width=48, height=3, command=open_chat).pack()
root.mainloop()
mainwindow = ExampleApp('12', '34')
mainwindow.show()
Когда программа доходит до сюда то окно tkinter закрывается, а окно PyQt5 открывается и тут же закрывается
Я пробовал добавить app.exec_() после mainwindow.show() Не помогает.
Помогите пожалуйста
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
я не могу проверить ваш код, но судя по вашему описанию, в функции def choose_chat(): вы создаете экземпляр mainwindow = ExampleApp('12', '34'). mainwindow - это локальная переменная, которая удаляется сборщиком мусора. Вам надо продлить ей(mainwindow) срок жизни. Попробуйте включить ее(choose_chat) в класс AvtorizationApp так:
...
class AvtorizationApp(Avtorization.Ui_MainWindow):
def __init__(self, url):
super().__init__()
self.setupUi(self)
self.pushButton.pressed.connect(self.get_password)
def get_password(self):
avtorization.close()
self.choose_chat() # + self
def choose_chat(self): # + self
root = Tk()
def open_chat():
root.destroy()
Button(root, text='click', width=48, height=3, command=open_chat).pack()
root.mainloop()
self.mainwindow = ExampleApp('ужегов виктор', '34') # + self
self.mainwindow.show() # + self
...