Python Tkinter自定义窗口

时间:2013-09-04 07:57:21

标签: python coding-style tkinter code-structure

我有这个简单的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()

1 个答案:

答案 0 :(得分:0)

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

首先要说明的是,文档字符串应该在函数内而不是之前 - 然后它们就会成为函数代码的一部分,并且可以通过帮助来访问。