再再补充:通过排查发现,是金山词霸造成的。那么新问题出现了:为何会这样,如何避免呢?试了几个windows应用,比如记事本、pycharm都是正常的。
再补充:我的PC是win10专业版。把程序打包后,让同事测试,发现win7、10、11下,菜单都是正常的。这表明不是代码的问题,而应该是环境里有某项冲突所致。而且,因为我的PC上,其他应用程序是正常的,这意味着什么呢?
补充:刚才克隆了别人的一个记事本程序,运行后发现也存在这个问题。他的代码也是只使用了command方式,未使用bind方式。
由此看来,是我PC的环境有问题?
=================================
我正在学习Python中。近期编写了一个tkinter程序,但是遇到一个菜单方面的异常:当点击菜单时,子菜单能出现,但是一但松开鼠标左键,菜单就消失了。不过如果一直按住左键,把光标移动到菜单项上再释放,功能可以正常实现。
代码反复查看过多次,网上也没找到同类问题。请各位指点。多谢
下面是那部分代码(完整代码太多,此处是Menu那部分)
```python
# menu开始
## 创建菜单栏
menubar = tk.Menu(root, type="menubar")
## 创建菜单栏的子菜单对象
menu_file = tk.Menu(menubar, tearoff=False, type="normal")
menu_edit = tk.Menu(menubar, tearoff=False, type="normal")
menu_about = tk.Menu(menubar, tearoff=False, type="normal")
menubar.add_cascade(label='文件', menu=menu_file) # 把子菜单menu_file挂装到菜单栏
menubar.add_cascade(label='编辑', menu=menu_edit) # 把子菜单menu_edit挂装到菜单栏
menu_file.add_command(label='导出当前页', command=exportRec) # 在menu_file子菜单中添加命令项‘导出’
menu_file.add_command(label='退出', command=root.destroy) # 在menu_file子菜单中添加命令项‘退出’
menu_file.add_separator()
menu_file.add_command(label="About", command=showAbout) # 在子菜单menu_file中添加一个命令“显示关于信息弹窗”
menu_edit.add_command(label="添加记录", command=addRec) # 在子菜单menu_edit上添加一个命令"添加记录"
# 把完成装配的菜单(窗帘),挂到root(墙)上去
root["menu"] = menubar
# menu完成
```