十二.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)回想一下你曾经对计算机专业的畅想 当初你是如何做出选择计算机专业的决定的?经过一个学期,你的看法改变了么,为什么? 你认为过去接触到的课程是否符合你对计算机专业的期待,为什么?经过一个学 ...
随机推荐
- wordpress数据库结构及表说明
数据表结构: wp_commentmeta:存储评论的元数据wp_comments:存储评论wp_links:存储友情链接(Blogroll)wp_options:存储WordPress系统选项和插件 ...
- SpringBoot | contrller的使用
@Controller 处理http请求 @RestController Spring4之后新加的注解,原来返回json需要@ResponseBody配合@Controller @RequestMap ...
- python中的栈
# @File: stack # 列表实现栈 class MyStack(object): def __init__(self): self.data = [] def push(self, item ...
- HDFS Java API
HDFS Java API 搭建Hadoop客户端与Java访问HDFS集群
- vue+typescript入门学习
最近想要结合vue学习typescript,了解到vue2.5之后开始支持typescript,就像拿vue学习一下,首先要解决的就是环境的搭建,略微麻烦,如果想要自己体验一把,可以参考这篇文章htt ...
- imagettftext
ImageTTFText 写 TTF 文字到图中. 语法: array ImageTTFText(int im, int size, int angle, int x, int y, int col, ...
- 用IARIdePm新建STM8工程步骤
IARdePm 如何新建工程及其调用库函数1.新建文件夹,例如,新建文件夹名字(不能为中文)为:Lib_test_GPIO_OUT2.新建工程,Create New Project...,选择Empt ...
- pip 安装管理失败解决
问题: pip install ansible 错误: src/hash_template.c:361: warning: implicit declaration of function ‘Py_F ...
- 2. UITest相关APIs
1. XCUIApplication 这是你正在测试的应用的代理.它能让你启动应用,这样你就能执行测试了.它每次都会新起一个进程,这会多花一些时间,但是能保证测试应用时的状态是干净的,这样你需要处理的 ...
- HttpURLConnection读取http信息
废话不多说,直接上code. package mytest; import java.io.BufferedReader; import java.io.IOException; import jav ...