GUI编程01
1 tkinter
TkInter是标准的Python GUI库。的Python与Tkinter的结合提供了一个快速和容易的方法来创建GUI应用程序。 Tkinter的提供了一个强大的面向对象的接口Tk的GUI工具包.
1.1 使用Tkinter创建一个GUI应用程序是一件容易的事。所有你需要做的是执行以下步骤:
1.1.1 导入Tkinter模块
1.1.2 创建GUI应用程序的主窗口
1.1.3 添加上述部件之一或更多的GUI应用程序
1.1.4 进入主事件循环的由用户触发每个事件响应
from tkinter import * # 导入模块 root = Tk() # 创建主窗口对象root
root.title("测试窗口") # 设定主窗口的名称
root.geometry("400x400+400+100") # 设定主窗口的大小和位置
root.resizable(width = False, height = False) # 设定主窗口大小是否可改变 label01 = Label(root, text = "我是标签") # 添加标签对象在主窗口中
label01.pack() # 对label01对象进行布局 root.mainloop()
# 主循环 -->> 当所有对象都创建完成并且进行布局后就会进入主循环,等待事件触发
步骤实例
2 Label
2.1 说明:标签类
2.2 创建实例对象:label01 = Label(text = "warrior")
2.3 属性
text -->> 要显示的文本
bg -->> 背景颜色
bd -->> 外围边界宽度(相当于HTML中的marging属性)
font -->> 字体(还可以添加大小)
width -->> 宽度 宽度和高度不指定就会自动被撑开
height -->> 高度
2.4 简例
from tkinter import *
root = Tk()
root.geometry("400x400+400+200") # 实例化标签对象
label01 = Label(text = "warrior", bg = "red", bd = "", font = ("楷体", 10), width = 20, height = 20)
label01.pack() # 位标签对象布局 root.mainloop()
Label实例
3 Frame
3.1 说明:作为容器力气布局窗口
3.2 创建实例对象:fra01 = Frame(root)
3.3 简例
from tkinter import * root = Tk()
root.title("测试")
root.geometry("400x400+400+200")
root.resizable(width = False, height = False) lab01 = Label(text = "我是标签", bg = "red", bd = "")
lab01.pack() fra = Frame(root) # 创建一个容器对象, 根对象是root fra_l = Frame(fra) # 创建一个容器对象,根对象是fra # 创建两个标签对象,这俩个标签对象都在fra_l这个容器中
lab_l1 = Label(fra_l, text = "左上", bg = "blue").pack(side = TOP)
lab_l2 = Label(fra_l, text = "左下", bg = "red").pack(side = TOP)
fra_l.pack(side = LEFT) fra_r = Frame(fra) # 创建一个容器对象,根对象是fra # 创建两个标签对象,这两个标签对象都在fra_r这个容器中
lab_r1 = Label(fra_r, text = '右上', bg = "red").pack(side = TOP)
lab_r2 = Label(fra_r, text = '右下', bg = "blue").pack(side = TOP)
fra_r.pack(side = RIGHT) fra.pack() root.mainloop()
Frame实例
4 Entry
4.1 说明:创建单行文本框
4.2 创建实例对象:e = Entry(root, textvariable = var)
4.3 简例
from tkinter import * root = Tk()
root.title("测试")
root.geometry("400x400+400+200")
root.resizable(width = False, height = False) var = Variable() # 创建一个变量对象
e = Entry(root, textvariable = var) # var变量对象被绑定在文本框的内容属性
# 改变变量对象var的值时文本框对象的内容就会相应改变 var.set("warrior") # 为变量对象var设定内容
e.pack() root.mainloop()
Entry
5 Text
5.1 说明:向该空间内输入文本
5.2 创建实例对象:t = Text(root)
5.3 方法
5.3.1 t.insert(1.0, "warrior\n") t.insert(END, "fury")
5.3.2 t.delete(1.0, 2.0)
5.4 简例
from tkinter import * root = Tk()
root.title("测试")
root.geometry("400x400+400+200")
root.resizable(width = False, height = False) t = Text(root) # 创建多行文本实例
t.insert(1.0, "warrior\n")
t.insert(END, "fury")
t.insert(END, "HELLO")
t.insert(1.0, "WORLD\n")
t.delete(1.0, 2.0)
t.pack() b = Button(root, text = "按钮")
b.pack() root.mainloop()
Text
6 Button
6.1 说明:按钮
6.2 实例化对象:b2 = Button(root, text = "点击退出", command = root.quit) 备注:root.quit 是退出实例 root 的意思
6.3 简例
from tkinter import * root = Tk()
root.title("测试")
root.geometry("400x400+400+200")
root.resizable(width = False, height = False) t = Text(root) # 创建多行文本实例
t.pack() def print_hello() :
t.insert(END, "重庆.足智\n") b1 = Button(root, text = "点击打印", command = print_hello)
b1.pack() b2 = Button(root, text = "点击退出", command = root.quit)
b2.pack() root.mainloop()
Button

