“按钮”应该是GUI应用中使用最广泛的控件了吧,Python tkinter中的“按钮”是Button类。
- 1.1 构造函数:
tk.Button(parent, option, ...)
属性(option)包括“文本(text)”、“字体(font)”、“背景色(bg)”等。
- 1.2 常用功能:
**grid(row=0, column=0):
随着主窗体中的控件越来越多,就要为每个控件指定所在的行(‘row’)和列(‘column’)。还可以通过‘columnspan’和‘rowspan’指定控件占用的列数和行数。
**‘command’属性:
按钮最核心的内容,自然是当按钮被按下的时候要做出的响应,也就是指定被调用的函数。
这里通过‘command’属性指定【按钮-1】被按下的时候,调用函数‘bt1_clicked(...)’。
bt1['command'] = lambda:bt1_clicked(...)
**‘state’属性:
bt1['state'] = tk.DISABLED
按钮的‘state’属性控制按钮是否可用,默认值为‘tk.NORMAL’。
如果设置为’tk.DISABLED' ,则按钮不响应鼠标点击事件且文本会变成灰色——这样就可以控制按钮在某些条件满足以后才可用。
**事件绑定:
将【回车键】绑定到按钮‘bt1’上。
win.bind('
输入框
“输入框”控件用于输入单行文本,Python tkinter中的“输入框”控件是tk.Entry类。
- 2.1 构造函数:
tk.Entry(parent, option, ...)
属性(option)包括“字体(font)”、“背景色(bg)”、“前景色(fg)”等。
[width]:输入框可以容纳的字符数。
- 2.2 常用功能:
**‘show’属性:
这个属性在输入框作为密码输入框时非常有用,比如设置['show']='$',则输入框中的内容都显示为'$'。
**get()函数:
返回输入框中的内容(字符串)。
**delete(first, last=None)函数:
删除输入框中索引[first, last)范围内的内容。
示例点击【按钮-1】(或点击【回车键】),将输入框中的内容显示在上面的标签中。
import tkinter as tk from tkinter import font def bt1_clicked(lbl, ent1): lbl['text'] = ent1.get() ent1.delete(0, tk.END) if __name__ == '__main__': win = tk.Tk() win.title('*** Python tkinter ****') win.geometry('600x300 600 100') win.resizable(width=True, height=False) lbl_font = font.Font(family='Courier', name='lbx_font', size=20, weight='bold', slant='italic') lbl1 = tk.Label(win, font=lbl_font, text='标签-1', anchor=tk.CENTER, bg='#0f0') lbl1.grid(ipadx=10, ipady=10, padx=20, pady=20, row=0, column=0) lbl1['text'] = '你好' ent1 = tk.Entry(win, width=25, font=lbl_font, bg='yellow', fg='red') ent1.grid(row=1, column=0, padx=10, ipadx=10, ipady=10) #ent1['state'] = tk.DISABLED ent1['show'] = '$' bt_font = font.Font(family='Arial', name='btx_font', size=20, weight='bold') bt1 = tk.Button(win, text='按钮-1', font=bt_font, bg='cyan') bt1['command'] = lambda:bt1_clicked(lbl1, ent1) #bt1['state'] = tk.DISABLED bt1.grid(row=1, column=1, ipadx=10, ipady=10, padx=10, pady=10) win.bind('