python-3.x - 在 Tkinter 菜单中禁用复选标记时如何禁用功能?
问题描述
所以我创建了一个 Python 文件,用户可以在其中打开字数统计,它将显示字符数和单词数。启用后,它还会在该选项附近放置一个复选标记。每当用户单击该选项两次时,它都会删除复选标记。但是,它并没有停止计算单词和字符,我该怎么做呢?
这是字数统计功能的代码:
# Word Count Function
def DeclareWordCount():
# Turn of Word Count if the User Unchecks the Option in the Tools Menu
# Get data in textbox - turns into a string
TextContent = TextBox.get("1.0", END)
# String to number
CharactersInTextBox = len(TextContent)
WordsInTextBox = len(TextContent.split())
# Config in Status Bar
StatusBar.config(text=str(CharactersInTextBox-1) + " Characters, " + str(WordsInTextBox) + " Words, ")
def InitWordCount():
DeclareWordCount()
StatusBar.after(1, InitWordCount)
这是菜单的代码:
# Check Marks for Options in Tools Menu
WordWrap_CheckMark = BooleanVar()
WordWrap_CheckMark.set(False)
ToolsMenu = Menu(MenuBar, tearoff=False)
MenuBar.add_cascade(label="Tools", menu=ToolsMenu, underline=0)
ToolsMenu.add_checkbutton(label="Word Count", onvalue=1, offvalue=0, variable=WordCount_CheckMark, command=InitWordCount)
当复选标记不存在时,如何让状态栏停止显示字数和字符数?
解决方案
您应该执行字数统计并.after()
仅在WordWrap_CheckMark
设置为时调用True
:
def InitWordCount():
if WordWrap_CheckMark.get():
DeclareWordCount()
StatusBar.after(1, InitWordCount)
else:
StatusBar.config(text="")
请注意,该行中有错字:
ToolsMenu.add_checkbutton(..., variable=WordCount_CheckMark, ...)
它应该是
ToolsMenu.add_checkbutton(..., variable=WordWrap_CheckMark, ...)
推荐阅读
- ssl - XAMPP 中跨 LAN 的 localhost 自签名证书
- python - 如何将python回调添加到pointdrawtool
- delphi - 如何将组件放在 TMainMenu 上方?
- c# - 在异步回调中从 NetworkStream 读取缓冲区
- kubernetes - 从 CLI 使用 Gitlab 安装的 Helm。找不到分蘖
- r - 如何将 rpivotTable 动态插入 Shiny UI
- python - 在 Scikit Learn Logistic Legression 中,预测的逆是正确的
- itext7 - SetSplitCharacters 在 URL 上添加空格
- django - 从可重用应用程序将依赖项注入 INSTALLED_APPs
- angularjs - 如何在低于 2 的 angularjs 版本中加载服务器端