tkinter python2_需要Tkinter(Python2.7.2)帮助

您可以调用pack_forget()隐藏小部件,然后(稍后)

pack再次显示它们:

Tkinter是单线程的,mainloop运行主事件循环。因此,您不应该调用mainloop两次。#Dev by Mkee

import Tkinter as tk

import sys

class Shuffle(object):

def __init__(self,master=None):

self.master=master

self.text=tk.Text(master)

def hide(self):

self.text.pack_forget()

def show(self):

self.text.pack(side=tk.LEFT, padx=5, pady=5)

class Buttons(object):

def __init__(self,master=None):

self.master=master

self.red = tk.Button(self.master, text="Red", bg="red", fg="white")

self.green = tk.Button(self.master, text="Green", bg="green", fg="black")

self.blue = tk.Button(self.master, text="Blue", bg="blue", fg="white")

def hide(self):

self.red.pack_forget()

self.green.pack_forget()

self.blue.pack_forget()

def show(self):

self.red.pack(side=tk.LEFT,expand=tk.YES,fill=tk.BOTH)

self.green.pack(side=tk.LEFT,expand=tk.YES,fill=tk.BOTH)

self.blue.pack(side=tk.LEFT,expand=tk.YES,fill=tk.BOTH)

class MainApp(object):

def __init__(self,master=None):

self.master=master

app=self.app=tk.Tk()

app.title("Mkee's Tools")

app.geometry('300x200')

self.shuffle=Shuffle(master)

self.buttons=Buttons(master)

self.current=None

menubar=tk.Menu(app)

program_menu=tk.Menu(menubar)

program_menu.add_command(label='Shuffle',

command=lambda: self.show(self.shuffle))

program_menu.add_command(label='Buttons',

command=lambda: self.show(self.buttons))

program_menu.add_command(label='Quit',command=sys.exit)

menubar.add_cascade(label='Programs', menu=program_menu)

app.config(menu=menubar)

def show(self,obj):

if self.current != obj:

try: self.current.hide()

except AttributeError: pass

self.current=obj

obj.show()

def main():

m=MainApp()

m.app.mainloop()

if __name__=='__main__':

main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值