Python图形化界面模块之tkinter踩坑之旅

from tkinter import*
from tkinter import ttk

def printInfo():
    # 清理entry2
    entry2.delete(0, END)
    # 根据输入半径计算面积
    R=int(entry1.get())
    S= 3.1415926*R*R
    entry2.insert(10, S)
    #清空entry2控件
    entry1.delete(0, END)
#初始化Tk()
myWindow = Tk()
#设置标题
myWindow.title('Python GUI Learning')

width = 350
height = 350
#获取屏幕尺寸以计算布局参数,使窗口居屏幕中央
screenwidth = myWindow.winfo_screenwidth()
screenheight = myWindow.winfo_screenheight()
alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth-width)/2, (screenheight-height)/2)
myWindow.geometry(alignstr)
#设置窗口是否可变长、宽,True:可变,False:不可变
myWindow.resizable(0, 0)

# 创建一个菜单项,类似于导航栏,顶层菜单
menubar=Menu(myWindow)
# 创建菜单项
fmenu1=Menu(myWindow)
for item in ['新建','打开','保存','另存为']:
    # 如果该菜单是顶层菜单的一个菜单项,则它添加的是下拉菜单的菜单项。则他添加的是下拉菜单的菜单项。
    fmenu1.add_command(label=item)

fmenu2=Menu(myWindow)
for item in ['复制','粘贴','剪切']:
    fmenu2.add_command(label=item)

fmenu3=Menu(myWindow)
for item in ['大纲视图','web视图']:
    fmenu3.add_command(label=item)

fmenu4=Menu(myWindow)
for item in ["版权信息","其它说明"]:
    fmenu4.add_command(label=item)

# add_cascade 的一个很重要的属性就是 menu 属性,它指明了要把那个菜单级联到该菜单项上,
# 当然,还必不可少的就是 label 属性,用于指定该菜单项的名称
menubar.add_cascade(label="文件",menu=fmenu1)
menubar.add_cascade(label="编辑",menu=fmenu2)
menubar.add_cascade(label="视图",menu=fmenu3)
menubar.add_cascade(label="关于",menu=fmenu4)

# 最后可以用窗口的 menu 属性指定我们使用哪一个作为它的顶层菜单
myWindow.config(menu=menubar)

#标签控件布局
ttk.Label(myWindow, text="input").place(x=10, y=10)
ttk.Label(myWindow, text="output").place(x=10, y=60)

#Entry控件布局
entry1= ttk.Entry(myWindow)
entry2= ttk.Entry(myWindow)
entry1.place(x=60, y=10, width=150, height=30)
entry2.place(x=60, y=60, width=150, height=30)

# ttk使用Combobox取代了Listbox
cb = ttk.Combobox(myWindow, font=24)
# 为Combobox设置列表项
cb['values'] = ('Python', 'Swift', 'Kotlin')
cb.place(x=60, y=110, width=150, height=30)


#Quit按钮退出;Run按钮打印计算结果
ttk.Button(myWindow, text='Quit', command=myWindow.quit).place(x=10, y=160)
ttk.Button(myWindow, text='Run', command=printInfo).place(x=100, y=160)

# 先定义顶部和内容两个Frame,用来放置下面的部件
topframe = Frame(myWindow, height=80)
contentframe = Frame(myWindow)
topframe.pack(side=TOP)
contentframe.pack(side=TOP)
rightbar = Scrollbar(contentframe, orient=VERTICAL)
bottombar = Scrollbar(contentframe, orient=HORIZONTAL)
textbox = Text(contentframe, yscrollcommand=rightbar.set, xscrollcommand=bottombar.set)
# -- 放置位置
rightbar.pack(side=RIGHT, fill=Y)
bottombar.pack(side=BOTTOM, fill=X)
textbox.pack(side=LEFT, fill=BOTH)
# -- 设置命令
rightbar.config(command=textbox.yview)
bottombar.config(command=textbox.xview)

#进入消息循环
myWindow.mainloop()

https://blog.csdn.net/superfanstoprogram/article/details/83713196

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值