第一个python程序

#!/usr/bin/python

# -*- coding: UTF-8 -*-

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

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

#注意大上面两种语句的大小写,本人的Python 版本是 3.7.3 故而使用下面的小写方式

from tkinter import *

# 创建一个根窗口,其余的控件都在这个窗口之上

root = Tk()

# 创建一个Label控件,指定其父窗口控件位创建的根窗口

w = Label(root, text = "Hello world")

# 显示label控件,pack方法会让label显示,并根据文本内容自动调节大小

w.pack()

# 让根窗口进入事件循环

root.mainloop()

上面学习自 https://www.cnblogs.com/deen-/p/7464750.html

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))

Label

#Label文本

strContent = "这是标签控件,属性:bg设置背景颜色,fg设置文本颜色"

label = Label(self.root, text=strContent,bg='red',fg='blue',height=3)

label.grid(row=0, column=0)

Entry

def initUI(self):

#Entry

# 不可使用text属性来设定

en0 = Entry(self.root, text='请输入文本...',width=50, bg='red')

en0.grid(row=1, column=0, sticky='E')

# 使用StringVar()来绑定Entry,通过set来设定初始化值,通过get来获取,其输入值可改变

self.inputVar = StringVar()

self.inputVar.set('请输入内容....')

en1 = Entry(self.root, textvariable=self.inputVar, width=50,bg='yellow')

en1.grid(row=2, column=0, sticky='E')

Button(self.root, text='确认1', command=self.sureEvent1).grid(row=2, column=1)

# 密码输入框

self.inputVar2 = StringVar()

self.inputVar2.set('请输入密码')

en2 = Entry(self.root, textvariable=self.inputVar2, width=50,show='*')

en2.grid(row=3, column=0, sticky='E')

Button(self.root, text='确认2', command=self.sureEvent2).grid(row=3, column=1)

# 设置输入框属性

# 属性值有4个:normal(可写),disabled(不可操作), readonly(只读,不可操作),通过state来设定

self.inputVar3 = StringVar()

self.inputVar3.set('readonly')

en3 = Entry(self.root, textvariable=self.inputVar3, width=50,state='readonly')

en3.grid(row=4, column=0, sticky='E')

Button(self.root, text='确认3', command=self.sureEvent3).grid(row=4, column=1)

def sureEvent1(self):

inputStr = self.inputVar.get()

print(u'您的第二个输入框内容:' + inputStr)

def sureEvent2(self):

inputStr = self.inputVar2.get()

print(u'您的第三个输入框内容:' + inputStr)

def sureEvent3(self):

inputStr = self.inputVar3.get()

print(u'您的第四个输入框内容:' + inputStr)

上面转载 https://www.cnblogs.com/SkyflyBird/p/10346148.html

