Layout management in Tkinter
在 tkinter 教程的这一部分,我们介绍布局管理器。当我们设计应用程序的图形用户界面时,我们决定要使用哪些小部件,以及如何在应用程序中组织这些小部件。为了组织我们的小部件,我们使用称为布局管理器的专门的非可见对象。有两种小工具: 容器和它们的孩子。这些容器把他们的孩子放在合适的位置。Tkinter 有三个内置的布局管理器: 包、网格和位置管理器。地点几何管理器位置部件使用绝对定位。包几何管理器
·
在 tkinter 教程的这一部分,我们介绍布局管理器。当我们设计应用程序的图形用户界面时,我们决定要使用哪些小部件,以及如何在应用程序中组织这些小部件。为了组织我们的小部件,我们使用称为布局管理器的专门的非可见对象。有两种小工具: 容器和它们的孩子。这些容器把他们的孩子放在合适的位置。Tkinter 有三个内置的布局管理器: 包、网格和位置管理器。地点几何管理器位置部件使用绝对定位。包几何管理器以水平和垂直方框组织小部件。网格几何管理器将小部件放置在二维网格中。绝对定位在大多数情况下,程序员应该使用布局管理器。有些情况下我们可以使用绝对定位。在绝对定位中,程序员以像素为单位指定每个小部件的位置和大小。如果我们调整窗口大小,窗口的大小和位置不会改变。应用程序在不同的平台上看起来不同,在 linux 上看起来不错的,在 mac os 上可能看起来不太好。在应用程序中更改字体可能会破坏布局。如果我们把应用程序翻译成另一种语言,我们必须重新布局。(翻译自zetcode)
absolute.py
#!/usr/bin/env python3
"""
ZetCode Tkinter tutorial
In this script, we lay out images
using absolute positioning.
Author: Jan Bodnar
Website: www.zetcode.com
"""
from PIL import Image, ImageTk
from tkinter import Tk, BOTH
from tkinter.ttk import Frame, Label, Style
class Example(Frame):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.master.title("Absolute positioning")
self.pack(fill=BOTH, expand=1)
Style().configure("TFrame", background="#333")
bard = Image.open("bardejov.jpg")
bardejov = ImageTk.PhotoImage(bard)
label1 = Label(self, image=bardejov)
label1.image = bardejov
label1.place(x=20, y=20)
rot = Image.open("rotunda.jpg")
rotunda = ImageTk.PhotoImage(rot)
label2 = Label(self, image=rotunda)
label2.image = rotunda
label2.place(x=40, y=160)
minc = Image.open("mincol.jpg")
mincol = ImageTk.PhotoImage(minc)
label3 = Label(self, image=mincol)
label3.image = mincol
label3.place(x=170, y=50)
def main():
root = Tk()
root.geometry("300x280+300+300")
app = Example()
root.mainloop()
if __name__ == '__main__':
main()
更多推荐
已为社区贡献4条内容
所有评论(0)