首页 技术 正文
技术 2022年11月9日
0 收藏 601 点赞 3,610 浏览 15638 个字

1.标准对话框(tkinter.messagebox)

常用标准对话框

tkinter.messagebox.askokcancel

tkinter.messagebox.askquestion
tkinter.messagebox.askretrycancel
tkinter.messagebox.askyesno
tkinter.messagebox.showerror
tkinter.messagebox.showinfo
tkinter.messagebox.showwarning

tkinter.messagebox.askyesnocancel

from tkinter import *
from tkinter.messagebox import *import Pmwclass App:
def __init__(self,master):
self.result=Pmw.EntryField(master,entry_width=8,
value="",
label_text="Returned value:",
labelpos=W,labelmargin=1)
self.result.pack(padx=15,pady=15)root=Tk()
question=App(root)button=askquestion("question:",
"Oh,Dear,did somebody\nsay mattress to Mr Lambert?",
default="no")
question.result.setentry(button)root.mainloop()

>>

tkinter对话框和窗体

tkinter对话框和窗体

2.数据输入对话框(tkinter.simpledialog)

实例1:

from tkinter import *
import Pmw
from tkinter.simpledialog import *class App:
def __init__(self,master):
self.result=Pmw.EntryField(master,entry_width=15,value="",label_text="Returned value:",labelpos=W,labelmargin=1)
self.result.pack(padx=15,pady=15)root=Tk()display=App(root)retVal=askinteger("The Larch","What is the number of the Larch?",minvalue=0,maxvalue=50)
display.result.setentry(retVal)
root.mainloop()

>>

tkinter对话框和窗体

tkinter对话框和窗体

tkinter对话框和窗体

实例2:

from tkinter import *from tkinter.simpledialog import *
import tkinter.messageboxclass GetPassword(Dialog): def body(self,master):
self.title("Enter New Password") Label(master,text="Old Password:").grid(row=0,sticky=W)
Label(master,text="New Password").grid(row=1,sticky=W)
Label(master,text="Entry New Password Again:").grid(row=2,sticky=W) self.oldpw=Entry(master,width=16,show="*")
self.newpw1=Entry(master,width=16,show="*")
self.newpw2=Entry(master,width=16,show="*") self.oldpw.grid(row=0, column=1, sticky=W)
self.newpw1.grid(row=1, column=1, sticky=W)
self.newpw2.grid(row=2, column=1, sticky=W) return self.oldpw
def apply(self):
opw=self.oldpw.get()
npw1=self.newpw1.get()
npw2=self.newpw2.get() if not npw1==npw2:
tkinter.messagebox.showerror("Bad Password","New Passwords do not match")
else:
pass
root=Tk()
dialog=GetPassword(root)

>>

tkinter对话框和窗体

tkinter对话框和窗体

3.简单表格

