python GUI(Tkinter)

Tkinter简介

  是python内置的标准GUI库,在安装python后,导入模块即可正常使用,Tk和Tkinter可在大多数的Unix,以及Windows和Macintosh系统上运行。

关于Tkinter的导入(注意大小写)

在2.x版本上,编写为:from Tkinter import *

在3.x版本上,编写为:from tkinter import *

Tkinter组件

控件 描述                                                 
Button 按钮控件
Canvas 画布控件,显示图形元素如线条或文本
Checkbutton 多选框控件,不存在互斥,可多个选择
Entry 输入控件,用于输入或者显示文本内容
Frame 框架控件,在屏幕上显示一个矩形区,多用于作为容器
Label 标签控件,可用于显示文本和位图
Listbox 列表控件
Menubutton 菜单项按钮控件
Menu 菜单控件,显示菜单栏,下拉菜单和弹出菜单等
Message 消息控件,用于显示多行文本,与Label类似
Radiobutton 多选框控件,存在互斥,多个只能选择一个
Scale 范围控件,显示一个数值刻度并设定范围
Scrollbar 滚动条控件,当内容超过可视化区域的时候使用,比如列表框
Text 文本控件,用于显示多行文本
Toplevel 容器控件,用来提供一个单独的对话框,和Frame类似
Spinbox 输入控件,与Entry类似,但是可以指定输入范围值
PanedWindow 窗口布局管理的插件,可以包含一个或多个子控件
LabelFrame 容器控件,常用于负责的窗口布局
tkMessageBox 用于显示你应用程序的消息框

Tkinter组件的共同属性

属性    描述                                           
Dimension 控件大小
Color 控件颜色
Font 控件字体
Anchor 锚点
Relief 控件样式
Bitmap 位图
Cursor 光标

Tkinter组件的布局管理,有三种:pack, grid,place

关于布局管理的,推荐网友博客(感谢分享):https://blog.csdn.net/liuxu0703/article/details/54428405

关于Grid讲解的,推荐网友博客:https://blog.csdn.net/ligou8000/article/details/46331075

我只简单的说明grid的几种属性,用于大家对下面控件示例代码的理解。

option           说明                                                         
row 控件摆放的行数值,从0开始,
column 控件摆放的列数值,从0开始
rowspan 可指定控件跨越多行显示,
column 可指定控件跨越多列显示,
padx x轴方向的填充,在控件外部的左右部分填充指定长度,数值必须大于0
pady y轴方向的填充,在控件外部的上下部分填充指定长度,数值必须大于0
sticky
控件的对齐方式,默认会居中显示,可以使用的值有:

N/S/E/W,分别代表上,下,左,右。

如果你希望控件左对齐的话,可以编写程序: sticky=E

如果你希望控件左上对齐的话,可以编写程序: sticky=E+N

Tkinter的使用示例:

首先搭建框架相关

# -*- coding:utf-8 -*-
# __author__ = ‘Code~‘

import Tkinter                  # 引用Tkinter库
from Tkinter import *           # 导入Tkinter库方法

DEF_PATH = ‘C:\Python27‘
# 消息框模块
class MsgBox:
    def __init__(self):
        # 创建Tkinter对象
        self.root = Tkinter.Tk()
        # 标题
        self.root.title(‘Tkinter Demo‘)
        # 设定窗口大小,注意‘x’一定要小写,否则TclError: bad geometry specifier "500X400"
        self.root.geometry(‘500x400‘)
        # 初始化UI相关
        self.initUI()
        # 消息循环
        self.root.mainloop()

    # 初始化控件
    def initUI(self):
        root = self.root   

if __name__  == "__main__":
    messageBox = MsgBox()

接下来我们会将UI控件的示例编写在方法initUI中,为了查看方便,会分块展示:

Button

# text:按钮标题
# command: 事件绑定,当按钮被点击时,会执行
Button(self.root, text=‘按钮‘, command=self.BtnEvent).grid(row=0, column=0)

def BtnEvent(self):
    print(u‘您点击了按钮‘)

Checkbutton

self.chkVar = []
for i in range(4):
    _str = ‘CheckBtn‘ + str(i)  # 标题
    # 注意,此处不可编写为self.chkVar[i] = IntVar()
    # 否则报错:IndexError: list assignment index out of range
    self.chkVar.append(IntVar())
    # text: 标题
    # variable: 对象整型变量
    # command: 关联事件
    chkBtn = Checkbutton(self.root,text=_str,variable=self.chkVar[i],command=self.chkEvt)
    chkBtn.grid(row=1, column=(i+1))

# 事件
def chkEvt(self):
    for i in range(4):
       # 获取选中状态,如果选中为1,否则为0
        index = self.chkVar[i].get()
        if index > 0:
             print(u‘你选择的按钮为:CheckBtn‘ + str(i))

