tkinter笔记四

from tkinter import * # get widget classes
from tkinter.messagebox import askokcancel # get canned std dialog
class Quitter(Frame): # subclass our GUI
    def __init__(self, parent=None): # constructor method
        Frame.__init__(self, parent)
        self.pack()
        widget = Button(self, text=‘Quit‘, command=self.quit)
        widget.pack(side=LEFT, expand=YES, fill=BOTH)
    def quit(self):
        ans = askokcancel(‘Verify exit‘, "Really quit?")
        if ans: Frame.quit(self)
if __name__ == ‘__main__‘:
    Quitter().mainloop()

 

选择窗口颜色

from tkinter import *
from tkinter.colorchooser import askcolor
def setBgColor():
    (triple, hexstr) = askcolor()
    if hexstr:
        print(hexstr)
        print(triple)
        push.config(bg=hexstr)
root = Tk()
push = Button(root, text=‘Set Background Color‘, command=setBgColor)
push.config(height=3, font=(‘times‘, 20, ‘bold‘))
push.pack(expand=YES, fill=BOTH)
root.mainloop()

绑定事件

from tkinter import *
def showPosEvent(event):
    print(‘Widget=%s X=%s Y=%s‘ % (event.widget, event.x, event.y))
def showAllEvent(event):
    print(event)
    for attr in dir(event):
        if not attr.startswith(‘__‘):
            print(attr, ‘=>‘, getattr(event, attr))
def onKeyPress(event):
    print(‘Got key press:‘, event.char)
def onArrowKey(event):
    print(‘Got up arrow key press‘)
def onReturnKey(event):
    print(‘Got return key press‘)
def onLeftClick(event):
    print(‘Got left mouse button click:‘, end=‘ ‘)
    showPosEvent(event)
def onRightClick(event):
    print(‘Got right mouse button click:‘, end=‘ ‘)
    showPosEvent(event)
def onMiddleClick(event):
    print(‘Got middle mouse button click:‘, end=‘ ‘)
    showPosEvent(event)
    showAllEvent(event)
def onLeftDrag(event):
    print(‘Got left mouse button drag:‘, end=‘ ‘)
    showPosEvent(event)
def onDoubleLeftClick(event):
    print(‘Got double left mouse click‘, end=‘ ‘)
    showPosEvent(event)
    tkroot.quit()
tkroot = Tk()
labelfont = (‘courier‘, 20, ‘bold‘) # family, size, style
widget = Label(tkroot, text=‘Hello bind world‘)
widget.config(bg=‘red‘, font=labelfont) # red background, large font
widget.config(height=5, width=20) # initial size: lines,chars
widget.pack(expand=YES, fill=BOTH)
widget.bind(‘<Button-1>‘, onLeftClick) # mouse button clicks
widget.bind(‘<Button-3>‘, onRightClick)
widget.bind(‘<Button-2>‘, onMiddleClick) # middle=both on some mice
widget.bind(‘<Double-1>‘, onDoubleLeftClick) # click left twice
widget.bind(‘<B1-Motion>‘, onLeftDrag) # click left and move
widget.bind(‘<KeyPress>‘, onKeyPress) # all keyboard presses
widget.bind(‘<Up>‘, onArrowKey) # arrow button pressed
widget.bind(‘<Return>‘, onReturnKey) # return/enter key pressed
widget.focus() # or bind keypress to tkroot
tkroot.title(‘Click Me‘)
tkroot.mainloop()

时间: 2024-10-11 01:54:15

tkinter笔记四的相关文章

Caliburn.Micro学习笔记(四)----IHandle&lt;T&gt;实现多语言功能

Caliburn.Micro学习笔记(四)----IHandle<T>实现多语言功能 说一下IHandle<T>实现多语言功能 因为Caliburn.Micro是基于MvvM的UI与codebehind分离, binding可以是双向的所以我们想动态的实现多语言切换很是方便今天我做一个小demo给大家提供一个思路 先看一下效果 点击英文  变成英文状态点chinese就会变成中文                          源码的下载地址在文章的最下边 多语言用的是资源文件建

代码管理工具 --- git的学习笔记四《重新整理git(1)》