python gui tkinter_Python GUI tkinter 学习笔记(一)相关推荐

  1. python的GUI编程和tkinter学习笔记——第一个GUI程序

    一.第一个GUI程序 from tkinter import * from tkinter import messagebox# 创建窗口 root = Tk()btn01 = Button(root ...

  2. Python tkinter 学习笔记(2)-- 控件、组件(二)

    Python tkinter 学习笔记(1)-- 第一个窗口之HelloWorld 教程 Python tkinter 学习笔记(2)-- 控件.组件(一) > 续上一章节 Python tki ...

  3. Python tkinter 学习笔记(3) -- 界面布局1(grid和pack)

    Python tkinter 学习笔记(1)-- 第一个窗口之HelloWorld 教程 Python tkinter 学习笔记(2)-- 控件.组件(一) Tkinter 界面布局(grid\pac ...

  4. Python tkinter 学习笔记(2)-- 控件、组件(一)

    Python tkinter 学习笔记(1)-- 第一个窗口之HelloWorld 教程 目录 一.Tkinter 15种基础控件 1. Button 按钮控件 2.Canvas 画图控件 3.Che ...

  5. Python基础教程-菜鸟教程学习笔记1

    Python基础教程-菜鸟教程学习笔记1 文章目录 Python基础教程-菜鸟教程学习笔记1 前言 Python 简介 1. 第一个Python程序 2. Python 中文编码 3. 基本语法 1) ...

  6. Python预测 数据分析与算法 学习笔记(特征工程、时间序列)

    微信公众号:数学建模与人工智能 GitHub - QInzhengk/Math-Model-and-Machine-Learning 第3章 探索规律 3.1 相关分析 相关关系是一种与函数关系相区别 ...

  7. Python可视化物理随机过程---pygame学习笔记2

    Python可视化物理随机过程-pygame学习笔记2 文章目录 Python可视化物理随机过程---pygame学习笔记2 一.扩散现象的简单的介绍 二.代码实现 三.运行代码的效果展示 四.总结 ...

  8. python的符号lt和gt怎么输入_lt;lt;Python基础教程gt;gt;学习笔记 | 第12章 | 图形用户界面...

    Python支持的工具包非常多.但没有一个被觉得标准的工具包.用户选择的自由度大些.本章主要介绍最成熟的跨平台工具包wxPython.官方文档: ------ 丰富的平台: Tkinter实际上类似于 ...

  9. python用户界面导入图片_python学习笔记之11:图像用户界面

    这里会介绍如何创建python程序的图像用户界面(GUI),也就是那些带有按钮和文本框的窗口等.目前支持python的所谓"GUI工具包"的有很多,本文简要介绍最成熟的跨平台pyt ...

  10. python查看方法作用_python学习笔记1,新手小白也能看得懂

    这是酸菜在风变编程上学习python时积累的学习笔记,希望能帮到同样也在学习中的小伙伴.持续更新~ 第0关 Print()函数 (1)不带引号:让计算机读懂括号里的内容,打印最终的结果 例:print ...

最新文章

  1. C/C++数组初始化的一些误区
  2. php删除框架集,delete 删除-Medoo - 高效的轻量级PHP数据库框架, 提高开发效率!
  3. allegro大十字光标设置方法
  4. 活久见!一美国大爷发明了永不掉链子的自行车,垂直踩踏即可驱动
  5. Visual Studio 配色方案
  6. 【struts2】预定义拦截器
  7. mysql 8.0.x版本压缩包安装方式
  8. scala切片_Scala切片功能
  9. 国内10大广告联盟各自有哪些优势?
  10. SpringMCV结构
  11. 【CITE】C#默认以管理员身份运行程序实现代码
  12. 沉痛悼念游戏开发技术专家毛星云
  13. 电子科技大学生物信息学 重点
  14. 【实战】下载歌曲只能开绿钻?NoNoNo, Python爬虫,无所不能。
  15. qt触摸屏隐藏鼠标指针
  16. 真正从零开始搭建网站—宝塔面板+wordpress(超详细教程)
  17. Java:BigDecimal的学习与使用
  18. AI人工智能毕业设计课题:动物识别系统
  19. 无线路由器服务器名怎么设置,服务器改无线路由器怎么设置
  20. 白嫖高级神器,不付费真香!

热门文章

  1. P2294 [HNOI2005]狡猾的商人(带权并查集+前缀和)
  2. python源文件后缀_python 文件后缀杂录
  3. JavaScript基础知识笔记
  4. 2017第二届广东省强网杯线上赛——WEB-who are you?
  5. 奶爸日记8 - 自行车
  6. 【每日早报】2019/07/31
  7. FFA-Net: Feature Fusion Attention Network for Single Image Dehazing (AAAI 2020)用于单图像去叠的特征融合注意力网络
  8. 阿里云云服务器使用须知(全套详解)
  9. 【mysql知识点整理】 --- 准确理解 in 和 exists
  10. 如何发掘各种暴利的赚钱项目,如何知道别人在干什么赚钱