Radiobutton

# 注意此处,可不用使用列表
self.radioVar = IntVar()
for i in range(1,4):
    _str = ‘RaidoBtn‘ + str(i)
    # text: 标题
    # variable: 对象的整型变量
    # value: 获取选择对象的索引
    radioBtn = Radiobutton(self.root,text=_str,variable=self.radioVar,value=i,command=self.radioEvt)
    radioBtn.grid(row=2, column=(i+1))

def radioEvt(self):
        index = self.radioVar.get()
        print(u‘你选择的radioButton的索引为:‘ + str(index))

原文地址:https://www.cnblogs.com/SkyflyBird/p/10346148.html

时间: 2024-11-11 07:08:43

python GUI(Tkinter)的相关文章

Python GUI - Tkinter tkMessageBox

Python GUI - Tkinter tkMessageBox: tkMessageBox模块用于显示在您的应用程序的消息框.此模块提供了一个功能,您可以用它来显示适当的消息 tkMessageBox模块用于显示在您的应用程序的消息框.此模块提供了一个功能,您可以用它来显示适当的消息. 这些功能有些是showinfo,showwarning,showerror,askquestion,askokcancel,askyesno,askretryignore. 方法: 这里是一个简单的语法来创建

Python GUI with Tkinter (from youtube) 在youtube上能找到很多编程视频...

Python GUI with Tkinter - 1 - Introduction以上链接是一个python tkinter视频系列的第一讲的链接.虽然英语不好,但是,程序还是看得懂的(照着做就可以了),所以找不到中文视频时看下这些英语视频也是可以的. 以下是我在看视频过程中的练习, 可以在python2.7下运行. 001: hello,world: from Tkinter import Label, Tk root = Tk() thelabel = Label(root, text="

python GUI编程(Tkinter)

python GUI编程(Tkinter) python提供了多个图形开发界面的库,几个常用Python GUI库如下: Tkinter: Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里.,Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中. wxPython:wxPython 是一款开源软件,是 Python 语言的一套优

Python GUI programming(tkinter)

python3之前的版本用Tkinter,之后用的是tkinter 最简单的使用Tkinter的代码,首先要Tk()建立一个窗口,然后加进各种Widget from Tkinter import * window = Tk() label = Label(window, text = "Welcome to Python") button = Button(window, text = "Click me") label.pack() button.pack() w

Python GUI编程各种实现的对比

Python GUI编程各种实现的对比 从 Python 语言的诞生之日起,就有许多优秀的 GUI 工具集整合到 Python 当中,这些优秀的 GUI 工具集,使得 Python 也可以在图形界面编程领域当中大展身手,由于 Python 的流行,许多应用程序都是由 Python 结合那些优秀的 GUI 工具集编写的.下面分别介绍 Python GUI 编程的各种实现,下面的许多内容都是来自维基百科(文章后面列出了参考),这里就当做是一个没有技术色彩的整合吧. 1.Tkinter 简单介绍: 是

python的tkinter使用

__author__ = 'Python' import tkinter as tk class Application(tk.Frame):     def __init__(self, master=None):         tk.Frame.__init__(self,master)         self.pack()         self.createWidgets()     def createWidgets(self):         #self.hi_there =

python--DenyHttp项目(1)--GUI:tkinter? module 'tkinter' has no attribute 'messagebox'

AttributeError: module 'tkinter' has no attribute 'messagebox' improt tkinter from tkinter import * import tkinter as tk 以上三种尝试之后,都没有解决问题,最后查找了python安装目录的tkinter模块,确实找到了messagebox.py 于是: from tkinter import messageox 问题解决 python--DenyHttp项目(1)--GUI:t

python GUI尝鲜(但当涉猎,见往事耳)

第一步:简单的窗口和内容 import tkinter as tk window = tk.Tk() # 窗口obj对象 window.title('my TK') # 窗口名字 window.geometry('200x100') # 窗口宽度和高度 # Label对象传入相应参数text:文本内容; bg:背景; font:字体; width.height 内容的宽度.高度 l = tk.Label(window,text='OMG this is TK!',bg='green',font=

分享13个Python GUI库

Python Python是一门高级编程语言.它用于通用编程.Python语言由Guido van Rossum创建,并于1991年首次发布.Python的设计哲学着重于代码的可读性.因此空白在Python中具有重要的意义. Python提供了允许在小规模和大规模上编程的设计理念,而且具有一个非常庞大的标准库.Python使用动态类型系统,并具有自动内存管理功能. Python支持多种编程范式,其中包括: 面向对象命令式函数式程序式图形用户界面(GUI) GUI是一个人机交互的界面,换句话说,它