首页 > 编程语言 >python GUI编程

python GUI编程

时间:2022-09-19 14:35:14浏览次数:64  
标签:控件 Widget 窗口 python GUI 编程 ttk tkinter root

GUI英文全称是Graphical User Interface,中文为图形用户接口。

tkinter是pythonGUI编程的一个库。

主要分为三步,

  1. 首先建立一个窗口(设置参数),
  2. 然后在窗口上放置组件(文本框、按钮、菜单,滚动条之类的),
  3. 还有就是对组件的位置布局。

一、建立窗口

通常将使用Tk( )方法建立的窗口称为根窗口,之后可以在此根窗口中建立许多控件,也可以在此根窗口中建立上层窗口。

mainloop( )方法可以让程序继续执行,同时进入等待与处理窗口事件,单击窗口右上方的“关闭”按钮,此程序才会结束。

from tkinter import *
root = Tk()
root.mainloop()

注 在GUI程序设计中,有时候也将上述所建立的窗口(window)称为容器(container)。

窗口设置

image

背景颜色

除了可以使用名称直接设置色彩,还可以使用十六进制方式设置色彩RGB,其中每个色彩用两个十六进制数字表示。

from tkinter import *
root = Tk()
root.configure(bg='#00ff00') # 背景色
root.iconbitmap('mystar.ico') # 图标
root.mainloop()

窗口的位置和大小

geometry( )方法除了可以设置窗口的大小,也可以设置窗口的位置,此时它的语法格式如下。

geometry(widthxheight+x+y)

上述widthxheight已说明是窗口的宽和高,

width与height用x分隔。

“+x”表示x是窗口左边距离屏幕左边的距离,

如果是“-x”,则表示x是窗口右边距离屏幕右边的距离。

“+y”表示y是窗口上边距离屏幕上边的距离,

如果是“-y”则表示y是窗口下边距离屏幕下边的距离。

from tkinter import *
root = Tk()
root.geometry("300x160+400+200")
root.configure(bg='#00ff00')
root.mainloop()

在tkinter模块中可以使用下列方法获得屏幕的宽度和高度。

screenwidth  = root.winfo_screenwidth()
screenheight  = root.winfo_screenheight()

# 将窗口放在屏幕中间

from tkinter import *
root = Tk()
screenwidth  = root.winfo_screenwidth()
print(screenwidth)
screenheight  = root.winfo_screenheight()
print(screenheight)
wid = 300
hei = 160
x = int((screenwidth-wid)/2)
y = int((screenheight-hei)/2)
root.geometry(f'{wid}x{hei}+{x}+{y}')
root.mainloop()

二、tkinter的Widget

Widget可以翻译为控件或组件或部件。窗口建立完成后,下一步是在窗口内建立控件,我们将这些控件统称为Widget。

(1)Button(按钮)

(2)Canvas(画布)

(3)Checkbutton(多选按钮):

(4)Entry(文本框)

(5)Frame(框架)

(6)Label(标签):

(7)LabelFrame(标签框架)

(8)Listbox(列表框)

(9)Menu(菜单):

(10)MenuButton(菜单按钮):这个是过时的控件,已经被Menu( )取代。

(11)Message(消息)

(12)OptionMenu(下拉式菜单)

(13)PanedWindow(面板)

(14)Radiobutton(单选按钮)

(15)Scale(尺度)

(16)Scrollbar(滚动条):

(17)Spinbox(可微调输入控件)

(18)Text(文字区域):(18)Text(文字区域):

tkinter在后来也推出了加强版的模块,称为tkinter.ttk,有时简称ttk

这个模块中有17Widget。下列是ttk模块新增的**Widget。

(1)Combobox:(2)Notebook:(3)Progressbar:

(4)Separator:(5)Sizegrip:(6)Treeview:

导入上述模块可以使用下列方式。

from tkinter import ttk
  • 使用ttk可以有更好的外观,而且也可以跨平台使用,不过并没有100%兼容。
  • 例如,fg、bg参数或一些外观相关的参数tk和ttk是不相同。
  • ttk使用的是ttk.Style类别。

