tkinter可以做出多复杂的界面


tkinter可以做出多复杂的界面


参考下下面的实例:

测试开发实战:python GUI作业:tkinter控件改变背景色测试开发实战:python GUI作业:tkinter grid布局
使用tkinter生成如下窗口:

tkinter可以做出多复杂的界面



tkinter可以做出多复杂的界面



tkinter可以做出多复杂的界面



tkinter可以做出多复杂的界面


参考资料本文最新版本地址本文涉及的python测试开发库 谢谢点赞!本文相关海量书籍下载python工具书籍下载-持续更新python GUI工具书籍下载-持续更新参考代码#!/usr/bin/python3# -*- coding: utf-8 -*-# 技术支持:https://www.jianshu.com/u/69f40328d4f0 # 技术支持 https://china-testing.github.io/# https://github.com/china-testing/python-api-tesing/blob/master/practices/tk2.py# CreateDate: 2018-11-27import tkinter as tkfrom tkinter import ttkfrom tkinter import scrolledtextfrom tkinter import Menu# Create instancewin = tk.Tk() # Add a title win.title("Python GUI") tabControl = ttk.Notebook(win) # Create Tab Controltab1 = ttk.Frame(tabControl) # Create a tab tabControl.add(tab1, text=\u0026#39;Tab 1\u0026#39;) # Add the tabtab2 = ttk.Frame(tabControl) # Add a second tabtabControl.add(tab2, text=\u0026#39;Tab 2\u0026#39;) # Make second tab visibletabControl.pack(expand=1, fill="both") # Pack to make visible# LabelFrame using tab1 as the parentmighty = ttk.LabelFrame(tab1, text=\u0026#39; Mighty Python \u0026#39;)mighty.grid(column=0, row=0, padx=8, pady=4)# Modify adding a Label using mighty as the parent instead of wina_label = ttk.Label(mighty, text="Enter a name:")a_label.grid(column=0, row=0, sticky=\u0026#39;W\u0026#39;)# Modified Button Click Functiondef click_me(): action.configure(text=\u0026#39;Hello \u0026#39; + name.get() + \u0026#39; \u0026#39; + number_chosen.get())# Adding a Textbox Entry widgetname = tk.StringVar()name_entered = ttk.Entry(mighty, width=12, textvariable=name)name_entered.grid(column=0, row=1, sticky=\u0026#39;W\u0026#39;) # align left/West# Adding a Buttonaction = ttk.Button(mighty, text="Click Me!", command=click_me) action.grid(column=2, row=1) # Creating three checkbuttonsttk.Label(mighty, text="Choose a number:").grid(column=1, row=0)number = tk.StringVar()number_chosen = ttk.Combobox(mighty, width=12, textvariable=number, state=\u0026#39;readonly\u0026#39;)number_chosen = (1, 2, 4, 42, 100)number_chosen.grid(column=1, row=1)number_chosen.current(0)chVarDis = tk.IntVar()check1 = tk.Checkbutton(mighty, text="Disabled", variable=chVarDis, state=\u0026#39;disabled\u0026#39;)check1.select()check1.grid(column=0, row=4, sticky=tk.W) chVarUn = tk.IntVar()check2 = tk.Checkbutton(mighty, text="UnChecked", variable=chVarUn)check2.deselect()check2.grid(column=1, row=4, sticky=tk.W) chVarEn = tk.IntVar()check3 = tk.Checkbutton(mighty, text="Enabled", variable=chVarEn)check3.deselect()check3.grid(column=2, row=4, sticky=tk.W) # GUI Callback function def checkCallback(*ignoredArgs): # only enable one checkbutton if chVarUn.get(): check3.configure(state=\u0026#39;disabled\u0026#39;) else: check3.configure(state=\u0026#39;normal\u0026#39;) if chVarEn.get(): check2.configure(state=\u0026#39;disabled\u0026#39;) else: check2.configure(state=\u0026#39;normal\u0026#39;) # trace the state of the two checkbuttonschVarUn.trace(\u0026#39;w\u0026#39;, lambda unused0, unused1, unused2 : checkCallback()) chVarEn.trace(\u0026#39;w\u0026#39;, lambda unused0, unused1, unused2 : checkCallback()) # Using a scrolled Text control scrol_w = 30scrol_h = 3scr = scrolledtext.ScrolledText(mighty, width=scrol_w, wrap=tk.WORD)scr.grid(column=0, row=5, sticky=\u0026#39;WE\u0026#39;, columnspan=3) # First, we change our Radiobutton global variables into a listcolors = # We have also changed the callback function to be zero-based, using the list # instead of module-level global variables # Radiobutton Callbackdef radCall(): radSel=radVar.get() if radSel == 0: win.configure(background=colors) # zero-based elif radSel == 1: win.configure(background=colors) # using list elif radSel == 2: win.configure(background=colors)# create three Radiobuttons using one variableradVar = tk.IntVar()# Next we are selecting a non-existing index value for radVarradVar.set(99) # Now we are creating all three Radiobutton widgets within one loopfor col in range(3): curRad = tk.Radiobutton(mighty, text=colors, variable=radVar, value=https://www.zhihu.com/api/v4/questions/30665278/col, command=radCall) curRad.grid(column=col, row=5, sticky=tk.W) # row=5 ... SURPRISE!# Create a container to hold labelsbuttons_frame = ttk.LabelFrame(mighty, text=/u0026#39; Labels in a Frame /u0026#39;)buttons_frame.grid(column=0, row=7) # Place labels into the container elementttk.Label(buttons_frame, text="Label1").grid(column=0, row=0, sticky=tk.W)ttk.Label(buttons_frame, text="Label2").grid(column=1, row=0, sticky=tk.W)ttk.Label(buttons_frame, text="Label3").grid(column=2, row=0, sticky=tk.W)# Exit GUI cleanlydef _quit(): win.quit() win.destroy() exit() # Creating a Menu Barmenu_bar = Menu(win)win.config(menu=menu_bar)# Add menu itemsfile_menu = Menu(menu_bar, tearoff=0)file_menu.add_command(label="New")file_menu.add_separator()file_menu.add_command(label="Exit", command=_quit)menu_bar.add_cascade(label="File", menu=file_menu)# Add another Menu to the Menu Bar and an itemhelp_menu = Menu(menu_bar, tearoff=0)help_menu.add_command(label="About")menu_bar.add_cascade(label="Help", menu=help_menu)name_entered.focus() # Place cursor into name Entry#======================# Start GUI#======================win.mainloop()


推荐阅读