7 Listbox
7.1 说明:Listbox为列表框控件,它可以包含一个或多个文本项(text item),可以设置为单选或多选
7.2 实例化对象:lb = Listbox(root)
7.3 通过设定selectmode属性可以设定为单选或者多选(默认是单选)
7.4 简例
from tkinter import * root = Tk()
root.title("测试")
root.geometry("400x400+400+200")
root.resizable(width = False, height = False) lb = Listbox(root) # 创建一个列表实例对象
for item in ['python', 'java', 'php']: # 向列表对象插入数据
lb.insert(END, item) lb.pack() lb01 = Listbox(root, selectmode = MULTIPLE) # 多选模式
for item in ['java', 'c++', 'node.js'] :
lb01.insert(END, item)
lb01.pack()
root.mainloop()
Listbox

7.5 问题:怎么绑定事件
带更新......
8 滚动条
待更新......
GUI编程01的更多相关文章
- 用 eric6 与 PyQt5 实现python的极速GUI编程(系列01)--Hello world!
[题记] 我是一个菜鸟,这个系列是我的学习笔记. PyQt5 出来有一段时间了, PyQt5 较之 PyQt4 有一些变化,而网上流传的几乎都是 PyQt4 的教程,照搬的话大多会出错. eric6 ...
- 初次踏上GUI编程之路(有点意思,详细介绍了菜鸟的学习之路)
初次踏上GUI编程之路 —— 我的Qt学习方法及对Qt认识的不断转变 -> 开始接触GUI与开始接触Qt: 话说,我第一次看见“Qt”这一个名词,好像是在CSDN网站的主页上吧,因为CSDN好像 ...
- 实验十五 GUI编程练习与应用程序部署
实验十五 GUI编程练习与应用程序部署 实验时间 2018-12-6 一:理论部分 1.Java 程序的打包:编译完成后,程序员将.class 文件压缩打包为 .jar 文件后,GUI 界面序就可以 ...
- MATLAB串口操作和GUI编程
程序说明 V1.0 2015/2/08 MATLAB串口操作和GUI编程 概述 本文介绍了程序AD9512_Serial_GUI的编程思路和功能.该程序设计到MATLAB的图像用户界面编程的基 ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- 1.JAVA之GUI编程概述
下列内容为本人看毕向东老师java视频教程学习笔记! JAVA GUI图形用户界面编程: Windows 操作系统提供两种操作方式: ...
- 2.JAVA之GUI编程布局
布局管理器 容器中的组件排放方式,就是布局 常见的布局管理器: **************************************************** 1.FlowLayout(流式 ...
- 3.JAVA之GUI编程Frame窗口
创建图形化界面思路: 1.创建frame窗体: 2.对窗体进行基本设置: 比如大小.位置.布局 3.定义组件: 4.将组件通过add方法添加到窗体中: 5.让窗体显示,通过setVisible(tur ...
- 4.JAVA之GUI编程事件监听机制
事件监听机制的特点: 1.事件源 2.事件 3.监听器 4.事件处理 事件源:就是awt包或者swing包中的那些图形用户界面组件.(如:按钮) 事件:每一个事件源都有自己特点有的对应事件和共性事件. ...
随机推荐
- NAT123之类的软件是如何实现访问域名然后穿透到内网主机的80端口?——有公网ip就是动态域名解析,没有就是穿透+代理转发
实际上两种都用到了:1,服务提供商(123NAT,花生壳)做Proxy转发 2,两个私网地址直接连接:STUN 和TURN 使用动态域名解析还是端口映射 什么情况下使用动态域名解析?什么情况下使用 ...
- Hive数据分析——Spark是一种基于rdd(弹性数据集)的内存分布式并行处理框架,比于Hadoop将大量的中间结果写入HDFS,Spark避免了中间结果的持久化
转自:http://blog.csdn.net/wh_springer/article/details/51842496 近十年来,随着Hadoop生态系统的不断完善,Hadoop早已成为大数据事实上 ...
- ajax返回的值有两种方法,一种是把async:true改为false。 另一种是回调函数。
function load_val(callback){//定义一个回调函数 $.getJSON('test.php' , function(dat){ callback(data);//将返回结果当 ...
- GEF入门实例_总结_03_显示菜单和工具栏
一.前言 本文承接上一节: GEF入门实例_总结_02_新建初始RCP空项目 这一节,我们来给我们的插件加上菜单. 二.基础知识 1.action bar.menubar.coolbar 含义 a ...
- SpringCloud教程 | 第五篇: 路由网关(zuul)
在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现.服务消费.负载均衡.断路器.智能路由.配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统.一个简答的微服务系统如下图: ...
- @angular/cli项目构建--http(2)
客户端GET设置参数查询: search() { const params = new HttpParams() .set('userName', this.userName) .set('fullN ...
- ACM提交,C++,G++,C,GCC的区别
今天做了一道水题,POJ-1004,水题一个,12个double类型的数求平均数 但是, #include <iostream> #include <cstdio> using ...
- 2017-2018-1 20179215《Linux内核原理与分析》第十二周作业
Sql注入基础原理介绍 分组:和20179205王雅哲共同完成实验 一.实验说明 1.1 sql注入 SQL注入攻击通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组 ...
- 畅通工程(kruskal算法)
个人心得:日了狗,WR了俩个小时才发现是少了个vector清理,我也是醉了,不过后面还是对这个有了更好得了解,一是我得算法,而是学长改进 后的算法,改进后得算法还要判断所有村庄是否在连在一起,其实我觉 ...
- centos安装教程
centos7和6.x有很大的差别,在第一次安装的时候遇到了很多坑,一共安装了三次才成功 如果是用window自带的Hyper-v装centos时 安装包在\\10.10.10.1\ShareDo ...