gpt4 book ai didi

python - 将 Tix 小部件添加到 Tkinter 容器

转载 作者:行者123 更新时间:2023-12-01 02:23:38 30 4
gpt4 key购买 nike

我正在 Windows 7 上的 Python 2.7 中使用 Tkinter,发现需要创建一个带有树形复选框列表的弹出框。我在 Tkinter 或 ttk 中找不到这个。不过,我确实在 Tix 的 CheckList 小部件中找到了它。我得到了一个使用 Tix 的独立工作示例,但我不知道如何将 Tix.CheckList 添加到控制主程序的 ttk.Frame 中。

我肯定没有被迫从头开始使用 Tix 框架吗?

import Tix
import pandas as pd
import Tkinter as tk

class TreeCheckList(object):
def __init__(self, root):
self.root = root

self.cl = Tix.CheckList(self.root)
self.cl.pack(fill=Tix.BOTH, expand=Tix.YES)
self.cl.hlist.config(bg='white', bd=0, selectmode='none', selectbackground='white', selectforeground='black', drawbranch=True, pady=5)

self.cl.hlist.add('ALL', text='All Messages')

self.cl.hlist.add('ALL.First', text='First')
self.cl.setstatus('ALL.First', "off")

self.cl.hlist.add('ALL.Second', text='Second')
self.cl.setstatus('ALL.Second', "off")

self.cl.autosetmode()

def main():
root = Tix.Tk()
top = Tix.Toplevel(root)

checklist = TreeCheckList(top)
root.update()
top.tkraise()
root.mainloop()

if __name__ == '__main__':
main()

上面的代码在使用所有 Tix 小部件的独立程序中运行。但是,当我尝试将其实现到较大的程序中时,我收到 TclError: invalid command name "tixCheckList"
为了在独立环境中模拟这一点,我更改了以下行:

root = Tix.Tk()
top = Tix.Toplevel(root)

root = tk.Tk()
top = tk.Toplevel(root)

我希望我可以实现一个 Tix.Toplevel,将其放在 tk.Tk() 根上,但同样的问题。

我是否只允许在使用 Tix 小部件时使用 Tix 框架,或者我是否误解了什么?如果有人有好的 Tix 文档,我会喜欢我能得到的任何东西。看来关于它的好文档很少而且相距甚远。或者 ttk 中是否包含相同的功能而我只是忽略了它?这似乎是唯一被遗漏的事情之一。

最佳答案

我刚刚了解到,显然只有 root 需要是 Tix 类。由于 Tk 以及 ttk,类似乎都很好地添加到 Tix 根(因为它们中的大多数无论如何都扩展了 Tkinter 类),这似乎是一个“修复”。所以我的问题可能通过改变就解决了

root = tk.Tk()

root = Tix.Tk()

这确实需要我将 Tix 拉入我的程序中我不希望用于封装目的的一部分,但我想没有其他方法。

关于python - 将 Tix 小部件添加到 Tkinter 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47676832/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com