Widget的共同属性

Dimensions:大小,

Colors:颜色,

Fonts:字形,

Anchor:锚(位置参考点),

Relief styles:属性边框,

Bitmaps:显示位图,

Cursors:鼠标外形

Widget的共同方法

Configuration

  • (1)config(option=value):Widget属性可以在建立时设置,也可以在程序执行时使用config( )重新设置,
  • (2)cget("option"):取得option参数值,
  • (3)keys( ):可以用此方法获得所有该Widget的参数,

Event Processing

  • (1)mainloop( ):让程序继续执行,同时进入等待与处理窗口事件,相
  • (2)quit( ):Python Shell窗口结束,但是所建窗口继续执行,
  • (3)update( ):更新窗口画面,

Event callbacks

  • (1)bind(event,callback):事件绑定,
  • (2)unbind(event):解除绑定,

Alarm handlers

  • after(time,callback):间隔指定时间后调用callback( )方法

窗口控件配置管理员

一个实用的程序中一定是一个窗口含有多个Widget控件,

这时就会牵涉应如何将这些Widget控件配置到容器或窗口内。

在设计GUI程序时,可以使用三种方法包装和定位各组件在容器或窗口内的位置,

这三个方法又称窗口控件配置管理员(Widget Layout Manager)。

(1)pack方法: (2)grid方法: (3)place方法:

具体怎么配置,再去查

标签:控件,Widget,窗口,python,GUI,编程,ttk,tkinter,root
From: https://www.cnblogs.com/fhy-blog/p/16707581.html

相关文章

  • python 网络编程
    IP地址联网设备(电脑)每次介入网络,都会按照网络的规则,分配身份证号码,每个IP地址对应一个设备。每次进入网络IP地址未必相同。查看电脑IP地址windows:ipconfigIP地址就是I......
  • Python: __slots__
     __slots__定义为类属性,约束实例属性,类定义__slots__后,实例就没有__dict__ 子类和父类都定义__slots__后,子类可有全部__slots__属性  父类存在__slots......
  • python函数参数传递 可更改对象 不可更改对象
    1、函数分为内联函数和自定义函数2、参数传递:在python中,类型属于对象,变量是没有类型的例如:[1,2,3] 是List类型,"Runoob" 是String类型,而变量a是没有类型,她仅仅......
  • python lambda创建匿名函数
    注意:lambda只是一个表达式,函数体比def简单很多。lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。lambda函数拥有自己的命名空......
  • 网络编程 一
    IP地址联网设备(电脑)每次介入网络,都会按照网络的规则,分配身份证号码,每个IP地址对应一个设备。每次进入网络IP地址未必相同。查看电脑IP地址windows:ipconfigIP地址就是I......
  • 河北稳控科技可编程 USB 转串口适配器开发板芯片驱动文件说明
    可编程USB转UART/I2C/SMBusS/SPI/CAN/1-Wire适配器USB2S芯片驱动文件说明 芯片选择下拉框内列出的每一个备选芯片的驱动文件和数据手册位于S2STool工具文件夹中的......
  • CAPL编程语言快速入门
    前言  提到CAPL,相信各位一定不陌生,它是由Vector公司开发的类似于C语言的面向过程编程语言,是CANoe和CANalyzer中可用的编程语言。CAPL中程序块的执行由事件控制,在专用......
  • Python--不定长参数
    不定长参数:在定义函数的时候,参数的个数不是固定的。未来的调用者,可能自由选择不传或者传几个或者传很多定义函数:1、*args    在定义函数是用*args来接受,其......
  • Python工具箱系列(六)
    相比较于windows下安装python,在Linux下安装python实际上是一个非常困难的选择。首先要解决的就是选择哪个发行版本的问题。Linux的内核掌握在技术团队中,但是Linux发行版本......
  • Python 与 Smalltalk 相比如何?
    Python与Smalltalk相比如何?Python是目前世界上最流行的编程语言,根据TIOBE,PYPL,和IEEE频谱.红僧将Python排在第2位。Python是两种最受欢迎​​的职位发......