简单 Python 快乐之旅之:Python 基础语法之 GUI 专题

1. Python tkinter 设置特定或固定的窗口大小

在使用 Python tkinter 给窗口设置一个特定大小时,使用 Tk() 类变量的 geometry() 函数。

from tkinter import *
gui = Tk()
gui.geometry("widthxheight")

其中,width 和 height 应该分别由表示窗口宽度和高度的整型数字所代替。留意传递给 geometry() 的 width 和 height 变量之间有一个 x。
注意:请注意窗口大小 width x height 并不包含窗口标题部分。

1.1. 示例一:在 Python tkinter 中设置窗口大小

在本示例中,我们将使用 geometry() 方法来给 Tk() 窗口设置一个固定的 500 乘 200 的大小。

from tkinter import *
gui = Tk(className='Python Examples - Window Size')
# set window size
gui.geometry("500x200")
gui.mainloop()

执行和输出:
在 Python tkinter 中设置窗口大小.png
可以看到,在执行改程序的时候,将会打开一个由 geometry() 函数中定义窗口大小的 GUI 窗口。

1.2. 设置窗口大小

现在我们来改变一下提供给 geometry() 函数的宽度和长度,比如 300 乘 300。

from tkinter import *
gui = Tk(className='Python Examples - Window Size')
# set window size
gui.geometry("300x300")
gui.mainloop()

执行和输出:
设置窗口大小.png

1.3. 小结

本节我们通过详尽的示例了解到如何给基于 tkinter 的 GUI 程序设置窗口大小。

2. Python tkinter 按钮例子

2.1. Python tkinter 按钮

我们将使用 Python 的 tkinter 库来实现 Python GUI 里的按钮。
添加一个按钮到 tkinter 窗口的语法如下:

mybutton = Button(master, option=value)
mybutton.pack()

其中 master 是为你要添加到的那个窗口。tkinter 库为按钮构造子提供了不同的选项以更改其外观。

选项
text按钮标签的文本显示
width设置按钮的宽度
height设置按钮的高度
bg设置按钮的背景色
fg设置按钮标签的字体颜色
activebackground设置按钮被点击后的背景色
activeforeground设置按钮被点击后的按钮标签的字体颜色
command当按钮被点击时要调用的函数
font设置按钮标签的字体大小、格式
image设置按钮图片

2.2. 示例一:使用 tkinter 库的按钮

在接下来的示例中,我们将创建一个 tkinter 按钮。

from tkinter import *
gui = Tk(className='Python Examples - Button')
gui.geometry("500x200")
# create button
button = Button(gui, text='My Button', width=40, height=3, bg='#0052cc', fg='#ffffff', activebackground='#0052cc', activeforeground='#aaffaa')
# add button to gui window
button.pack()
gui.mainloop()

执行和输出:
使用 tkinter 库的按钮.png

2.3. 小结

本节我们了解到了如何使用 tkinter 库来创建一个 GUI 按钮。

3. 按钮点击调用函数

当一个 tkinter 按钮被点击的时候,你可以使用 command 属性来调用一个函数。将你希望按钮被点击时要调用到的函数名指派给 command 属性即可。
以下是按钮被点击时调用一个函数的伪代码:

def someFunction:
    function body

tkWindow = Tk()

button = Button(tkWindow, command=someFunction)

或者你也可以在定义该按钮之后指派 command:

def someFunction:
    function body

tkWindow = Tk()

button = Button(tkWindow)
button['command'] = someFunction

3.1. 按钮点击事件调函数

from tkinter import *
from tkinter import messagebox

tkWindow = Tk()
tkWindow.geometry('400x150')
tkWindow.title('Defonds.net Tkinter Example')
def showMsg():
    messagebox.showinfo('Message', 'You clicked the Submit button!')

button = Button(tkWindow, text='Submit', command=showMsg)
button.pack()

tkWindow.mainloop()

执行和输出:
按钮点击事件调函数.png
在提供用户点击按钮后调用函数时需要注意:

  • 在按钮的定以前定义该函数
  • command 选项的值是不带任何引号的函数名

4. 更改字体系列、字体大小及格式

要更改字体属性,如字体系列、字体大小、字体粗细等,可以使用 tkinter.font 包。
在程序中,引入 tkinter.font as font 并提供变量给 font.Font()。

4.1. 改变 tkinter 按钮的字体系列

以下示例中,我们将通过使用 family 命名参数给 font.Font() 来改变 tkinter 按钮的字体系列。

from tkinter import *
import tkinter.font as font

gui = Tk(className='Python examples - Button')
gui.geometry('500x200')

# define font
myFont = font.Font(family='Helvetica')

# create button
button = Button(gui, text='My Button', bg='#0052cc', fg='#ffffff')
# apply font to the button label
button['font'] = myFont
# add button to gui window
button.pack()

gui.mainloop()

执行和输出:
改变 tkinter 按钮的字体系列.png
如果没有提供 font,该按钮看起来会是这个样子:
如果没有提供 font,该按钮看起来会是这个样子.png

4.2. 改变 tkinter 按钮的字体大小

我们还可以通过传递命名参数 text 给 font.Font() 来改变 tkinter 按钮中文本的字体大小。

from tkinter import *
import tkinter.font as font

gui = Tk(className='Python examples - Button')
gui.geometry('500x200')

# define font
myFont = font.Font(size=30)

# create button
button = Button(gui, text='My Button', bg='#0052cc', fg='#ffffff')
# apply font to the button label
button['font'] = myFont
# add button to gui window
button.pack()

gui.mainloop()

执行和输出:
改变 tkinter 按钮的字体大小.png

4.3. 改变 tkinter 按钮的字体粗细

我们还可以通过传递命名参数 weight 给 font.Font() 来改变 tkinter 按钮中文本的字体粗细。

from tkinter import *
import tkinter.font as font

gui = Tk(className='Python examples - Button')
gui.geometry('500x200')

# define font
myFont = font.Font(weight='bold')

# create button
button = Button(gui, text='My Button', bg='#0052cc', fg='#ffffff')
# apply font to the button label
button['font']=myFont
# add button to gui window
button.pack()

gui.mainloop()

执行和输出:
改变 tkinter 按钮的字体粗细.png

4.4. 改变 tkinter 按钮的字体系列、字体大小以及字体粗细。

我们可以把以上设置打包一起传给 font.Font()。

from tkinter import *
import tkinter.font as font

gui = Tk(className='Python examples = Button')
gui.geometry('500x200')

# define font
myFont = font.Font(family='Helvetica', size=20, weight='bold')

# create button
button = Button(gui, text='My Button', bg='#0052cc', fg='#ffffff')
# apply font to the button label
button['font']=myFont
# add button to gui window
button.pack()

gui.mainloop()

执行和输出:
改变 tkinter 按钮的字体系列、字体大小以及字体粗细.png
我们将字体系列改为 Courier 然后重新运行该程序:

myFont = font.Font(family='Courier', size=20, weight='bold')

执行和输出:
我们将字体系列改为 Courier 然后重新运行该程序.png

4.5. 小结

本节中,我们通过详尽的示例,演示了如何改变 tkinter 按钮的字体系列、字体大小以及字体粗细。
参考资料

posted @ 2020-04-12 22:21  Defonds  阅读(101)  评论(0编辑  收藏  举报