我正在尝试在其他类中创建我的定制应用程序的一部分,这样我就可以将它们分配给App类。但我一定要做错事。如您所见,目标是将标签文本从"self.label“放置到框架"self.frame_rot”的中间,请检查我的代码:
import tkinter
import customtkinter as ctk
class Frame1(ctk.CTkFrame):
def __init__(self, master):
super().__init__(master)
self.frame_rot = ctk.CTkFrame(master, height = 100, width = 100, fg_color = 'red').grid(row = 0, column = 0)
self.label = ctk.CTkLabel(self.frame_rot, text = 'hallo').place(relx = 0.5, rely = 0.5, anchor = 'center')
class App(ctk.CTk):
def __init__(self):
super().__init__()
self.geometry('500x500')
self.title('TestApp')
self.frame = Frame1(self)
if __name__ == "__main__":
app = App()
app.mainloop()我只是不知道以后该怎么办!

发布于 2022-11-01 21:45:12
试试这个:
import tkinter
import customtkinter as ctk
class App(ctk.CTk):
def __init__(self):
super().__init__()
self.geometry('500x500')
self.title('TestApp')
self.frame = Frame1(self)
class Frame1(ctk.CTkFrame):
def __init__(self, master):
super().__init__(master)
#if you remove this, the "red block" will stick to the upper left corner
master.grid_columnconfigure(0, weight=1)
master.grid_rowconfigure(0, weight=1)
self.frame_rot = ctk.CTkFrame(master=master, fg_color='red')
self.frame_rot.grid(row=0, column=0)
#sticky "ns" will centralize the label vertically
self.label = ctk.CTkLabel(master=self.frame_rot, text='hallo', height=130)
self.label.grid(row=0, column=0, sticky="ns")
if __name__ == "__main__":
app = App()
app.mainloop()https://stackoverflow.com/questions/74249432
复制相似问题