from tkinter import *
import Pmw
import stringclass Shell:
def __init__(self, title=''):
self.root = Tk()
self.root.option_add('*font', ('verdana', 12, 'bold'))
Pmw.initialise(self.root)
self.root.title(title) def doBaseForm(self, master):
# Create the Balloon.
self.balloon = Pmw.Balloon(master)
self.menuBar = Pmw.MenuBar(master, hull_borderwidth=1,
hull_relief='raised',
hotkeys=1, balloon=self.balloon)
self.menuBar.pack(fill='x')
self.menuBar.addmenu('File', 'Exit')
self.menuBar.addmenuitem('File', 'command',
'Exit the application',
label='Exit', command=self.exit)
self.menuBar.addmenu('View', 'View user information')
self.menuBar.addmenuitem('View', 'command',
'Get user information',
label='Get info',
command=self.getStatus)
self.menuBar.addmenu('Help', 'About Example 10-4', side='right')
self.menuBar.addmenuitem('Help', 'command',
'Get information on application',
label='About...', command=self.help) self.dataFrame = Frame(master)
self.dataFrame.pack(fill='both', expand=1) self.infoFrame = Frame(self.root,
bd=1, relief='groove')
self.infoFrame.pack(fill='both', expand=1, padx=10) self.statusBar = Pmw.MessageBar(master, entry_width=40,
entry_relief='groove',
labelpos='w',
label_text='')
self.statusBar.pack(fill='x', padx=10, pady=10) # Add balloon text to statusBar
self.balloon.configure(statuscommand=self.statusBar.helpmessage) # Create about dialog.
Pmw.aboutversion('10.4')
Pmw.aboutcopyright('Copyright My Company 1999\nAll rights reserved')
Pmw.aboutcontact(
'For information about this application contact:\n' +
' My Help Desk\n' +
' Phone: 800 555-1212\n' +
' email: help@my.company.com'
)
self.about = Pmw.AboutDialog(master,
applicationname='Example 10-4')
self.about.withdraw() def exit(self):
import sys
sys.exit(0) def getStatus(self):
username = self.userName.get()
cardnumber = self.cardNumber.get()
self.img = PhotoImage(file='%s.gif' % username)
self.pictureID['image'] = self.img
self.userInfo.importfile('%s.txt' % username)
self.userInfo.configure(label_text=username) def help(self):
self.about.show() def doDataForm(self):
self.userName = Pmw.EntryField(self.dataFrame, entry_width=8,
value='',
modifiedcommand=self.upd_username,
label_text='User name: ',
labelpos=W, labelmargin=1)
self.userName.place(relx=.20, rely=.325, anchor=W) self.cardNumber = Pmw.EntryField(self.dataFrame, entry_width=8,
value='',
modifiedcommand=self.upd_cardnumber,
label_text='Card number: ',
labelpos=W, labelmargin=1)
self.cardNumber.place(relx=.20, rely=.70, anchor=W) def doInfoForm(self):
self.pictureID = Label(self.infoFrame, bd=0)
self.pictureID.pack(side='left', expand=1) self.userInfo = Pmw.ScrolledText(self.infoFrame,
borderframe=1,
labelpos='n',
usehullsize=1,
hull_width=270,
hull_height=100,
text_padx=10,
text_pady=10,
text_wrap='none') self.userInfo.configure(text_font=('verdana', 8))
self.userInfo.pack(fill='both', expand=1) def upd_username(self):
#upname = string.upper(self.userName.get())
#upname = self.userName.get().upper
upname = self.userName.get()
if upname:
self.userName.setentry(upname) def upd_cardnumber(self):
valid = self.cardNumber.get()
if valid:
self.cardNumber.setentry(valid)if __name__ == '__main__':
shell = Shell(title='Example 10-4')
shell.root.geometry("%dx%d" % (400, 350))
shell.doBaseForm(shell.root)
shell.doDataForm()
shell.doInfoForm()
shell.root.mainloop()

>>

tkinter对话框和窗体

4.tkinter变量

from tkinter import *class Var(Frame):
def __init__(self,master=None):
Frame.__init__(self,master=None)
self.pack() self.field=Entry()
self.field.pack() self.value=StringVar()
self.value.set("Jean-Paul Sartre")
self.field["textvariable"]=self.value
self.field.bind("<Key-Return>",self.print_value) def print_value(self,event):
print("Value is %s"%self.value.get())test=Var()
test.mainloop()

>>

tkinter对话框和窗体

5.活页夹标签

在3.7版本的python中,Pmw的NoteBook方法感觉废了~所以推荐使用ttk.Notebook方法

实例1:

#https://stackoverflow.com/questions/284234/notebook-widget-in-tkinter
from tkinter import ttk
import tkinter as tk
from tkinter.scrolledtext import ScrolledTextdef demo():
root = tk.Tk()
root.title("ttk.Notebook") nb = ttk.Notebook(root) # adding Frames as pages for the ttk.Notebook
# first page, which would get widgets gridded into it
page1 = ttk.Frame(nb)
text = ScrolledText(page1)
text.pack(expand=1, fill="both")
# second page
page2 = ttk.Frame(nb)
text = ScrolledText(page2)
text.pack(expand=1, fill="both") nb.add(page1, text='One')
nb.add(page2, text='Two') nb.pack(expand=1, fill="both") root.mainloop()if __name__ == "__main__":
demo()

