[关闭]
@yanglt7 2018-11-16T16:05:25.000000Z 字数 2404 阅读 766

Tkinter07_Message & Spinbox & PanedWindow & Toplevel

Tkinter


Message 组件

Message(消息)组件是 Label 组件的变体,用于显示多行文本消息。Message 组件能够自动换行,并调整文本的尺寸使其适应给定的尺寸。

例 40

  1. from tkinter import *
  2. root = Tk()
  3. w1 = Message(root, text="这是一则消息", width=100)
  4. w1.pack()
  5. w2 = Message(root, text="这是一则\n骇人听闻的长长长长长消息", width=100)
  6. w2.pack()
  7. mainloop()

此处输入图片的描述

Spinbox 组件

Spinbox 组件(Tk8.4 新增)是 Entry 组件的变体,用于从一些固定的值中选取一个。Spinbox 组件和 Entry 组件用法相似,主要区别是使用 Spinbox 组件,可以通过范围或者元组指定允许用户输入的内容。

例 41

  1. from tkinter import *
  2. root = Tk()
  3. w = Spinbox(root, from_=0, to=10)
  4. w.pack()
  5. mainloop()

此处输入图片的描述

还可以通过元组指定允许输入的值:

  1. w = Spinbox(root, values=("小甲鱼", "风介", "wei_Y", "戴宇轩"))

此处输入图片的描述

PanedWindow 组件

PanedWindow 组件(Tk8.4 新增)是一个空间管理组件。跟 Frame 组件类似,都是为组件提供一个框架,不过 PanedWindow 允许用户调整应用程序的空间划分。

例 42 创建一个两窗格的 PanedWindow 组件。

  1. from tkinter import *
  2. m = PanedWindow(orient=VERTICAL)
  3. m.pack(fill=BOTH, expand=1)
  4. top = Label(m, text="top pane")
  5. m.add(top)
  6. bottom = Label(m, text="bottom pane")
  7. m.add(bottom)
  8. mainloop()

此处输入图片的描述

例 43 创建一个三窗格的 PanedWindow 组件。

  1. from tkinter import *
  2. m1 = PanedWindow()
  3. m1.pack(fill=BOTH, expand=1)
  4. left = Label(m1, text="left pane")
  5. m1.add(left)
  6. m2 = PanedWindow(orient=VERTICAL)
  7. m1.add(m2)
  8. top = Label(m2, text="top pane")
  9. m2.add(top)
  10. bottom = Label(m2, text="bottom pane")
  11. m2.add(bottom)
  12. mainloop()

此处输入图片的描述

这些不同窗格事实上有一条“分隔线”(sash)隔开。不妨把鼠标缓慢移动到大概的位置,当鼠标指针改变的时候拖动鼠标,也可以把“分隔线”显式地显示出来,并且可以为它附上一个“手柄”(handle):

例 44

  1. from tkinter import *
  2. m1 = PanedWindow(showhandle=True, sashrelief=SUNKEN)
  3. m1.pack(fill=BOTH, expand=1)
  4. left = Label(m1, text="left pane")
  5. m1.add(left)
  6. m2 = PanedWindow(orient=VERTICAL, showhandle=True, sashrelief=SUNKEN)
  7. m1.add(m2)
  8. top = Label(m2, text="top pane")
  9. m2.add(top)
  10. bottom = Label(m2, text="bottom pane")
  11. m2.add(bottom)
  12. mainloop()

此处输入图片的描述

Toplevel 组件

Toplevel(顶级窗口)组件类似于 Frame 组件,但 Toplevel 组件是一个独立的顶级窗口,这种窗口通常拥有标题、边框等部件。Toplevel 组件通常用在显示额外的窗口、对话框和其他弹出窗口中。

例 45 在 root 窗口添加一个按钮用于创建一个顶级窗口,点一下出现一个。

  1. from tkinter import *
  2. root = Tk()
  3. def create():
  4. top = Toplevel()
  5. top.title("FishC Demo")
  6. msg = Message(top, text="I love FishC.com")
  7. msg.pack()
  8. Button(root, text="创建顶级窗口", command=create).pack()
  9. mainloop()

此处输入图片的描述

attributes() 方法用于设置和获取窗口属性,如果只给出选项名,将返回当前窗口该选项的值。注意:一下选项不支持关键字参数,需要在选项前添加横杠(-)并用字符串的方式表示,用逗号(,)隔开选项和值。

例 46 将 Toplevel 窗口设置为 50% 透明。

  1. from tkinter import *
  2. root = Tk()
  3. def create():
  4. top = Toplevel()
  5. top.attributes("-alpha", 0.5)
  6. top.title("FishC Demo")
  7. msg = Message(top, text="I love FishC.com")
  8. msg.pack()
  9. Button(root, text="创建顶级窗口", command=create).pack()
  10. mainloop()

此处输入图片的描述

摘自《零基础入门学习Python》

参考链接:

An Introduction To Tkinter
Tkinter汇总
Python GUI编程(Tkinter)
Tkinter颜色方案举例
python tkinter可以使用的颜色
tkinter学习-菜单与画布
程序设计思想与方法--第五章
用Python中的tkinter模块作图

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注