私はグローバルをあまり扱ったことがなく、クラス内の関数と変数をグローバルにする方法を知りたいと思っていました。フォントと関数を使用してクラス間のグローバルをテストしようとしていました。誰かが私が間違っているところを指摘できれば、それは非常に役に立ちます。
Global.py
#Fonts
#Common Functions
import tkFont
class Global():
def __init__(self):
global f,f1,f2,enter,leave
f = tkFont.Font(name='f',size=14, weight='bold')
f1 = tkFont.Font(name='f1',size=12, weight='bold')
f2 = tkFont.Font(name='f2', underline=True,size=12, weight='bold')
def enter(self,event):
event.widget.config(font='f2')
def leave(self,event):
event.widget.config(font='f1')
LoginFrame.py
from Tkinter import *
from Global import *
class LoginFrame(Frame):
def __init__(self,master):
self.master=master
Global()
def createWidgets(self):
self.frame = Frame(self.master,bg='black',width=800,height=500,bd=5,relief=GROOVE)
self.user_lbl = Label(self.frame, text='User', bg='black', fg='white',font='f1')
self.user_lbl.bind('<Enter>',enter), self.user_lbl.bind('<Leave>',leave)
self.pw_lbl = Label(self.frame, text='Password', bg='black', fg='white',font='f2')
self.pw_lbl.bind('<Enter>',enter), self.pw_lbl.bind('<Leave>',leave)
def packWidgets(self):
self.frame.grid_propagate(0), self.frame.grid(row=1)
self.user_lbl.grid(row=2,column=1,sticky=W)
self.pw_lbl.grid(row=4,column=1,sticky=W)
root=Tk()
loginFrame=LoginFrame(root)
loginFrame.createWidgets()
loginFrame.packWidgets()
root.mainloop()