python - 如何在 Tkinter/Tix Python GUI 中启用和禁用选项卡

标签 python tkinter python-2.5 tix

我正在尝试在 Python 中制作一个选项卡式 GUI,我希望能够切换选项卡的启用/禁用状态(即防止用户切换选项卡,并隐藏非事件选项卡以实现这一点明显的)。到目前为止,我一直无法弄清楚如何进行这种状态切换。

我决定使用 Tkinter 和/或 Tix,因为它们内置于 Windows 上的 Python 发行版中,(通过安装额外的第三方依赖项来指导我的用户将比它的值(value)更麻烦)。我曾与 Tkinter 合作过一些,但直到现在才开始使用 Tix-tabs 似乎需要它。因此,我基于 http://svn.python.org/projects/python/trunk/Demo/tix/samples/NoteBook.py 上的演示构建了一个带有两个选项卡的 Tix.NoteBook。

对于禁用选项卡,Tix 选项卡实例的唯一相关属性(例如演示代码中的 nb.hard_disk)似乎是 configure() 但天真地做类似 Tkinter 的东西,即 nb.hard_disk.configure(state=Tix.DISABLED),导致 TclError: unknown option "-state"

搜索“禁用 Tix 笔记本选项卡”没有任何结果,甚至更一般的“禁用 Tix 小部件”也没有任何我可以理解/使用的结果。感谢任何指向正确方向的指示。

最佳答案

一般来说,如何在 Tkinter 中禁用小部件是通过将“state”选项设置为 Tk.DISABLED 或更简单的方法,只需将其设置为字符串 "disabled" .以下内容变灰并禁用您的标签:

notebook.tab(0, state="disabled")

0 是您要禁用的选项卡的索引,notebook 是您的笔记本对象。这是否回答了您的问题?

下面是一个简单的笔记本示例来演示:

import Tkinter
import ttk

window = Tkinter.Tk()
notebook = ttk.Notebook(window)
notebook.pack()
subframe = Tkinter.Frame(window)
subframe.pack()
notebook.add(subframe, text="tab", state="normal")
def buttonaction():
    notebook.tab(0, state="disabled")
button = Tkinter.Button(subframe, command=buttonaction, text="click to disable tab")
button.pack()

if __name__ == "__main__":
    window.mainloop()

关于python - 如何在 Tkinter/Tix Python GUI 中启用和禁用选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20983309/

相关文章:

python - python 2.5 中的相对导入

python - 为什么 python 的 urllib2.urlopen 给我一个 403 错误?

python:从收集计数器获取百分比

python - 如何将参数传递给 Tkinter 中的 Button 命令?

python - 在 Unix 上的 Tkinter 中创建计划任务

python - 如何在针对 python 2.5.1 的项目目录中包含和使用 .eggs/pkg_resources

python - Discord 机器人将消息从服​​务器复制到我的服务器

python - 权限错误 : [Errno 13] Permission denied on Windows

Python - 无效的 JSON 格式 - 如何解析

python - 在 python 的 tkinter 中,我怎样才能制作一个标签,这样你就可以用鼠标选择文本?