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

 手机用户2602922857 发布于 2023-02-05 12:34

我正在尝试在Python中创建一个选项卡式GUI,我希望能够切换选项卡的启用/禁用状态(即阻止用户切换选项卡,并禁止鬼非活动选项卡以使这一事实显而易见).到目前为止,我一直无法弄清楚如何进行这种状态切换.

我决定使用Tkinter和/或Tix,因为它们内置于Windows上的Python发行版中(指导我的用户安装额外的第三方依赖项将比它的价值更麻烦).我曾经和Tkinter合作过一段时间但从未使用过Tix,因为标签似乎需要它.所以我在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小部件"也不会产生任何我能理解/使用的内容.感谢正确方向的任何指针.

1 个回答
  • 一般来说,如何在Tkinter中禁用小部件是将"状态"选项Tk.DISABLED设置为或更加万无一失,只需将其设置为字符串即可"disabled".以下内容灰显并禁用您的选项卡:

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

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

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

    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()
    

    2023-02-05 12:35 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有