1

我有这个简单的Tkinter Custom Window。我是初学者,几个月前才学习 tkinter。我没有真正的软件开发经验。所以,我想知道它的编码方式是否可以接受?我知道当我说可接受时,它可能意味着很多事情。我只是想知道我的编码风格和我的思维方式应该改进哪些方面?

import Tkinter as tk

''' Creating Tkinter Tk instance '''
class Application(tk.Tk):
    def __init__(self,*args,**kwargs):
        tk.Tk.__init__(self,*args,**kwargs)
        self.bind("<ButtonPress-1>", self.StartMove)
        self.bind("<ButtonRelease-1>", self.StopMove)
        self.bind("<B1-Motion>", self.OnMotion)
        self.Init()
        self.Layout()
        self.AddButtons()

    ''' Setting Main Tk window size & styles '''
    def Init(self):
        self.geometry("1280x700+0+0")
        self.overrideredirect(True)
        self['background'] = '#201F29'
        self['highlightthickness'] = 2
        self['relief'] = 'groove'

    '''Layout of the Tk window'''
    def Layout(self):
        self.exitmenu = tk.Frame(self)
        self.exitmenu.place(x = 1217,  y = 0)
        self.container = tk.Frame(self,width = 1268,height = 648 , relief = 'flat',bd = 0)
        self.container.place(x = 5,y = 40)

    ''' Adding Exit button and Minimize button to the Tk window'''
    def AddButtons(self):
        self.minibutton = tk.Button(self.exitmenu,text = '0',font=('webdings',8,'bold'),relief = 'flat' , command = self.minimize )
        self.minibutton.pack(side = 'left')
        self.exitbutton = tk.Button(self.exitmenu,text = 'r',font=('webdings',8),relief = 'flat' ,bg = '#DB6B5A', command = self.destroy )
        self.exitbutton.pack(side = 'left')

    def minimize(self):
        self.overrideredirect(False)
        self.wm_state('iconic')
        self.overrideredirect(True)

    '''Methods for moving window frame'''
    def StartMove(self, event):
        self.x = event.x
        self.y = event.y

    def StopMove(self, event):
        self.x = None
        self.y = None

    def OnMotion(self, event):
        x1 = self.x
        y1 = self.y
        x2 = event.x
        y2 = event.y
        deltax = x2 - x1
        deltay = y2 - y1
        a = self.winfo_x() + deltax
        b = self.winfo_y() + deltay
        self.geometry("+%s+%s" % (a, b))


def Main():
    app = Application()
    app.mainloop()

if __name__ == "__main__":
    Main()
4

1 回答 1

1

阅读PEP-8安装并运行PEP8 checkerpyFlakespyCheckerpylint中的一项或全部。

最突出的第一件事是文档字符串应该在函数内而不是在函数之前 - 然后它们成为函数代码的一部分并且可以通过帮助访问。

于 2013-09-04T08:20:24.717 回答