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的更多相关文章

  1. Android系统--输入系统(十二)Dispatch线程_总体框架

    Android系统--输入系统(十二)Dispatch线程_总体框架 1. Dispatch线程框架 我们知道Dispatch线程是分发之意,那么便可以引入两个问题:1. 发什么;2. 发给谁.这两个 ...

  2. JAVA之旅(三十二)——JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用

    JAVA之旅(三十二)--JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用 GUI写到一半电脑系统挂了,也就算了,最多GUI还有一个提示框和实例, ...

  3. Gradle 1.12 翻译——第十二章 使用Gradle 图形用户界面

    有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com ...

  4. 201771010126 王燕《面向对象程序设计(Java)》第十二周学习总结

    实验十二  图形程序设计 实验时间 2018-11-14 1.实验目的与要求 (1) 掌握Java GUI中框架创建及属性设置中常用类的API: 创建空框架 . 在Java中,常采用框架(Frame) ...

  5. 马凯军201771010116《面向对象与程序设计Java》第十二周学习总结

    一.理论与知识学习部分 Java的抽象窗口工具箱(Abstract Window Toolkit, AWT)包含在java.awt包中,它提供了许多用来设计GUI的组件类和容器类. 大部分AWT组件都 ...

  6. 刘志梅2017710101152.《面向对象程序设计(java)》第十二周学习总结

    实验十二  图形程序设计 实验时间 2018-11-14 1.理论知识 (1) 基本AWT库采用将处理用户界面元素的任务委派给每个目标平台的本地GUI工具箱的方式,由本地GUI工具箱负责用户界面元素的 ...

  7. 201771010134杨其菊《面向对象程序设计java》第十二周学习总结

    第十二周学习总结 第一部分:理论知识 内容概要: AWT与Swing简介:框架的创建:图形程序设计: 显示图像: 1.AWT组件: 2.Swing 组件层次关系 3 .AWT与Swing的关系:大部分 ...

  8. JMeter—监听器(十二)

    参考<全栈性能测试修炼宝典JMeter实战>第六章 JMeter 元件详解中第七节监听器用来显示JMeter取样器的测试结果,能够以树.表.图形形式显示,也可以以文件方式保存. 一.设置默 ...

  9. 第十二周作业_PSP总结报告

    回顾1 (1)回想一下你曾经对计算机专业的畅想 当初你是如何做出选择计算机专业的决定的?经过一个学期,你的看法改变了么,为什么? 你认为过去接触到的课程是否符合你对计算机专业的期待,为什么?经过一个学 ...

随机推荐

  1. wordpress数据库结构及表说明

    数据表结构: wp_commentmeta:存储评论的元数据wp_comments:存储评论wp_links:存储友情链接(Blogroll)wp_options:存储WordPress系统选项和插件 ...

  2. 自适应的两端对齐:text-align:justify

    <!DOCTYPE HTML> <html> <head> <title>文本两端对齐 by hongchenok</title> < ...

  3. Lucas+中国剩余定理 HDOJ 5446 Unknown Treasure

    题目传送门 题意:很裸,就是求C (n, m) % (p1 * p2 * p3 * .... * pk) 分析:首先n,m<= 1e18, 要用到Lucas定理求大组合数取模,当然p[]的乘积& ...

  4. python_10(模块与包)

    第1章 模块 1.1 模块的种类 1.2 定义 1.3 作用 1.4 导入及使用 1.4.1 import 1.4.2 测试一: 1.4.3 测试二: 1.4.4 测试三: 1.4.5 小结 1.4. ...

  5. JAVA字符串转日期或日期转字符串【转】

    JAVA字符串转日期或日期转字符串[转] 文章中,用的API是SimpleDateFormat,它是属于java.text.SimpleDateFormat,所以请记得import进 来! 用法: S ...

  6. Win10新机的安装与配置

    一.快捷键 打开Chrome上次关闭的所有标签页:Ctrl-Shift-T 二.问题解决 1. 右键取得管理员权限 https://www.tenforums.com/tutorials/3841-a ...

  7. android开发学习 ------- RecyclerView多类型实例

    实现RecyclerView多类型的实例:效果如下图所示 public class CarFragment extends Fragment{ private View view; private R ...

  8. RabbitMQ九:远程过程调用RPC

    定义 RPC(Remote Procedure Call Protocol)——远程过程调用协议:它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC协议假定某些传输协议 ...

  9. 03.Java多线程并发库API使用2

    1.多个线程之间共享数据的方式探讨 1.如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如,买票系统就可以这么做. 2.如果每个线程执行的代 ...

  10. JS进阶-特殊形式的函数-内部私有函数

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...