Ответ 1
Попробуйте следующее:
if __name__ == '__main__':
root = Tk()
root.title("My Database")
root.geometry("500x400")
app = start_window(root)
root.mainloop()
Я пытаюсь понять, как изменить заголовок Tkinter Frame. Ниже приведен упрощенный код, который имитирует часть моей программы, где я пытаюсь изменить заголовок:
from Tkinter import *
class start_window(Frame):
def __init__(self, parent=None):
Frame.__init__(self, parent)
Frame.pack(self)
Label(self, text = 'Test', width=30).pack()
if __name__ == '__main__':
start_window().mainloop()
В этом примере кода Frame имеет стандартное название "tk", но я хотел бы изменить его на нечто вроде "Моя база данных". Я пробовал все, что мог, без успеха. Любая помощь будет оценена по достоинству.
Попробуйте следующее:
if __name__ == '__main__':
root = Tk()
root.title("My Database")
root.geometry("500x400")
app = start_window(root)
root.mainloop()
Сначала вы должны явно создать главное окно, создав экземпляр Tk
. Когда вы это сделаете, вы можете использовать ссылку на это окно, чтобы изменить заголовок.
Я также рекомендую не использовать глобальный импорт. Вместо этого импортируйте tkinter по имени и префиксные команды tkinter с именем модуля. Я использую имя Tk
для сокращения ввода:
import Tkinter as tk
class start_window(tk.Frame):
def __init__(self, parent=None):
tk.Frame.__init__(self, parent)
tk.Frame.pack(self)
tk.Label(self, text = 'Test', width=30).pack()
if __name__ == '__main__':
root = tk.Tk()
root.wm_title("This is my title")
start_window(root)
root.mainloop()
Наконец, чтобы сделать ваш код более удобным для чтения, я предлагаю присвоить вашему классу заглавную первую букву, совместимую с почти всеми программистами на питоне:
class StartWindow(...):
Используя те же соглашения, что и все остальные, нам становится легче понять ваш код.
Дополнительные сведения о соглашениях об именах, используемых сообществом tkinter, см. в PEP8
Обычно я запускаю свои приложения tkinter с помощью
#!/usr/local/bin/python3
import Tkinter as tk
root = Tk()
root.title('The name of my app')
root.minsize(300,300)
root.geometry("800x800")
root.mainloop()