实例2:

#https://stackoverflow.com/questions/16514617/python-tkinter-notebook-widget
from tkinter import *
from tkinter import ttkroot = Tk()
scheduledimage=PhotoImage(data="R0lGODlhgACAAPcAAAAAAAsLCxUVFRoaGjIZGSMjIy0tLTIrKzU0NDw8PEEWFkgVFX0AAGoWFmMYGEo3N0JCQkxMTFlOTlNUVF1SUlxcXH9HR2dXV2RkZGplZWxsbHVlZXxjZH1maHtsbHR0dH5ycnx8fKYSEqwTE6QdHbUdHb4aGowyMpYzM58wMKQoKLomJqMxMaI8PLc0NI5OTpxOToRaWqtAQKNLS7JERbVLTbdOUatVVa5ZWbNWVrtTVb1XWbJeXr9ZW7BfYINiY4xoaZRtboJ0dIp1dZJ4eKhgYKltbbRlZbhkZ7VnaL1maLVra6tycr5xcrR8fMBbXsNeYcViZMhlZslmaMNrbctqbM5ucNBucMV2d8l2d815etJzdNR3edZ6fNl8ftt/gYSEhIyMjI+QkJOTk5eYmJycnLKDg7yFhbePj7eVlbmdnaCfoKSkpKeoqKurq7ukpK+wsLS0tL2xsby8vMePj9aCg92DhOGGh+GHiOOLjOWPkOqUlO6bm/Kfn86pqdCrq8OyssK8vPOhocTExM3Nzd7FxdDPz8/Q0NXV1dbY2Nvb2+bOzufQ0OrV1eDf3+3c3N7g4OPj4+3i4ufp6evr6/Lt7e/w8PP19fn19ff4+Pz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAJsALAAAAACAAIAAAAj+ADcJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bGcPoJKlTDM6OZSJNUlRGpBhHlCKx+bkxTqSkcES2eTopDtOEEyJo3cq1awSnkxzF8Uq2rNmtD+BEqlQVwlmvE2CCIXTokKG7dfPqJTRmzlOxZAjdHWxIr2G8dvMOtluYUBm1lCbNITPIcN3CluNUePkhk6bPoEOHzgTHLyVHc9xgEs26tWvRc5xaijQHjufXogdB4IypUo4cN3Dg4CG8OA8eN34M+juIw43j0I8fic5jenXr1alDxxHDr6VJhH7+BN9+XPjz4HQ0DUrwUgMmSTqgyI8iZUqV+1aubKEChNDTSIME0cUdeOSRhx567KHgHnw0KMiDffTR4IJ7IKhHHnjc4UUQyyVFCBD5XXGFFVOUKEUUUTwBxRNJqIdAe+/poCKK9dlnRYhU/GAIc0BoQaCBFi7YYIQQTsiHghZimGEXQHQ4ySEcUCGiFfdNIcWJ8j3BoovtZQKfilDQZx9+IlLBwSFCRUIIBz7iUeCBCSo4ZB8QRnjkghcqaYcWHOwYWSJRbjEilVVcieKKW64H4yPxhUmfFPdVkd8WSnCAyF+GcJAFgQUGyeAeEtIJ4adIImigm1n8cGlSgCoh6I3+VZgoRZZPHMGlSxpc8uWKV9aHnxVbICFEImkioumPQFI4Z519fJqgqW7igYUHxLKlCAhIbAFrlVgiausgL+LqpYyORlGipDdaMQMIq0aCyAY4VOEmnMoOWeedpeoRrR03sBvJbNfOoMO2Jh7aQw9L3NqSe/DJp4SYY+aXggIhEDsJJIlgQEADV7yJoJzLFjlhqW7eIYMCw641FBgEODAwlSXS14N8CCvMEgaYMKriE2JGSuIJBoRBLKshGPDADkB+DDIfotqJ7x4HYngHCkEPPUkiYRiQAA2E3odiFFD0kGi4C48LJoqxojvFCxBU/FciGkAggRQe10ukIE7jiWD+yTBA8EG1Q4Xg1suxnnioli3OQTZLGow7M42Q/mrEBA988EEIH2jwwAQbcJF0hQw2yLTIpFaYJx5LTJCABpdbDsEEGQwa6xRfa9lDi+C+hMG4WfZq4413CCHBAcQfgAAFQpwxL71LNy3h09ASSIQECBR/gARCmOEFlSRaCXaKt2ui+EsZ5NwojRHfyMWeTbTfBBZ1GHjH50Iy7fzIpuub4R161IGF+1jIgh3sMCj7eI9mUMDd4laCM/j0IEUQm0K6JsWFLnTBC1/4gh04Rb/QjQ5vTLvTs043wAxaUAtcENSUqkS7KCghbOEbn0t2tyueXclGktqCDivoBQxq0A7+bzqQkEB1NzuRykIlK+EXetgFLqRwhbNrYZYSt0CVlI9RDnvU7/SzBSde0IcbnJenPlXE5+HLVHm4wwDtsEQvODGFryKUFFfUA1vJsCUZsITOypU+YHWRCz3M4A+DqDQGRahp+EvSqdaYQS80UYfaglXMDFYr8VUxJRiwRCPI9bVzUYmLf7zgDzn4sQQdyV4glBCF0JghNi7Rgk7U4bYKZ7A6WpJ8ldjk4x71K/28EZAYXKMY4wSyQ+LtkKsk4QCZ2MQnFnCSYNOSHS+JEgxQYhE0sIE2dcBNHezgYFrimRZLdCMRdbGLX1yiBu+gRgwyM5YqlGSsDhWmJxysB9z+zIEOtFmDGuAAE3dkSQauyYCCGvSgCE2oQhfK0IY6dKE3ACg1T5LHSvzhohjNqB8yytGOevSjIO2oH0ZK0pKalKSFwEQcJmqSPGoiE5fIhExnGlOZxvSmMK3pJXA6057uFKZAxelOh3oJTBSVqDu1xCUswdSmWqISTS3qLWdoiZfmdKhXFWpQtzpUo2L1q0G9qVe9utSlWoISZ6WEWtU6ibYKpa1tpUQm4mAA8l1CE0TNqk5/+lW+IjWvR82rXpXK1LW6NRKRgERiHcHYSCgCsZCdBCbgwNKSZBKvOyXrX4mqWaR2drOgXWpkJoFYSJhWEahNhGpXy9pEoPYpbqj+K1UxC9rPhva2fyXsWSchCdJCNrWJQIRwCXMXwRAGEY9tg2xbctmhKjWp0H3ucwN7iUo4F7qhfSpbDwsJRQQXM4YgxCDGO945jDcQ5B0EIQSjiDUs92ZVfa5tNzvf2xY2MmpNE2O9i4jikncOAI5DbOJA4ALHBsCVIcN7GVhVs+q2rEx1sIMJW10KmzWplKiEYeGK2NT2d73lHTAcRuyGNrRhDWwowxpUzAY2tKE0YSiA7iqhCQtjQrqYMOp0b0zU6ZZ1qRrWcFpHi1hH8BfEgxhwHOBg4hSTYQxiCEOUxUDlKothDGX4gIxnSIkaO3XCTo1qmL+s3bXidxKUkMT+bxXx4UEEYsBucAMb1kCGKPeEymPAcotXTOcri+EDFaisSDKZCabyOMKItsSNdWvhp1YXzWaGdGTUbOTgijfJS5Zziu0sZTGQIQ6DSIQkbjPUz1hCEYaYwxqgLDiVVCC+Y461rJtq5loTucPBPUR5M33iMowBDD0pwyAccZvP2PQS4r2raChxCDiMIQwZqKZcZ83oMEP1vrY+82GPvGsm9xnYUnaDIkBDU6S2gQxIlSloKDGZP5ukAtOOtVqpvdsz9zauHE6sd8Pr5iW3IcXPBgOV49Blq3a1x5agc2hvkwnHhAEDJMEAjekda6iiGa6RHi1vI2HkNsdGznQOA7D+xdCGgmdVrzudRBnQ7VfPGnsQYgADe0IC70zMW7tnzTlada7xe7f13qNVM8fZHN4Ay9nXIg/DGAwBmvoSdRJPxm1Rb6MUMWwGJBOYhM2duvMxZxjjcMV32PWrWn7Xxg0rjjmw11BwqTsXEnCAhI9vC5o5hCEEWJdrrTWMVlvDVRI+Jy1v/17kfY/X32kHA7Dj4BmU97XHcJf740P7GUTE/CNZ37qZh5zWsHs+8IcdeiLMDge01xncg/gMaB2fVEi0QfJuL7UmIkGGMHgk82vF9pA/7/nB53u/iBBvbHqt9jAQQvWxv+klLlaGRMzd7Z+hBBnA0JEISFbS2f45Yt3+qmbBR6K33y/86Pt99OIfn7axz+nFyHCI57vdM5S4/Eayjgm/57f3nn9r6PebCF0PIg5H92vAFgjIl3w9lgiBMQkGSFSfEQl3txHWt3zZ9lagJ3h/Z4GlZWlJBgcAd3dh4AYvtYBIdTVjMAgKiFus5xlYE20ZMQGRsHxg532QNYNCh1jdR1qMhTH9hWknVnvARgarIYJIZQmJIAZxAAlCmFmfMQhhsBsY4YIwKAkaJxT39n0cdoFvJX6GUF4BqHhhAAkhmIRJVYSvJ4Y79RlrQH0YYX1sMXYz+IZw+IaM5QjftYFtsHKKBwZzEIZm+CQkB3tJ6BmQEAYasIYKeG/+NZgmMqiI2yeH+0YIgQCAfRYCYFAGnmGGznUInuZ8mPgZdreGL5iFcTiKcchYdVgbd/hslHgI6GeGlnAIAseJnWgJYfABFxEB/0KKutiIRVZp/LZkIUeJZHCJmJhUhxACIdB+xShTg6CGFYGLszGDvvWG0ziK/LeFw7dqdwcGrIiJV/WKmHMIJ+iNlyAGhfiMuVhkcqiOkKVYjgBZ71hpwZdkcnZ6YDAGxCh1rPd0x/gBJiiCKOcZceCME4GLlKBYu6iLc8hfh2d62xgHfFiMr5g5/xiIXTV7YHB1Bfkfi5VYigUJ78hxicVxCBmP+naKTOZrYECJ47aPIshsH4D+AXEwjsr3V59FYUCFCWSAdxQBje24jiYJh/FoZGwmfBxYBmJAiWJwbMVojCGAAXHndti2VnyHVjI1BwQZEQnQBiH2Zm6WZOiFXm4WCOiFYAB2lnFgF/TIBrVHibaRgkJICYkQk2sgeVlFVpMwZNmWe5mgCGDghBKBABpgCDkGWtJ1XZylYeNFCMPHBqrIjRGJglI3kRhABoBIVJHxHReHX36HZjdGiBQBARoQAojwUlZlVQx3mjNlmjm1mNmoiiEwCa1YjHIZk0Izd9q2l3tZVGXAkxIRAdMXAoqQCavRU8QpU5hgnD51Y+bFmHFwhzFHiTUphlkFkxhQMdOVZmL+h38/N2lxFVNx4JsRMQFuAAfICAlGhZzqOVPJmWPt6VzmZYdIiYz4OJuYCJMV8AGIUFhxxVa6WWvYpx7iCRETMAeG4AaUGAljpXxG1aBHVZhmFZ+1sWmYswZM2ZSXYJ0a4B+ep3H4pnEg6qGYcAi2OBETsByD0AaUOI6VYF1I5aJIpVYSyoG1JwQawAYXaoCsN5EVIJOH8FqK+HO9Z4Wk5XO9hQlwM3Pj6ReIMAhs8AFhQJM71aJ/ZV3Xxm7ldZRJqQFtEJmTZ4DMpgEVUAEhQAZuAGqVgQiuJZJEqn8VKFmKoAFKSqAmyGZOCqWUcGHVNaVJ5aJnxRYSWn4hoAH+b7mAeqVXlEAIYjqmjIoBHyAEYbAGpaFehqCmj7V9F3hxmBAJGhABJuoXqNWka/ABYkClUWVdYlZdGlYVXEihGsB2kJAXhKCALolbcqkGFTABurqrupqrvZoBHwAGZFAahOBa79hWlzZeTyKnnzp0djqqY/BU0pphf5pz9yUZWQqdgzoGiRAHY0AG4JoIX+p2cikHJmABrMM6lqMB6Zo57mo5liOsXPlYk8CWK7cGiDAHzCoRBepY8hgIWUYGOMd1TNWiu8WqPDifGlAGZ2VapuV+sXc1gbACKyAH6nVp65WxGrtehSFcxvpWqiVcipCoGiBoB9GvqJWyW0gGH8D+BjuXYWpVlZ0nCWiKikgJBhoQBtMphL3hWIPgAiUgB8g1kjMYkj+5WEYLh545BxDXrCmbWocwB2Nwo9mml6OFpv/nBirJOneFiaSlCINAA0GLCAhZjbpYhZj6hpSACWxwjvw6B0+bsv0XCCzrBj2HZr1lWJEAB+RVeiGXOVq3cFL3tYPAA0G7IwmZuHC4tmLAgvzqFKrlXa61b3NgjnYbgx4aCW6gXhvIlrWIAd0Yl/pmCEswAm+AJoqbupDFVCGgkUtKlHHrXYzZuATHneC3ucJXYmVwdxgAgn9Vq9HoWIfgBKb7o0A5gwj5hgh5qXE4GxgAmOMZB3ToXY2wWpL+O7sYMAcbV6Rpgli4i2loNwaDCgYFuFmD9VuHgAbFy7yqq7gKyLTPOAdEOblPa2l2hwHL4X3V+L0AVmLTx66QUKtP95GKcAhqIAJqYLzwSIpJ+4aX2sBPgQnQVhETEAeSu1pqKrJ2CgcPtxyjyJVmV34xCZECfJCmlViI8AYkkAY/eqmP9cKOoFiKEMMx/FinZWSO1WEvnMP/gQFx0ZNw2wiSS70XHFz/B20eLIebO49zIAfhCwYYAAY7q1cXc8JsJgcqwMLMa5IgWVoQLJJfXFo5bAlx4LgmasHWm8bedWRwAAYfQAgxzHHxyJWHcGmpcYeEiAGIsLNJ5ZEOCwn+iBAILMDCxIJaOLzDMwzDiYzIM0yUjvXCD0sJT2kRFcxfatparRVebjAEH2AIJwySjsAGg9AYPLgGYiAEGBCt2HVWPPxbTdoCZnAIxJK0QNph6jiHOUi0RuvCj2UJg4ABJpsQEQAH1IvJGFy9o0cI5qmf3UXDXJnM2bq7GoABzjeDimDF9WsIM2AGhkC/T/vIKQvOhtzIsWvIh/wUlJCRtwgHwSVcHhuyGQzPumaepIla3cWViKCWGxi+TykGagXJ75jIjjV6RcDNk2vLO8zDQBrQc8jDMpzD4WwJTBvMwhwHxuzOyMxa+ZyimINcqCXK/XUXSWazeTwISQG79pz+WoZgBEwgyzMszuUcuyg9zjP9WkkBaBghAezszu/M0z4tXLrGBsjoWonABoQQ0mYHgGwJBsAKCafxWERZaYdgBkxQqeSsw4X3yCKpyI31wl5tZPGIZmTQtOscXKrVCP1l1u5s1hi8hUI9LO01CMPFb6X8Z6kcGSkL1sGlBlVtqbHbXd9czjXtyOP8WJQwCBngqRgBAewMz5ccz48d2eK1BpRY1KE218I3fLsLaHGgZnndf29Q1d4ct4kgxDEttzWdWsAlFHDjuhbB2D8d27I9j6MaBsJWdoWR1CkJbfibFHILCEZg1ae9yMNNh/t12iHZuhsBAcJ2ls7t3GT53M7+/ZwPF8Urt3LgWmc6sZKZM6YZMKuRQNSAIMuJYNyRu8YXvMZEjd6Tq8aq7Vqkpc7LDQEJAAH0Xd/2Td/5/QD5nd/4fd8GgAAFMAACMAAEXuACkOAKruAToAHiONBqXNoyPdr1G7epPcNq9nAU/RAA0OEe/uEgHuIiPuIkHgAN7h/hXeFpvOL0y1pCHLkw3t7EglhhUAFzehUNAQAC0KNOAeGqLbmNUGnl/eNnXd4wPsREXd7uAmjQi+MEWgFkoMOYjOTGnORWPuWINQcZEGhOXhEQQKY7QoerJeasheQceN5oXsxKThS52uUXYQBjygYvbNYZfdaX3Ahs2Vp1Hrm2iBUIYqrYbn4RX06ojvAIdJjBj63Wed7OPB25ikUIGfnDgZ4RBaCrC4smwKXWHtsG3BqyZv3SihCeuXrjk44RBRABE1ABejjkma6md2i95DwIZZABurrhpa6VvfoBZWCgQ45YzwnYutYGUKyrEbBgt/4RBZAAqI7qFbAByAhsQuDGPhwBEjABEGDsx04SAxDg9s0VbpEAAp7t4j7u5F7u5n7u6J7u6r7u7N7u7v7u8B7v8j4TAQEAOw==")
note = ttk.Notebook(root)tab1 = ttk.Frame(note)
tab2 = ttk.Frame(note)
tab3 = ttk.Frame(note)Button(tab1, text='Exit', command=root.destroy).pack(padx=100, pady=100)
#Button(tab2, text='help', command=root.destroy).pack(padx=100, pady=100)note.add(tab1, text = "Tab One",image=scheduledimage, compound=TOP)
#note.add(tab1, text = "Tab One", compound=TOP)
note.add(tab2, text = "Tab Two")
note.add(tab3, text = "Tab Three")
note.pack()root.mainloop()

