相关疑难解决方法(0)

什么'重量'在tkinter做什么?

我一直在寻找不同的网站,试图找出tkinter的重量.我从TkDocs那里得到了这个:

每个列和行都有一个与它关联的"权重"网格选项,告诉它如果要填充的主空间中有额外的空间,它应该增长多少.默认情况下,每列或每行的权重为0,表示不扩展以填充空间.

有人可以把它放在我的某些背景下,因为我很难理解它的作用.我已经尝试了以下代码,它似乎只是在我更改值时在页面上移动东西.

try:
    import tkinter
except ImportError:  # python 2
    import Tkinter as tkinter

import os

mainWindow = tkinter.Tk()

mainWindow.title("Grid demo")
mainWindow.geometry('640x480-8-200')

label = tkinter.Label(mainWindow, text="tkinter grid demo")
label.grid(row=0, column=0, columnspan=3)

mainWindow.columnconfigure(0, weight=1)
mainWindow.columnconfigure(1, weight=1)
mainWindow.columnconfigure(2, weight=3)
mainWindow.columnconfigure(3, weight=3)
mainWindow.columnconfigure(4, weight=3)
mainWindow.rowconfigure(0, weight=1)
mainWindow.rowconfigure(1, weight=10)
mainWindow.rowconfigure(2, weight=1)
mainWindow.rowconfigure(3, weight=3)
mainWindow.rowconfigure(4, weight=3)

fileList = tkinter.Listbox(mainWindow)
fileList.grid(row=1, column=0, sticky='nsew', rowspan=2)
fileList.config(border=2, relief='sunken')

for zone in os.listdir('/Windows/System32'):
    fileList.insert(tkinter.END, zone)
mainWindow.mainloop()
Run Code Online (Sandbox Code Playgroud)

python tkinter

23
推荐指数
1
解决办法
1万
查看次数

tkinter 如何将小部件向右对齐,而与左侧小部件的长度无关?

我想将条目小部件向右对齐,而与左侧标签的宽度无关。Id 标题的宽度应该不重要。无论标题的宽度是多少,条目小部件都应该对齐。

在此输入图像描述

这是我的代码:

import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.title('test')
root.geometry("500x800")
        
# main frame
main_frame = tk.Frame(root)
main_frame.pack(expand=1, fill='both')

# the message
title = tk.Label(main_frame, text="title 1", bg='white')
title.pack(padx=8, pady=8, fill='x')

foo1_frame = tk.Frame(main_frame)
foo1_frame.pack(padx=8, pady=8, fill='x')

foo1_label = tk.Label(foo1_frame, text="short title foo1")
foo1_label.grid(row=0, column=0)

foo1_entry_box = tk.Entry(foo1_frame, width=10)
foo1_entry_box.grid(row=0, column=2, sticky='e') #sticky does nothing in this case

foo2_frame = tk.Frame(main_frame)
foo2_frame.pack(padx=8, pady=8, fill='x')

foo2_label = tk.Label(foo2_frame, text="loooooooooooonger title foo2")
foo2_label.grid(row=1, column=0)

foo2_entry_box = tk.Entry(foo2_frame, …
Run Code Online (Sandbox Code Playgroud)

python tkinter

1
推荐指数
1
解决办法
1531
查看次数

标签 统计

python ×2

tkinter ×2