Tkinter之一(TCL/Tk在Python上的移植)

本文介绍Tkinter的基础知识,包括如何创建简单的GUI应用、布局管理器的使用方法以及通过实例展示如何构建带有按钮和标签的基本界面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

What is Tkinter?

 TkinterPythonGUI widget。它是基于Tk工具包的,而Tk最初是为了工具命令语言(Tool Command Language, TCL)设计的。由于Tk的流行,它被移植到Perl(Perl/Tk)Python(Tkinter)

A minimal application

#!/usr/bin/python
from Tkinter import 
*

class Application(Frame):                           
         def __init__(self, master 
= None):
Frame.__init__(self, master)
self.grid()
self.createWidget()
          
          def createWidgets(self):
                self.quitButton 
= Button(self, text = ‘Quit’, command=self.quit)
                self.quitButton.grid()
app 
= Application()
app.master.title(‘Sample application’)
app.mainloop()

 

注意:Application类必须从Frame类继承而来,其__init__函数宜先调用其父类的__init__。其中grid()函数用于将Widget显示出来,感觉应该是跟组件的pack()类似。

另外一种形式的Hello, world

#title: HelloWorld.py
from Tkinter import 
*

root 
= Tk()
label 
= Label(text = “hello world”);
label.pack()

root.mainloop()

Layout management

尽管在Tkinter中有三种geometry managers,但是本文将使用.grid()。这种Layout管理器将所有的widget都看成是一个由列跟行组成的表格。通常包含如下术语:

 

  • 单元cell
  • 宽width
  • 高 height
  • extra space
  • 合并单元格spanning

创建了一个widget后,只有将其向geometry manager注册后,该widget才会显示出来。

thing = Constructor(master, …)
thing.grid(…)

用类封装的Hello, world例子。

#file : hello2.py

from Tkinter import 
*

class App:
         def __init__(self, master):
            frame 
= Frame(master)
            frame.pack()

            self.button 
= Button(frame, text = ‘Quit’, fg =’red’, command = frame.quit)
            self.button.pack(side 
= LEFT)
         
            self.hi_there 
= Button(frame, text = ‘Hello’, command = self.say_hi)
            self.hi_there.pack()

        def say_hi(self):
            print ‘hi there, everyone
!

root 
= Tk()
app 
= App(root)
root.mainloop()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值