Alv*_*lis 2 geometry tkinter python-3.x anaconda
安装Anaconda后我遇到了几个错误.当我运行程序时,我收到消息:
TclError: cannot use geometry manager pack inside . which already has slaves managed by grid
Run Code Online (Sandbox Code Playgroud)
该程序是使用Python 3.3编写的.Anaconda版本适用于3.4.但我不认为3.3和3.4之间存在任何语法差异.我搜索过,找不到任何解决此错误的方法.我甚至都不知道这意味着什么.
谢谢.
如果您混合pack()并grid()在同一主窗口中,则会发生此错误.根据文档,这是一个坏主意:
警告:切勿在同一主窗口中混合网格和打包.Tkinter很乐意度过余生,试图协商一个管理人员都满意的解决方案.而不是等待,杀死应用程序,再看看你的代码.一个常见的错误是对某些小部件使用了错误的父级.
例如,此代码适用于Python 3.3.x,但不适用于Python 3.4.x(抛出您提到的错误):
from tkinter import *
from tkinter import ttk
root = Tk()
mainframe = ttk.Frame(root)
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
nb = ttk.Notebook(root)
nb.pack()
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
并且此代码不适用于两个Python版本:
from tkinter import *
root = Tk()
Label(root, text="First").grid(row=0)
Label(root, text="Second").pack()
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
要避免这种情况,请仅为给定父级的所有子级使用一个几何管理器,例如grid().
| 归档时间: |
|
| 查看次数: |
11850 次 |
| 最近记录: |