Python UI菜单

菜单的分类也较多,通常可以分为下拉菜单、弹出菜单等。

添加顶层菜单

1. 使⽤ Menu 类来新建⼀个菜单, Menu 和其他的组件⼀样,第⼀个是parent ,这⾥通常可以为窗⼝

  1. 可以⽤ add_commmand ⽅法来为它添加菜单项, 如果该菜单是顶层菜单,则添加的菜单项依次向右添加。 如果该菜单时顶层菜单的⼀个菜单项,则它添加的是下拉菜单的菜单项。

  2. add_command 中的参数常⽤的有 label 属性,⽤来指定的是菜单项的名称, command属性⽤来指定被点击的时候调⽤ 的⽅法, acceletor 属性指定的是快捷键, underline 属性是是否拥有下划线。

  3. 可以⽤窗⼝的 menu 属性指定我们使⽤哪⼀个作为它 的顶层菜单。

有⼦菜单的情况

  1. 使⽤ add_cascade ,cascade 可以理解为“级联”,即它 的作⽤只是为了引出后⾯的菜单。

2.add_cascade 的⼀个很重要的属性就是 menu 属性,它指明了要把那个菜单级联到该菜单项上,当然,还必不可少 的就是 label 属性,⽤于指定该菜单项的名称。

测试代码如下:

from tkinterimport *

wnd = Tk()

menuBar = Menu(wnd)

fMenu = Menu(menuBar)

for item  in ["新建", "打开", "保存", "另存为", "退出"]:

    fMenu.add_command(label=item)


eMenu = Menu(menuBar)

for item    in ["复制", "粘贴", "剪切", "撤销"]:

    eMenu.add_command(label=item)

  
vMenu = Menu(menuBar)

for item    in ["默认视图", "全局视图", "显示/隐藏菜单"]:

    vMenu.add_command(label=item)
  
aMenu = Menu(menuBar)

for item    in ["版本信息", "帮助文档"]:

    aMenu.add_command(label=item)
  

menuBar.add_cascade(label="文件", menu=fMenu)

menuBar.add_cascade(label="编辑", menu=eMenu)

menuBar.add_cascade(label="视图", menu=vMenu)

menuBar.add_cascade(label="关于", menu=aMenu)

wnd["menu"] = menuBar
wnd.mainloop()

注意的是我们可以先把⼦菜单做好,然后再做上层菜单

运行效果:

文件菜单以及子菜单

编辑带单以及子菜单

视图菜单以及子菜单

关于菜单以及子菜单

上述只是UI的设计,并没有涉及菜单执行功能。

PythonUI多线程是指在使用Python编写界面程序时,可以利用多线程机制来提高程序的响应速度和用户体验。 在Python中,可以使用多种库来实现UI界面,如Tkinter、PyQt、wxPython等。这些库本身就支持多线程,在用户界面线程中运行的任务不应该是耗时的任务,因为这样会导致界面卡顿,用户无法正常操作。 要在PythonUI程序中使用多线程,可以使用Python内置的`threading`模块来创建线程。首先需要导入`threading`模块,然后定义一个函数作为线程的执行体。在函数中可以实现需要在后台执行的任务,如数据的加载、网络请求等。 接下来,可以使用`threading.Thread`类来创建一个线程对象,将前面定义的函数作为参数传入。然后调用线程对象的`start()`方法,即可启动线程。 在UI界面中,可以通过按钮、菜单或其他控件触发线程的启动,这样用户点击按钮后,程序会在后台启动一个线程来执行任务,并且不会阻塞用户界面的其他操作。 当线程执行完毕后,可以通过回调函数或其他方式将结果传递给UI界面,进一步更新界面的内容。 需要注意的是,在多线程程序中,需要合理地管理线程的生命周期,避免出现资源竞争、死锁等问题。可以使用互斥锁、条件变量等同步机制来确保线程的正确执行。 总结来说,PythonUI多线程是一种提高程序响应速度和用户体验的方法,通过在后台启动线程来执行耗时任务,避免阻塞用户界面。需要合理管理线程的生命周期,确保程序的正确执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flysh05

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值