相关文章推荐
风度翩翩的莲藕  ·  用Bash雕刻文件,用grep找不到16进制 ...·  2 年前    · 
犯傻的单车  ·  移植Linux中conda的环境_conda ...·  2 年前    · 
难过的打火机  ·  [HTML5試試看-20] 溝通 - ...·  2 年前    · 
Code  ›  tkinter之窗口控件配置和按钮Button的使用_tkinter button占两列
按钮 tk tkinter label
https://blog.csdn.net/qq_37431083/article/details/103960734
任性的沙发
1 年前
      • 3.窗口控件配置
        • 3.1 Widget Layout Manager - pack方法
        • 3.2 Widget Layout Manager - grid方法
        • 3.3 Widget Layout Manager - place方法
      • 4.按钮Button

      3.窗口控件配置

      3.1 Widget Layout Manager - pack方法

      pack是最常使用的控件配置管理方法,它是使用相对位置的概念处理Widget控件配置,至于控件的正确位置则是由pack方法自动完成。pack方法的语法格式如下。

      pack(options,...)
      

      options参数可以是side、fill、padx/pady、ipadx/ipady、anchor。

      side参数

      TOP:这是默认值,由上往下排列。
      BOTTOM:由下往上排列。
      LEFT:由左往右排列。
      RIGHT:由右往左排列。

      padx/pady参数

      可以使用padx/pady参数设定控件边界与容器(可想成窗口边界)的距离或是控件边界间的距离。在默认环境下窗口控件间的距离是1像素,如果希望有适度间距,可以设置参数padx/pady,代表水平间距/垂直间距,可以分别在组件间增加间距。

      ipadx/ipady参数

      ipadx参数可以控制标签文字与标签容器的x轴间距,ipady参数可以控制标签文字与标签容器的y轴间距。

      anchor参数

      这个参数可以设定Widget控件在窗口中的位置,控件内容在控件区域的位置设置(实际中是指标签文字在标签区域的位置)。

      from tkinter import *
      tk = Tk()
      tk.geometry("200x150") 
      oklabel = Label(tk, text="OK",  # 标签内容是0K
                      font="Times 20 bold",  # Times字型20粗体
                      fg="white", bg="blue")  # 蓝底白字
      oklabel.pack(anchor=S, side=RIGHT,  # 从右开始在S方向设置
                   padx=10, pady=10)  # x和y轴间距都是10
      nolabel = Label(tk, text="NO",  # 标签内容是NO
                      font="Times 20 bold",  # Times字型20粗体
                      fg="white", bg="red")  # 蓝底白字
      nolabel.pack(anchor=S, side=RIGHT,  # 从右开始在S方向设置
                   pady=10)  # y轴间距都是10
      tk.mainloop()
      

      fill参数

      fill参数的主要功能是告诉pack管理程序,设置控件填满所分配容器区间的方式,如果是fill=X表示控件可以填满所分配空间的X轴不留白,如果是fill=Y表示控件可以填满所分配空间的Y轴不留白,如果是fill=BOTH表示控件可以填满所分配空间的X轴和Y轴。fill默认值是NONE,表示保持原大小。

      如果所分配容器区间已经满了,则使用此fill参数将不会有任何作用。fill参数在使用上仍有些复杂,如果要设计复杂的Widget控件布局,建议使用grid方法。

      expand参数

      expand参数可设定Widget控件是否填满额外的父容器空间,默认是False(或是0),表示不填满,如果是True(或是1)表示填满。

      3.2 Widget Layout Manager - grid方法

      grid的语法格式如下:

      grid(options,...)
      

      options参数可以是row、column、padx/pady、rowspan、columnspan、sticky。

      row和column

      from tkinter import *
      tk = Tk()
      label1 = Label(tk, text="左上",
                     font="Times 20 bold",  # Times字型20粗体
                     fg="white", bg="blue", width=15)  # 蓝底白字
      label2 = Label(tk, text="左下",
                     font="Times 20 bold",  # Times字型20粗体
                     fg="white", bg="red", width=15)  # 蓝底白字
      label3 = Label(tk, text="右下",
                     font="Times 20 bold",  # Times字型20粗体
                     fg="white", bg="red", width=15)  # 蓝底白字
      label1.grid(row=0, column=0)
      label2.grid(row=1, column=0)
      label3.grid(row=1, column=1)
      tk.mainloop()
      

      执行结果如下

      columnspan参数

      可以设定控件在column方向的合并数量。比如一个标签占用两个表格所占用的位置,设参数columnspan=2。

      rowspan参数

      可以设定控件在row方向的合并数量。

      padx和pady参数

      与pack用法相同。

      sticky参数

      这个参数的功能类似anchor,但是只可以设定N/S/W/E,即上/下/左/右对齐。原则上相同column的Widget控件,如果宽度不同时,grid方法会保留最宽的控件当作基准,这时比较短的控件会居中对齐。

      sticky参数的可能值N/S/W/E也可以组合使用。
      sticky=N+S:可以拉长高度让控件在顶端和底端对齐。
      sticky=W+E:可以拉长宽度让控件在左边和右边对齐。
      sticky=N+S+E:可以拉长高度让控件在顶端和底端对齐,同时切齐右边。
      sticky=N+S+W:可以拉长高度让控件在顶端和底端对齐,同时切齐左边。
      sticky=N+S+W+E:可以拉长高度让控件在顶端和底端对齐,同时切齐左右边。

      3.3 Widget Layout Manager - place方法

      这是使用直接指定方式将Widget控件放在容器(可想成窗口)中的方法。

      参数可以是height/width、relx/rely、x/y、relheight/relwidth、bordermode、anchor。

      x/y参数

      窗口显示区的左上角是(x=0,y=0), x是向右递增,y是向下递增。

      width/height参数

      有时候在设计窗口应用程序时,所预留的空间有限,如果想要将图片插入窗口内,却担心图片太大,可以在插入图片时同时设定图片的大小,此时可以使用width/height参数,这两个参数可以直接设定Widget控件的实体大小。

      relx/rely参数与relwidth/relheight参数

      relx/rely可以设置相对于父容器(可想成父窗口)的位置,relwidth/relheight设置相对大小。这个相对位置与相对大小是相对于父窗口而言,其值为0.0 ~ 1.0。

      4.按钮Button

      Button()方法的第一个参数是父对象,表示这个功能按钮将建立在哪一个窗口内。下列是Button( )方法内其他常用的options参数。
      (1)borderwidth或bd:边界宽度默认是两个像素。
      (2)bg或background:背景色彩。
      (3)command:单击功能按钮时,执行此方法。当需要传参给此方法,最好使用Lambda表达式。
      (4)cursor:当鼠标光标移至按钮上时的形状。
      (5)fg或foreground:前景色彩。
      (6)font:字形。
      (7)height:高,单位是字符高。
      (8)highlightbackground:当功能按钮取得焦点时的背景颜色。
      (9)highlightcolor:当功能按钮取得焦点时的颜色。
      (10)image:功能钮上的图像。
      (11)justify:当有多行文字时,最后一行文字的对齐方式。
      (12)padx:默认是1,可设置功能按钮与文字的间隔。
      (13)pady:默认是1,可设置功能按钮的上下间距。
      (14)relief:默认是relief=FLAT,可由此控制文字外框。
      (15)state:默认是state=NORMAL,若设置为DISABLED则以灰阶显示功能按钮,表示暂时无法使用。
      (16)text:功能按钮名称。
      (17)underline:可以设置第几个文字有下画线,从0开始算起,默认是-1表示无下画线。
      (18)width:宽,单位是字符宽。
      (19)wraplength:限制每行的文字数,默认是0,表示只有“\n”才会换行。

      1. 序言 本章介绍Tkinter的Button控件,本文是Python GUI系列的第6篇文章,整个系统约20篇博客,将全面的介绍Python Tkinter常用控件,最后还将基于Tkinter搭建两个比较完整的小项目。 2. 环境信息 *************************... win=tkinter.Tk() #构造窗体 win.title("hello zhaolin")#标题 win.geometry("800x800+300+0")#800宽度,800高度,x,y坐标,左上角 button=tkinter.Button(win,text="有种点我",comma
      用Tkinter打造GUI开发工具(8)对齐方式和浮雕风格 我们这篇继续介绍Tkinter通用属性。 首先介绍对齐方式。Tkinter小部件的对齐方式用属性anchor。anchor取值有tk.N(上),tk.NE(右上),tk.E(右),tk.SE(右下),tk.S(下),tk.SW(左下),tk.W(左),tk.NW(左上),tk.CENTER(中间)。 我们给出一个对齐方式的示例程序。 label = tk.Label(root, text = ‘Label’) label.grid(column = 3, row = 8) button = tk.Button(root, text = ‘Button’) button.grid(column = 5, ...
      tkinter 列表布局管理 Grid 在学习其他控件之前,我们需要先了解 tkinter 布局管理概念(解决控件放在哪里的问题)。 虽然, tkinter 提供了多种控制布局的方式,但我还是建议使用 grid 处理所有布局问题。 下面,本文将聚焦 grid 布局管理方式,如果你有学习其他布局方式的需要,可以留言给我,我会在后继章节优先更新其他布局方式。 在 grid 布局中的所有控件都会被赋予一个行号和一个列号,这是每个控件相对于其他控件位置的凭证。 同一列控件上下排布,同一行控件左右排布。
      Tkinter Button控件是用于创建按钮的Tkinter小部件。它允许用户在GUI中单击按钮以触发事件和操作。以下是一个简单的Tkinter Button控件的示例: import tkinter as tk root = tk.Tk() button = tk.Button(root, text="Click me!") button.pack() root.mainloop() 在这个示例中,我们创建了一个名为"Click me!"的按钮,并将它放在Tkinter窗口中。当用户单击该按钮时,我们可以将回调函数与按钮关联,以触发特定的操作或事件。 Button控件有很多选项可以进行自定义,比如设置按钮的文本、颜色、字体、大小、边框等等。你可以在Tkinter文档中查看更多Button控件的选项和用法。
 
推荐文章
风度翩翩的莲藕  ·  用Bash雕刻文件,用grep找不到16进制值FFD8或FFD9
2 年前
犯傻的单车  ·  移植Linux中conda的环境_conda 加载gz_AiBigData的博客-CSDN博客
2 年前
难过的打火机  ·  [HTML5試試看-20] 溝通 - server sent event - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号