Почему при открытии нового окна всё происходит на основном окне?
Столкнулся с проблемой, что когда открывается новое окно class(Tk.TopLevel)
, все надписи, кнопки и в прицепи всё что я добавляю, всё происходит на основном окне class Main(tk.TK)
.
Как это можно исправить?
Проверял множество других кодов в интернете, не могут понять почему так. И в принципе я новичок в python
, если кто-то знает, можете пожалуйста на понятном языке для чайника, что означает в class'e *args
, **kwargs
.
Я почитал в интернете, но все равно не до конца понимаю. Когда смотрел видео, просто посоветовали оставить, но не сказали для чего, мой код вроде и без них работает.
import tkinter as tk
from tkinter import *
from PIL import Image
class ReSize:
def __init__(self):
self.image_path = "D:\Project PyCharm\Teste\gbg2.png"
self.img = Image.open(self.image_path)
self.new_image = self.img.resize((330, 250))
self.new_image.show()
self.new_image.save('D:\Project PyCharm\Teste\gbg2_size.png')
class Convert:
def __init__(self):
self.im = Image.open("D:\Project PyCharm\Teste\gbg.jpg")
self.im.convert('RGB').save("gbg2.png", "png")
class Main(tk.Tk):
def __init__(self,*args, **kwargs):
tk.Tk.__init__(self,*args, *kwargs)
self.title("Вход в приложение")
self.geometry("330x250+630+200")
self.resizable(False, False)
self.image = PhotoImage(file="gbg2_size.png")
self.bg = tk.Label(self, image=self.image)
self.bg.place(relx=0, rely=0)
self.btn = tk.Button(text="Вывести таблицу", width=30 ,command=Tabl, font=('times', 12)).place(relx=0.085, rely=0.2)
self.btn = tk.Button(text="Выход", width=30, command=self.destroy, font=('times', 12)).place(relx=0.085, rely=0.4)
class Tabl(tk.Toplevel):
def __init__(self, *args, **kwargs):
tk.Toplevel.__init__(self, *args, *kwargs)
self.title("Table")
self.geometry("330x500+630+200")
self.resizable(False, False)
self.labbel_2 = tk.Label(text="| N рабочего | ФИО | Зарплата |")
self.labbel_2.pack()
if __name__ == "__main__":
app = Main()
app.mainloop()
Источник: Stack Overflow на русском