python - 如何在 Python Tkinter 中将单选按钮的文本标签移动到按钮下方?

标签 python tkinter radio-button

我想知道是否有办法将单选按钮的标签文本移动到不同的区域,例如在实际按钮下方。

下面是一些使用我正在使用的网格放置的单选按钮的示例:

from tkinter import *
from tkinter import ttk


class MainGUI(Frame):

    def __init__(self, parent):
        self.parent = parent
        Frame.__init__(self, parent, background="white")
        self.mainframe = ttk.Frame(root, padding="8 8 12 12")
        self.mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
        self.mainframe.columnconfigure(0, weight=1)
        self.mainframe.rowconfigure(0, weight=1)
        ttk.Radiobutton(self.mainframe, text="Button 1", value=0).grid(column=1, row=2)
        ttk.Radiobutton(self.mainframe, text="Button 2", value=1).grid(column=2, row=2)
        ttk.Radiobutton(self.mainframe, text="Button 3", value=2).grid(column=3, row=2)
        ttk.Radiobutton(self.mainframe, text="Button 4", value=3).grid(column=4, row=2)

if __name__ == '__main__':
    root = Tk()
    root.geometry("300x100")
    app = MainGUI(root)
    root.mainloop()

下面是运行代码时的帧图像:

如您所见,默认情况下是在按钮的一侧,但我正在寻找一种方法来移动下面的文本,我似乎找不到解决这个问题的任何方法!

谢谢,拉吉

最佳答案

没有选项可以设置单选按钮中的文本位置,所以我能想到的最简单的解决方法是删除单选按钮文本并在其下方放置一个标签。

另外,我宁愿让一个 MainGUI 类继承自 Tk 而不是 Frame 这样你就不必创建一个if __name__ == '__main__': 部分中的根窗口,但这只是一个建议。

from tkinter import *
from tkinter import ttk

class MainGUI(Tk):

    def __init__(self):
        Tk.__init__(self)
        self.geometry("300x100")
        self.configure(background="white")
        self.mainframe = ttk.Frame(self, padding="8 8 12 12")
        self.mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
        self.mainframe.columnconfigure(0, weight=1)
        self.mainframe.rowconfigure(0, weight=1)
        ttk.Radiobutton(self.mainframe,  value=0).grid(column=1, row=2)
        ttk.Label(self.mainframe, text="Button 1").grid(column=1, row=3, padx=4)
        ttk.Radiobutton(self.mainframe,  value=1).grid(column=2, row=2)
        ttk.Label(self.mainframe, text="Button 2").grid(column=2, row=3, padx=4)
        ttk.Radiobutton(self.mainframe,  value=2).grid(column=3, row=2)
        ttk.Label(self.mainframe, text="Button 3").grid(column=3, row=3, padx=4)
        ttk.Radiobutton(self.mainframe,  value=3).grid(column=4, row=2)
        ttk.Label(self.mainframe, text="Button 4").grid(column=4, row=3, padx=4)
        self.mainloop()

if __name__ == '__main__':
    app = MainGUI()

Result

备注:为了得到这张图片,我还使用了一个ttk.Style来在linux下获得更好的结果。

关于python - 如何在 Python Tkinter 中将单选按钮的文本标签移动到按钮下方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41551294/

相关文章:

python - 洗牌的程序

python - 在python中获取文件详细信息

python - 在python中压缩数组?

Python tKinter : How to pause countdown timer

python - 使用 Tkinter 将椭圆拖放到 Canvas 上

css - 将输入 radio 更改为大的 div 框

python - 使用 str.split 函数拆分数据框中的列

python - 为什么具有相同 'text =' 值的两个输入框被视为相同的输入框?

python - 如何使用 Flask 通过 HTML 表单携带带空格的字符串

android - 顶部带有文本的单选按钮