tkinter教程4:控件LabelFrame和Entry
本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.
环境:
python版本:3.5
开发环境:pyCharm
源码:
LabelFrame:
LabelFrame可以包含若干个子控件,在以下例子中,将3个单选框作为子控件。
import tkinter as tk
import threading
def main():
threading.Thread(target=gui_thread).start()
def gui_thread():
root = tk.Tk()
app = App(root)
root.mainloop()
class App:
def __init__(self, root):
frame = tk.Frame(root)
frame.pack()
# LabelFrame
self.group = tk.LabelFrame(frame, text='请选择一种颜色')
self.group.grid(row=0, column=0)
color_arr = [('red', 1), ('gree', 2), ('blue', 3)]
self.v1 = tk.IntVar()
self.v1.set(1)
row_num = 0
for color, num in color_arr:
tk.Radiobutton(self.group, text=color, variable=self.v1, value=num).grid(row=row_num, column=0)
row_num += 1
self.label = tk.Label(frame, textvariable=self.v1)
self.label.grid(row=0, column=1)
if __name__ == '__main__':
main()
运行结果:
Entry:
import tkinter as tk
import threading
def main():
threading.Thread(target=gui_thread).start()
def gui_thread():
root = tk.Tk()
app = App(root)
root.mainloop()
class App:
def __init__(self, root):
frame = tk.Frame(root)
frame.pack()
tk.Label(frame, text="输入框:").grid(row=0, column=0)
# Entry
self.v = tk.StringVar()
self.entry1 = tk.Entry(frame, textvariable=self.v)
self.entry1.grid(row=0, column=1)
self.entry1.insert(0, '012')
self.entry1.insert(1, 'abc')
# self.entry1.delete(0, tk.END)
tk.Button(frame, text='打印', command=lambda x=self.v: print(x.get())).grid(row=1, column=0)
if __name__ == '__main__':
main()
运行结果:
如果输入库中输入的是密码等字符,可以在Entry的参数中增加show='*'。这样显示出来的就是字符'*'。