首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Python中定制复选框的位置、下拉列表等?

如何在Python中定制复选框的位置、下拉列表等?
EN

Stack Overflow用户
提问于 2022-06-15 12:01:15
回答 1查看 175关注 0票数 0

我想要达到这个图像的精确外观。

我想学习如何定位滴答框、复选框、下拉菜单和菜单列表,它们与我插入的图像完全相同。我不知道如何编写每个语法的位置

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

from tkinter import ttk

windows = Tk()
gender = ["male", "female"]
sport = ["Cricket", "Tennis"]
numbers = ['one', 'two', 'three', 'four']

windows.title("Hello Python")
windows.geometry("350x300")

x = IntVar(windows)
for index in range(len(gender)):
    radiobutton = Radiobutton(windows,
                              text=gender[index],
                              variable=x,
                              value=index,)
    radiobutton.pack(side=LEFT,ipadx=10,ipady=10)


for index in range(len(sport)):
    checkboxgui = Checkbutton(windows,
                               text=sport[index], onvalue=1,
                               offvalue=0)

    checkboxgui.pack(side=LEFT, anchor=CENTER, ipadx=10, ipady=10)

clicked = StringVar(windows)
clicked.set("one")
drop = ttk.Combobox(windows, textvariable=clicked,values=numbers)
drop.pack()

listbox = Listbox(windows,selectmode=MULTIPLE)
listbox.pack()
listbox.insert(1,"one")
listbox.insert(2,"two")
listbox.insert(3,"three")
listbox.insert(4,"four")
listbox.config(height=listbox.size())



windows.mainloop()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-15 13:52:18

我知道如何实现类似于您的图片的唯一方法是将交互式小部件组织到框架中,然后单独地对它们进行pack(),这样您就可以遵循打包器使用的逻辑。但我确实设定了一个近似大小,就像你的例子一样。注意,为了使您的Combobox在顶部对齐,我必须使用expandfill参数。对您来说,查看类似于的内容将是有益的。有关pack()方法如何工作的示例说明。我没有阻止用户扩展窗口,所以您仍然可以使窗口最大化,超出您在图片中显示的内容。我希望这能帮到你。

代码语言:javascript
运行
复制
import tkinter as tk
from tkinter import ttk

window = tk.Tk()
window.geometry("400x300")

x = tk.IntVar()
numbers = ['one', 'two', 'three', 'four']

radio_frame = tk.Frame(window)
radio_frame.pack(ipady=30)

male_radio = tk.Radiobutton(radio_frame, text="male", variable=x)
male_radio.pack(side="left")

female_radio = tk.Radiobutton(radio_frame, text="female", variable=x)
female_radio.pack(side="left")

check_frame = tk.Frame(window)
check_frame.pack(ipady=10)

check_button1 = tk.Checkbutton(check_frame, text="Cricket", onvalue=1, offvalue=0)
check_button1.pack(side="left")

check_button2 = tk.Checkbutton(check_frame, text="Tennis", onvalue=1, offvalue=0)
check_button2.pack(side="left")

bottom_frame = tk.Frame(window)
bottom_frame.pack(pady=20)

drop_frame = tk.Frame(bottom_frame)
drop_frame.pack(side="left", expand=True, fill=tk.BOTH)

clicked = tk.StringVar()
clicked.set("one")

drop = ttk.Combobox(drop_frame, textvariable=clicked, values=numbers)
drop.pack()

list_frame = tk.Frame(bottom_frame)
list_frame.pack(side="left")

listbox = tk.Listbox(list_frame,selectmode=tk.MULTIPLE)
listbox.pack(padx=40, ipady=10)

listbox.insert(1,"one")
listbox.insert(2,"two")
listbox.insert(3,"three")
listbox.insert(4,"four")
listbox.config(height=listbox.size())

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

https://stackoverflow.com/questions/72631017

复制
相关文章

相似问题

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