您的位置:首页 > 编程语言 > Python开发

Python Tkinter界面应用开发-03 界面的搭建

2017-06-05 06:23 405 查看
视频教程观看地址:http://study.163.com/course/courseMain.htm?courseId=1003853008

 

上节课,所以我们创建了一个主框架,在主框架中创建了一个横幅,但是这只是界面的一部分,这节课我们就来完善它。现在,我们需要按钮来启动和停止我们的计时器。所以,让我们创建2个按钮,并将它们添加到窗口的底部。所以,我首先在初始函数中调用self.build_buttons:
        self.build_gird()

self.build_banner()

        self.build_buttons()
然后我们来到类的最下面,实现build_buttons这个函数.

我们最终想要的效果就是,创建两个按钮,它们在窗口的底部。所以我们这里还是使用框架,我要做一个新的框架,

所以,我们创建一个新的框架。buttons_frame = tkinter.Frame,它属于我们上节课创建的主框架mainframe中。也就是说,这个新的按钮框架在mainframe中。
    def build_buttons(self):

        buttons_frame = tkinter.Frame(self.mainframe)
然后我们把这个按钮框架放在主框架网格的第2行,第0列,也就是最后一行。它的粘性,东南西北,然后我希望它被填充10。
    def build_buttons(self):

buttons_frame = tkinter.Frame(self.mainframe)

 buttons_frame.grid(row = 2, column = 0, sticky = 'nsew',padx = 10, pady = 10)
现在,让我们配置我们的按钮框架的网格,我们只有一行,这一行不会调整大小。所以,它的行的权重为0,我们之前已经设置好了,所以这里不需要设置,现在我们来看看列。这里列的大小是随时改变的,所以列0和列1都将有1的权重,
        buttons_frame.grid(row = 2, column = 0, sticky = 'nsew',padx = 10, pady = 10)

        buttons_frame.columnconfigure(0, weight=1)

        buttons_frame.columnconfigure(1, weight=1)
现在,让我们来构建按钮。我们将有一个start_button,然后调用tkinkter.Button,它将属于buttons_frame框架,它的文本是start,

然后,让我们做一个stop_button。文本将是Stop.
buttons_frame.columnconfigure(1, weight=1)

 

        self.start_button = tkinter.Button(

            buttons_frame,

            text = 'start'

        )

        self.stop_button = tkinter.Button(

            buttons_frame,

            text='stop'

        )
现在让我们为按钮分配网格, start_button.grid,我想要它在行0和列0.然后我想它是两侧变化。接着,对于stop_button也差不多。唯一的区别就是它在列1,而不是列0。
        self.stop_button = tkinter.Button(

buttons_frame,

text='stop'

)

        self.start_button.grid(row = 0, column = 0, sticky = 'ew')

        self.stop_button.grid(row=0, column=1, sticky='ew')
所以,让我们运行它看看,没毛病。

所以,我们可以点击start。我们可以点击stop。这里不做发生什么,没关系,后面我们再来添加命令。

那么,现在,我们来开始写计时器.所以我们在这里,我们将调用self.build_timer。
        self.build_gird()

self.build_banner()

self.build_buttons()

        self.build_timer()
然后,我们来实现这个函数。def build_timer。我想在这里创建一个Label标签。计时器将属于主框架,因为我们会把它放在网格的中间.文本现在设为TIMER,然后,给它一个大字体。字体是微软雅黑,大小是36个像素高。接着,我们把定时器放入到网格中.我们希望它在行1,列0.它粘到所有四个方向。
        self.stop_button.grid(row=0, column=1, sticky='ew')

 

def build_timer(self):

timer = tkinter.Label(

self.mainframe,

text = 'TIMER',

font = ('微软雅黑', 36)

)

timer.grid(row=1, column=0,sticky='nsew')
运行看下效果,虽然。现在,我们有定时器,我们可以调整它的大小,位置也保持在中间,但问题是,我们希望有一个时钟在这里不停的变化。所以,我们需要创建一个变量。

所以让我们来到构造函数中,我们创建一个timer_text,它将是StringVar也就是字符串类型:.
        self.mainframe.pack(fill = tkinter.BOTH, expand = True)

 

        self.timer_text = tkinter.StringVar()

 

self.build_gird()
然后下来这里,定时器的文本就不再是TIMER了 ,它将是我们刚刚创建的变量self.timer_text.get.
    def build_timer(self):

timer = tkinter.Label(

self.mainframe,

text = self.timer_text.get(),

font = ('微软雅黑', 36)

)
那么,要得到实际的计数。我们还需要一个变量来记录时间。让我们回到构造函数,让我们创建另一个变量。我们会说self.time_left,它是一个IntVar 因为秒数,它总是一个整数。
        self.timer_text = tkinter.StringVar()

        self.time_left = tkinter.IntVar()
现在我们来初始化这个变量,我们知道一个番茄钟的时间是25分钟,一分钟有60秒,所以,在这里,在我们的类外面,我要定义一个常量,DEFAULT_GAP 。所以它的值是60 * 25:
import tkinter

 

DEFAULT_GAP = 60 * 25

 

class Pymodoro:
然后在这里,我创建了这个time_left,现在我要设置它。设置为DEFAULT_GAP.
        self.timer_text = tkinter.StringVar()

self.time_left = tkinter.IntVar()

self.time_left.set(DEFAULT_GAP)
现在,番茄钟的默认剩余时间是25分钟,我已经设置了它。那么这节课先到这里。

更多精彩内容尽在视频中!

本文固定链接:http://www.oxox.work/web/tkinter/ui-create/ | 虚幻大学

查看原文:http://www.oxox.work/web/tkinter/ui-create/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: