- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于我的 Tkinter GUI,我已经创建了一个菜单和一个状态栏。但是,当鼠标悬停在菜单项上时如何显示描述?
请运行以下代码(例如,当鼠标悬停在菜单项“关于”上时,状态栏应写“信息”:
from Tkinter import Tk, Frame, BOTH, Menu, Label, SUNKEN, X, BOTTOM
class Application(Frame):
def __init__(self, parent):
Frame.__init__(self, parent, background = "white")
parent.configure(bg = "black")
self.pack(fill = BOTH, expand = True, padx = 20, pady = 20)
self.parent = parent
# Maximize window
self.screenWidth = self.parent.winfo_screenwidth() - 5
self.screenHeight = self.parent.winfo_screenheight() - 110
self.parent.geometry('%dx%d+%d+%d' % (self.screenWidth, self.screenHeight, 0, 0))
self.parent.resizable(0, 0)
# Status bar
self.statusBar = StatusBar(self.parent)
self.statusBar.pack(side = BOTTOM, fill = X)
# Menu bar
menubar = Menu(self.parent)
self.parent.config(menu = menubar)
self.commandMenu = Menu(menubar, tearoff = 0)
self.commandMenu.add_command(label = "Rename", command = self.onRename)
menubar.add_cascade(label = "Command", menu = self.commandMenu)
self.helpMenu = Menu(menubar, tearoff = 0)
self.helpMenu.add_command(label = "About", command = self.onAbout)
menubar.add_cascade(label = "Help", menu = self.helpMenu)
def onRename(self):
pass
def onAbout(self):
pass
class StatusBar(Frame):
def __init__(self, master):
Frame.__init__(self, master)
self.label = Label(self, bd = 1, relief = SUNKEN, anchor = "w")
self.label.pack(fill=X)
def set(self, format0, *args):
self.label.config(text = format0 % args)
self.label.update_idletasks()
def clear(self):
self.label.config(text="")
self.label.update_idletasks()
def main():
root = Tk()
Application(root)
root.mainloop()
if __name__ == '__main__':
main()
最佳答案
所以,您要找的是 <<MenuSelect>>
.
如果将 self.helpMenu 绑定(bind)到 <<MenuSelect>>
,就像我更新您的代码一样:
__author__ = 'rcope'
from Tkinter import Tk, Frame, BOTH, Menu, Label, SUNKEN, X, BOTTOM
class Application(Frame):
def __init__(self, parent):
Frame.__init__(self, parent, background = "white")
parent.configure(bg = "black")
self.pack(fill = BOTH, expand = True, padx = 20, pady = 20)
self.parent = parent
# Maximize window
self.screenWidth = self.parent.winfo_screenwidth() - 5
self.screenHeight = self.parent.winfo_screenheight() - 110
self.parent.geometry('%dx%d+%d+%d' % (self.screenWidth, self.screenHeight, 0, 0))
self.parent.resizable(0, 0)
# Status bar
self.statusBar = StatusBar(self.parent)
self.statusBar.pack(side = BOTTOM, fill = X)
# Menu bar
menubar = Menu(self.parent)
self.parent.config(menu = menubar)
self.commandMenu = Menu(menubar, tearoff = 0)
self.commandMenu.add_command(label = "Rename", command = self.onRename)
menubar.add_cascade(label = "Command", menu = self.commandMenu)
self.helpMenu = Menu(menubar, tearoff = 0)
self.helpMenu.add_command(label = "About", command = self.onAbout)
menubar.add_cascade(label = "Help", menu = self.helpMenu)
self.helpMenu.bind("<<MenuSelect>>", self.statusBarUpdate)
def onRename(self):
pass
def onAbout(self):
pass
def statusBarUpdate(self, event=None):
print "Status Bar Update Called"
if self.parent.call(event.widget, "index", "active") == 0:
self.statusBar.set("About This Application")
else:
self.statusBar.set("")
class StatusBar(Frame):
def __init__(self, master):
Frame.__init__(self, master)
self.label = Label(self, bd = 1, relief = SUNKEN, anchor = "w")
self.label.pack(fill=X)
def set(self, format0, *args):
self.label.config(text = format0 % args)
self.label.update_idletasks()
def clear(self):
self.label.config(text="")
self.label.update_idletasks()
def main():
root = Tk()
Application(root)
root.mainloop()
if __name__ == '__main__':
main()
现在您唯一需要跟踪的是哪个索引对应于哪个菜单项。我建议您在每次添加菜单项时保留一个递增的 int,并通过字典使用每个索引来获取有关您需要的菜单项的任何相关信息。 Tkinter 不会通过 statusBarUpdate 回调中的条目告诉您很多信息(就像从标记为“About”的菜单命令调用的那样),因此我认为您需要自己滚动它。
关于Python Tkinter : Display description in status bar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22995932/
我正在尝试通过命令行创建 NuGet 包,但我似乎无法弄清楚如何设置描述、作者、标题、摘要、发布说明和所有者。包创建成功它只是给我这个警告: WARNING: Description was not
我可以将 name="description" 和 property="og:description" 组合在同一个元标记中吗? 最佳答案 TL;DR 编号 当然,在您的代码中,您可以做任何事情。 ;
我可以将 name="description" 和 property="og:description" 组合在同一个元标记中吗? 最佳答案 TL;DR 编号 当然,在您的代码中,您可以做任何事情。 ;
我正在尝试在 MySQL 表上执行 INSERT 语句。表结构如下 CREATE TABLE `charges` ( `sgl_id` int(11) NOT NULL AUTO_INCREMEN
我正在尝试修改 ErrorProtocol 的描述输出。但是这个片段给了我无限循环。 enum GeneralError: ErrorProtocol, CustomStringConvertible
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 3 年前。 Improve
我正在一个有 100 多个页面的网站上工作,不知何故我忘记了所有关于元描述的内容。然而,Yoast 已经自动添加了“og:description”标签,这些标签实际上具有我在每个页面上的元名称=“描述
我尝试完成的是使用 GDataXML 获取 RSS2 提要项的 src 属性.提要的项目 xml 是这样的: BlackBerry EMEA servers crash http://www
如何使用 yoast-seo 插件删除特定页面的 og:description 和 twitter:description 标签? 最佳答案 我自己解决了: add_filter("wpseo_ope
给定带有 dataProvider 和 Allure 进行报告的 TestNG 测试类,需要根据 DataProvider 修改 Allure 的报告以具有 (@Test(description)、@
em在中是什么意思 ... 这是从 firefox 插件 install.rdf 文件中提取的。我很好奇 em 部分添加了什么。我在 Google 上也找不到解决方案。 最佳答案 em 是包含 des
我正在尝试使用 Sequelize 创建模型。但是方法 createPost() 抛出错误: Argument of type '{ title: string; description: strin
获取网站的<meta name="keywords" content="" />和<meta name="description&quo
我们一般在调试程序的时候,有些操作会莫名地失败,又没有错误消息提示,特别是在执行数据库操作的时候,明明执行过去了,可就是数据库里没有记录变动,很是郁闷!今天刚才在搞FSO删除操作时就出现了这样的问题
我是 R 包开发的新手,我不确定这是否是一个常见错误。我正在开发 GitHub 上可用的新包:https://github.com/jroberayalas/ahnr .我在装有 OS X Yosem
如何提取给定项目标签的描述?例如,对于巴拉克·奥巴马 (Q76) link有一个列出的描述:“美国第44任总统”。我该如何检索这个?我可以使用以下方法提取“标签”: PREFIX rdfs: PRE
在堆栈溢出中进行搜索时,大多数情况下会显示搜索摘录(帖子/问题的前40个单词左右)。在某些情况下,会显示更多文本,并且该文本包含搜索词。两个文本块均以省略号结尾。 如果您查看元标记“descripti
我有一个使用 scrapy 为我编码的网络抓取工具。 我希望从抓取工具抓取的网站中添加一个额外的字段。 列标题“Description”已在 CSV 数据库中创建,但未抓取任何内容。 # -*- co
我目前正在为 UWP 开发 MR 应用程序。我在 unity3d 中构建应用程序(在 5.5.2 和 2017.1.2 中测试),当我在 unity 中按下播放时一切正常,没有任何编译错误......
我有一个 NotSureItem 对象类,我在其中添加了项目的一些属性。在我的应用程序中,我将 Realm 用于数据库,但是当我在我的应用程序中添加描述属性时,它显示覆盖存储属性的错误。它还会给出一些
我是一名优秀的程序员,十分优秀!