>>

tkinter对话框和窗体

6.进度条程序

简单的进度条

from tkinter import *class ProgressBar:
def __init__(self,master=None,appearance=SUNKEN,width=100,height=18,background="gray",fillColor="blue",
labelText="说点什么好呢",labelColor="yellow",labelFont="Verdana",bd=2,value=50,min=0,max=100,orientation="horizontal"):
self.master=master
self.width=width
self.height=height
self.fillColor=fillColor
self.labelText=labelText
self.labelColor=labelColor
self.labelFont=labelFont
self.value=value
self.min=min
self.max=max
self.orientation=orientation self.frame=Frame(master,relief=appearance,bd=bd)
self.frame.pack() self.canvas=Canvas(self.frame,width=width,height=height,bd=0,
highlightthickness=0,background=background) self.scale=self.canvas.create_rectangle(0,0,width,height,fill=fillColor) self.label=self.canvas.create_text(self.canvas.winfo_reqwidth()/2,height/2,text=labelText,anchor="c",fill=labelColor,font=self.labelFont) self.canvas.pack(side=TOP,fill=X,expand="no") self.update() def update(self):
value=self.value
if value>self.max:
value=self.max
if value<self.min:
value=self.min if self.orientation=="horizontal":
self.canvas.coords(self.scale,0,0,float(value)/self.max*self.width,self.height)
else:
self.canvas.coords(self.scale, 0,
self.height - (float(value) / self.max * self.height),
self.width, self.height)

编程思路如下图,进度条变化,通过改变scale的位置来实现,变量只有一个,即右下角坐标(x,y)的x值

tkinter对话框和窗体

上一篇: maxima安装&使用
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,491
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,492
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,132
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,293