【问题标题】:Python v3, not listing radio buttons in tkinter grid properlyPython v3,未正确列出 tkinter 网格中的单选按钮
【发布时间】:2017-01-19 14:58:31
【问题描述】:

我正在尝试运行带有一些小部件(标签、输入框、单选按钮等)的基本 gui,我已经使用通用网格方法在 tkinter 窗口中订购了这些小部件(例如 row = 1,column = 1)

但是这里的这段代码:

    Label(self,
          text = "Customer's Phone Number:",
          ).grid(row = 8, column = 0, sticky = W)

    self.cusPhone = Entry(self)
    self.cusPhone.grid(row = 9, column = 0, sticky = W)

    self.breadType_var = IntVar()
    self.breadType_var.set(0)

    Label(self,
          text = "Bread Type ($2):",
          ).grid(row = 10, column = 0, sticky = W)

    breadType = ["White", "Wheat", "Toasted Herbs"]

    self.breadType_btns = []
    for i in range(len(breadType)):
        rb = Radiobutton(parent, variable = self.breadType_var, value = i, anchor = W, text = breadType[i], command=self.show_sentence)
        self.breadType_btns.append(rb)
        rb.grid(row = i , column = 1)

    Label(self,
          text = "Cheeses ($1):",
          ).grid(row = 16, column = 0, sticky = W)

特别是查看 breadType 列表...直到 rb.grid 是我认为问题所在。这几乎就像在我的第一个网格之上制作第二个网格:rb.grid():self.grid()

当我运行代码时,单选按钮出现在旁边...

谁能帮我修复我的代码,使单选按钮显示在标签面包类型下方或水平旁边的标签?

P.S 我正在使用一个将“父级”传递给此函数的类。

编辑:现在它显示这个:

【问题讨论】:

    标签: python-3.x tkinter


    【解决方案1】:

    这几乎就像它的输入图像描述在这里制作第二个网格:rb.grid() 在我的第一个网格之上:self.grid()

    这是一个真实的陈述。

    单选按钮的父级与标签不同。虽然不可能知道您真正想要完成什么,但我的猜测是单选按钮应该有 self 的父级而不是 parent,因为这是标签小部件用作父级的。

    例如:

    for i in range(len(breadType)):
        rb = Radiobutton(self, ...)
    

    【讨论】:

    • 谢谢,这正是我想要的。然而,单选按钮似乎仍然在 gui 的右侧/顶部。将列值设置为保持在左侧的任何方式,同时让“i”与列值一起显示(行将 = 11)。
    • 我用 (row=(1 + i) 来解决这个问题,sticky = W。问题解决了!
    猜你喜欢
    • 2022-01-17
    • 2023-02-09
    • 2016-09-01
    • 2016-09-11
    • 1970-01-01
    • 2017-01-27
    • 2016-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多