1.创建版本库 mkdir  创建目录 cd  地址,到该地址下 pwd 显示当前目录 1.创建目录 $ mkdir startGit $ cd startGit $ pwd 显示当前目录 或者cd到桌面,然后再创建目录 2.初始化版本库 $ git init 初始化仓库 提示信息:Initialized empty Git repository in /Users/xingzai/Desktop/startGit/.git/ 建立一个空的git仓库在/Users/xingzai/Desktop

Linux学习笔记四:Linux的文件搜索命令

1.文件搜索命令  which 语法:which [命令名称] 范例:$which ls  列出ls命令所在目录 [[email protected] ~]$ which ls alias ls='ls --color=auto' /bin/ls 另外一个命令:whereis [名称名称],也可以列出命令所在目录. [[email protected] ~]$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/ma

小猪的数据结构学习笔记(四)

小猪的数据结构学习笔记(四) 线性表之静态链表 --转载请注明出处:coder-pig 本章引言: 在二,三中中我们分别学习了顺序表中的线性表与单链表,线性表有点类似于 我们前面所学的数组,而单链表使用的最多的是指针,这里问个简单的问题, 如果是在以前没有指针的话,前辈先人们怎么实现单链表呢?大家思考下! 没有指针,那么用什么来代替呢?前辈先人们非常机智,想出了使用下标+游标的方式 来实现单链表的效果!也就是今天要讲的--静态链表! 当然你也可以直接跳过本章,因为有了单链表就没有必要用静态链表了

R实战读书笔记四

第三章 图形入门 本章概要 1 创建和保存图形 2 定义符号.线.颜色和坐标轴 3 文本标注 4 掌控图形维数 5 多幅图合在一起 本章所介绍内容概括如下. 一图胜千字,人们从视觉层更易获取和理解信息. 图形工作 R具有非常强大的绘图功能,看下面代码. > attach(mtcars) > plot(wt, mpg) > abline(lm(mpg~wt)) > title("Regression of MPG on Weight") > detach(m

Swift学习笔记四:数组和字典

最近一个月都在专心做unity3d的斗地主游戏,从早到晚,最后总算是搞出来了,其中的心酸只有自己知道.最近才有功夫闲下来,还是学习学习之前的老本行--asp.net,现在用.net做项目流行MVC,而不是之前的三层,既然技术在更新,只能不断学习,以适应新的技术潮流! 创建MVC工程 1.打开Visual studio2012,新建MVC4工程 2.选择工程属性,创建MVC工程 3.生成工程的目录 App_Start:启动文件的配置信息,包括很重要的RouteConfig路由注册信息 Conten

老男孩培训视频听课笔记四(在51cto上听的)

实际操作:     1.创建一个目录 mkdir 语法:mkdir [-mp] [目录名称]            一般与配合cd tree pwd等命令来实现,整个操作     2.建议一个文件 利用touch命令来完成 语法:touch [path]/filename            批量创建文件:        for f in `seq 1000`;do touch $f.txt;done         创建文件的命令很多:vi echo> > cat等命令      3.文件

NLTK学习笔记(四):自然语言处理的一些算法研究

自然语言处理中算法设计有两大部分:分而治之 和 转化 思想.一个是将大问题简化为小问题,另一个是将问题抽象化,向向已知转化.前者的例子:归并排序:后者的例子:判断相邻元素是否相同(与排序). 这次总结的自然语言中常用的一些基本算法,算是入个门了. 递归 使用递归速度上会受影响,但是便于理解算法深层嵌套对象.而一些函数式编程语言会将尾递归优化为迭代. 如果要计算n个词有多少种组合方式?按照阶乘定义:n! = n*(n-1)*...*1 def func(wordlist): length = le

悟道—位IT高管20年的职场心经(读书笔记四)

悟道--一位IT高管20年的职场心经 第四章 人情练达即文章 "问世间情为何物,直教人生死相许" 那是说的爱情. 职场中的人情实在没那么浪漫, 很多时候是冷冰冰的, 但是你必须去面对, 以积极的.正面的心态去面对. 不但要面对,还要苦心经营. 1.1  谁都别惯着:下属不能惯 学会安排事情,分担事情. 1.2  谁都别惯着:老板不能惯 怎么样去和不同性格的老板交流,老板也有他自己的不足的地方,在这种情况下,最好是自己有自己的解决问题的方法. 1.3  谁都别惯着:客户不能惯 对客户,有