#python #python-3.x #tkinter
Вопрос:
Мне интересно, есть ли способ, в tkinter или с помощью любого другого модуля python, сделать так, чтобы вы сохраняли метку или любой другой элемент в каждом окне, просто используя что-то вроде функции, которая создает метку в окне? Я пробовал это:
#Modules
import tkinter as tkin
#The initializer window
class Test:
def __init__(self):
#Initializes the main window
self.start = tkin.Tk()
self.start.title('Test')
self.label_thing()
#Makes a label
def label_thing(self):
self.label1 = tkin.Label(text='Not Button')
self.label1.pack()
Я не знаю, допустил ли я какие-либо ошибки или это не то, что вы можете сделать, но я также хотел бы воздержаться от локализации метки в этом окне и необходимости переделывать код для каждого окна.
Комментарии:
1. Да, вы можете использовать параметр и передать туда имя окна
2. Зачем вам нужна эта метка в каждом окне? С какой целью?
Ответ №1:
Предположим, у вас есть кнопка, которая создает окна, вы передадите это окно в качестве аргумента функции, которая создает метку, так что:
import tkinter as tk # Fixed weird import naming
class Test:
def __init__(self):
self.start = tk.Tk()
self.start.title('Test')
self.label_thing(self.start) # Label on the main window
tk.Button(self.start,text='Click me',command=self.create_win).pack()
self.start.mainloop()
def label_thing(self, master):
self.label1 = tk.Label(master, text='Not Button')
self.label1.pack()
def create_win(self):
new = tk.Toplevel()
self.label_thing(new) # Label on the new window
if __name__ == '__main__':
Test()
Как вы можете видеть, пока вы нажимаете кнопку, создаются новые окна, и на всех этих окнах есть метка, динамически.
Комментарии:
1. Спасибо!!! Я на самом деле не знал, что ты можешь определить что-то подобное! Я не могу проголосовать за то, чтобы это было полезно еще из-за проблемы с репутацией, но, когда я смогу, я сделаю это!