十二.GUI
tkinter模块(tkinter是一个跨平台的PythonGUI工具包):
#Tkinter是一个跨平台的Python GUI工具包
import tkinter
top=tkinter.Tk() #可以不写
btn=tkinter.Button()
#pack()控制从属控件在所属主体内部出现的位置
btn.pack()
btn["text"]="Click Me!" def clicked():
print("I was clicked!")
btn["command"]=clicked #不能是clicked(),要指向函数本身。 #下面的写法也可以
#btn.config(text="Click Again",command=clicked) #如果没有指定主控件,则指向顶级主窗口
tkinter.Button(text="Click Again",command=clicked).pack()
tkinter.Label(text="I'm in the first window!").pack() #建立主窗口外另一个窗口,并用label指向它
second=tkinter.Toplevel()
tkinter.Label(second,text="I'm in the second window!").pack() for i in range(10):
tkinter.Button(text=i).pack() def callback(event):
print(event.x,event.y)
#通过bind关联事件到top
top.bind("<Button-1>",callback) tkinter.mainloop()
print("Finish")
GUI文本编辑器:
#Tkinter是一个跨平台的Python GUI工具包
import tkinter,tkinter.scrolledtext
#----------------------------------------
Top=tkinter.Tk()
Top.title("simple editor")
TextContents=tkinter.scrolledtext.ScrolledText()
#pack()控制从属控件在所属主体内部出现的位置
TextContents.pack(side=tkinter.BOTTOM,expand=True,fill=tkinter.BOTH)
FileName=tkinter.Entry()
FileName.pack(side=tkinter.LEFT,expand=True,fill=tkinter.X)
#----------------------------------------
def load(filename,contents):
with open(filename.get()) as file:
contents.delete("1.0",tkinter.END)
contents.insert(tkinter.INSERT,file.read())
def save(filename,contents):
with open(filename.get(),"w") as file:
file.write(contents.get("1.0",tkinter.END))
#-----------------------------------------
def buttonLoad():
load(FileName,TextContents)
def buttonSave():
save(FileName,TextContents)
tkinter.Button(text="Open",command=buttonLoad).pack(side=tkinter.LEFT)
tkinter.Button(text="Save",command=buttonSave).pack(side=tkinter.LEFT)
#-----------------------------------------
tkinter.mainloop()
Myself
from tkinter import *
from tkinter.scrolledtext import ScrolledText
#---------------------
top=Tk()
top.title("simple editor")
contents=ScrolledText()
#pack()控制从属控件在所属主体内部出现的位置
contents.pack(side=BOTTOM,expand=True,fill=BOTH)
filename=Entry()
filename.pack(side=LEFT,expand=True,fill=X)
#----------------------
def load():
with open(filename.get()) as file:
contents.delete("1.0",END)
contents.insert(INSERT,file.read())
def save():
with open(filename.get(),"w") as file:
file.write(contents.get("1.0",END))
#----------------------
Button(text="Open",command=load).pack(side=LEFT)
Button(text="Save",command=save).pack(side=LEFT)
mainloop()
Not Myself
十二.GUI的更多相关文章
- Android系统--输入系统(十二)Dispatch线程_总体框架
Android系统--输入系统(十二)Dispatch线程_总体框架 1. Dispatch线程框架 我们知道Dispatch线程是分发之意,那么便可以引入两个问题:1. 发什么;2. 发给谁.这两个 ...
- JAVA之旅(三十二)——JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用
JAVA之旅(三十二)--JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用 GUI写到一半电脑系统挂了,也就算了,最多GUI还有一个提示框和实例, ...
- Gradle 1.12 翻译——第十二章 使用Gradle 图形用户界面
有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com ...
- 201771010126 王燕《面向对象程序设计(Java)》第十二周学习总结
实验十二 图形程序设计 实验时间 2018-11-14 1.实验目的与要求 (1) 掌握Java GUI中框架创建及属性设置中常用类的API: 创建空框架 . 在Java中,常采用框架(Frame) ...
- 马凯军201771010116《面向对象与程序设计Java》第十二周学习总结
一.理论与知识学习部分 Java的抽象窗口工具箱(Abstract Window Toolkit, AWT)包含在java.awt包中,它提供了许多用来设计GUI的组件类和容器类. 大部分AWT组件都 ...
- 刘志梅2017710101152.《面向对象程序设计(java)》第十二周学习总结
实验十二 图形程序设计 实验时间 2018-11-14 1.理论知识 (1) 基本AWT库采用将处理用户界面元素的任务委派给每个目标平台的本地GUI工具箱的方式,由本地GUI工具箱负责用户界面元素的 ...
- 201771010134杨其菊《面向对象程序设计java》第十二周学习总结
第十二周学习总结 第一部分:理论知识 内容概要: AWT与Swing简介:框架的创建:图形程序设计: 显示图像: 1.AWT组件: 2.Swing 组件层次关系 3 .AWT与Swing的关系:大部分 ...
- JMeter—监听器(十二)
参考<全栈性能测试修炼宝典JMeter实战>第六章 JMeter 元件详解中第七节监听器用来显示JMeter取样器的测试结果,能够以树.表.图形形式显示,也可以以文件方式保存. 一.设置默 ...
- 第十二周作业_PSP总结报告
回顾1 (1)回想一下你曾经对计算机专业的畅想 当初你是如何做出选择计算机专业的决定的?经过一个学期,你的看法改变了么,为什么? 你认为过去接触到的课程是否符合你对计算机专业的期待,为什么?经过一个学 ...
随机推荐
- hdu 5409 CRB and Graph(边双联通分量)
题意: 给一个图一些边,保证图连通 问对于每条边,如果去除该边后使得图中一些点不连通.设这些点(u,v),要求使u尽量小,v尽量大,输出这样的(u,v).否则输出0 0. #include <b ...
- SP1805 Largest Rectangle in a Histogram
题目链接: 洛谷SP1805 题意: 如图所示,在一条水平线上有n个宽为1的矩形,求包含于这些矩形的最大子矩形面积(图中的阴影部分的面积即所求答案) 输入格式: 有多组测试数据,每组数据占一行.输入零 ...
- Centos系统安装 phpredis 扩展
Git地址:https://github.com/nicolasff/phpredis 一.安装: phpize ./configure make && make install 其中 ...
- Apache下禁止使用IP直接访问本站的配置方法
现在管的严啊,上面要求不能使用IP直接访问服务器,把apache配置做下调整就行了.方法如下: 打开apache的配置文件 # vi /usr/local/apache2/conf/extra/htt ...
- 浅谈 echarts 用法
对于服务型的公司来说,需要了解用户的使用趋势,来帮助分析市场的走向,所以说统计在一个管理后台中是必不可少的. 会用到echarts插件 ,其官网网址 http://echarts.baidu.com/ ...
- 【前端】Html5浏览器缓存 sessionStorage 与 localStorage
一.sessionStorage: 浏览关闭会话结束就被清除:(不能跨页面) localStorage:永久保存: 二.使用 var storage = window.sessionStorage; ...
- AJPFX简述Object类
Object类是所有类的超类,所有类都拥有Object的方法.其中的toString.equals是对业务模型而言非常常用的方法.a) toString方法当调用System.out.prin ...
- dubbo系列--重要概念介绍
dubbo架构图 节点角色说明 整体设计 proxyFactory:就是为了获取一个接口的代理类,例如获取一个远程接口的代理.它有2个方法,代表2个作用 getInvoker:针对server端,将服 ...
- 【学习笔记】OSG 基本几何图元
例:geom->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::QUADS,0,4)); 来指定要利用这些数据生成一个怎么样的形状. ...
- 正确使用MySQL JDBC setFetchSize()方法解决JDBC处理大结果集 java.lang.OutOfMemoryError: Java heap space
昨天在项目中需要对日志的查询结果进行导出功能. 日志导出功能的实现是这样的,输入查询条件,然后对查询结果进行导出.由于日志数据量比较大.多的时候,有上亿条记录. 之前的解决方案都是多次查询,然后使用l ...