首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将ttk.LabelFrame放入ttk.PanedWindow中?

如何将ttk.LabelFrame放入ttk.PanedWindow中?
EN

Stack Overflow用户
提问于 2020-12-03 22:07:03
回答 1查看 159关注 0票数 0

我是在ttk中发起的,并且在试图在PanedWindow中添加一个LabelFrame时,我一直得到这个错误。发生在第46行(self.pwEntries.add(self.lfEntries))上:

_tkinter.TclError:错误# args:应该是“!frame.!panedwindow.!panedwindow添加窗口”

因为我不知道怎么解决这个问题,我真的很想得到一些帮助,请.

我的代码是这样的:

代码语言:javascript
复制
from tkinter import *
from tkinter import ttk


class CalcVendGame:
    def __init__(self, root):

        root.title("Calcula Venda Games")

        self.mainframe = ttk.Frame(root, padding="3 3 12 12")
        self.mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
        root.columnconfigure(0, weight=1)
        root.rowconfigure(0, weight=1)

        self.pwRoot = ttk.PanedWindow(self.mainframe, orient=VERTICAL)

        self.pwEntries = ttk.PanedWindow(self.pwRoot, orient=HORIZONTAL)

        self.lfEntries = ttk.LabelFrame(self.pwEntries, labelanchor='nw').grid(
            column=0, row=0, sticky=(N, W))

        ttk.Label(self.lfEntries, text="Valor em Dólar de cada cópia:", padding="5").grid(
            column=2, row=1, sticky=E)
        self.CopiaEmDolar = StringVar()
        cpEmDol_entry = ttk.Entry(
            self.lfEntries, width=7, textvariable=self.CopiaEmDolar)
        cpEmDol_entry.grid(column=3, row=1, sticky=W)
        ttk.Label(self.lfEntries, text="Ex: \"19.99\"", padding="5").grid(
            column=4, row=1, sticky=W)

        ttk.Label(self.lfEntries, text="Quantidade de cópias vendidas:", padding="5").grid(
            column=2, row=2, sticky=E)
        self.CopiasVendidas = StringVar()
        cpVend_entry = ttk.Entry(
            self.lfEntries, width=7, textvariable=self.CopiasVendidas)
        cpVend_entry.grid(column=3, row=2, sticky=W)

        ttk.Button(self.lfEntries, text="Calcular").grid(
            column=4, row=3, sticky=W)

        self.pwEntries.add(self.lfEntries)

        self.pwPC = ttk.PanedWindow(self.pwRoot, orient=HORIZONTAL)

        self.pwSteam = ttk.PanedWindow(self.pwPC, orient=VERTICAL)

        self.lfSteam = ttk.LabelFrame(self.pwSteam, padding=(
            5), text='Steam', labelanchor='nw')

        ttk.Label(self.lfSteam, text="Cut 35%", padding="5").grid(
            column=0, row=0, sticky=W)
        ttk.Separator(self.lfSteam, orient=HORIZONTAL)

        self.pwPatreon = ttk.PanedWindow(self.pwRoot, orient=VERTICAL)

        self.pwPC.add(self.pwSteam)
        self.pwPC.add(self.pwPatreon)

        self.pwMobile = ttk.PanedWindow(self.pwRoot, orient=HORIZONTAL)

        # self.pwRoot.add(self.lfEntries)
        self.pwRoot.add(self.pwEntries)
        self.pwRoot.add(self.pwPC)
        self.pwRoot.add(self.pwMobile)

root = Tk()
CalcVendGame(root)
root.mainloop()

此外,这段代码没有给出错误,但结果出现在一个空白窗口上:

代码语言:javascript
复制
from tkinter import *
from tkinter import ttk

master = Tk()
mainframe = ttk.Frame(master, padding="3 3 10 10")

p = ttk.Panedwindow(mainframe, orient=VERTICAL)

# two panes, each of which would get widgets gridded into it:
f1 = ttk.Labelframe(p, text='Pane1', width=100, height=100)
ttk.Label(f1, text="Valor em Dólar de cada cópia:", padding="5")
f2 = ttk.Labelframe(p, text='Pane2', width=100, height=100)
ttk.Label(f2, text="Quantidade de cópias vendidas:", padding="5")
p.add(f1)
p.add(f2)

master.mainloop()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-03 23:48:40

您忘记在小部件上使用任何布局管理器。下面是使用pack()更新的代码

代码语言:javascript
复制
from tkinter import *
from tkinter import ttk

master = Tk()

mainframe = ttk.Frame(master, padding="3 3 10 10")
mainframe.pack()

p = ttk.Panedwindow(mainframe, orient=VERTICAL)
p.pack()

# two panes, each of which would get widgets gridded into it:
f1 = ttk.Labelframe(p, text='Pane1', width=100, height=100)
ttk.Label(f1, text="Valor em Dólar de cada cópia:", padding="5").pack()
f2 = ttk.Labelframe(p, text='Pane2', width=100, height=100)
ttk.Label(f2, text="Quantidade de cópias vendidas:", padding="5").pack()
p.add(f1)
p.add(f2)

master.mainloop()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65134882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档