博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tkinter学习三
阅读量:5272 次
发布时间:2019-06-14

本文共 3033 字,大约阅读时间需要 10 分钟。

顶层窗口协议 from tkinter import *root = Tk() # explicit roottrees = [('The Larch!', 'light blue'),('The Pine!', 'light green'),('The Giant Redwood!', 'red')]for (tree, color) in trees:win = Toplevel(root) # new windowwin.title('Sing...') # set border  改变标题win.protocol('WM_DELETE_WINDOW', lambda:None) # ignore close win.iconbitmap('py-blue-trans-out.ico') # not red Tk  改变图标msg = Button(win, text=tree, command=win.destroy) # kills one win 点击可以关闭一个窗口msg.pack(expand=YES, fill=BOTH)msg.config(padx=10, pady=10, bd=10, relief=RAISED)msg.config(bg='black', fg=color, font=('times', 30, 'bold italic'))root.title('Lumberjack demo')Label(root, text='Main window', width=30).pack()Button(root, text='Quit All', command=root.quit).pack() # kills all app  点击可以关闭所有窗口root.mainloop()

配置组件外观(Configuring Widget Appearance)

from tkinter import *root = Tk()labelfont = ('times', 20, 'bold') # family, size, style  字体系列、大小、类型widget = Label(root, text='Hello config world')widget.config(bg='black', fg='yellow') # yellow text on black label 在黑色标签上显示黄色文本widget.config(font=labelfont) # use a larger font  使用更大的字体widget.config(height=3, width=20) # initial size: lines,chars 初始化大小、行间距、字符间距widget.pack(expand=YES, fill=BOTH)   root.mainloop()

小知识:

边框和浮凸:

一个“bd=N”组件选项可用于设置边框宽度,而relief=S选项能够制定一种边框类型,S可以是FLAT(扁平)、SUNKEN(凹陷)、GROOVE(凹槽)、SOLID(加粗)或RIDGE(脊状)

光标:

cursor选项能够改变当鼠标经过组件时的鼠标外观,例如:state=DISABLED(禁止)选项一般会在屏幕上禁用组件功能(禁用时,组件变成灰色),NORMAL(正常)状态就不会禁用组件功能,有些主件也支持READONLY(只读)属性,设置为该属性的组件能够正常显示,但是不能够进行修改。

留白:

很多主件(如按钮、标签和文本)周围都可以添加额外的空间,可通过padx=N和pady=N选项实现。

例子:

from tkinter import *widget = Button(text='Spam', padx=10, pady=10)widget.pack(padx=20, pady=20)widget.config(cursor='gumby')widget.config(bd=8, relief=RAISED)widget.config(bg='dark green', fg='white')widget.config(font=('helvetica', 20, 'underline italic'))mainloop()

顶层窗口,通过Toplevel主件,tkinter可以创建任意数量的独立窗口。

import sysfrom tkinter import Toplevel, Button, Labelwin1 = Toplevel() # two independent windowswin2 = Toplevel() # but part of same processButton(win1, text='Spam', command=sys.exit).pack()Button(win2, text='SPAM', command=sys.exit).pack()Label(text='Popups').pack() # on default Tk() root window 根窗口win1.mainloop()
Label(text='Popups').pack() # on default Tk() root window#默认根窗口root = Tk()Label(root, text='Popups').pack() # on explicit Tk() root windowroot.mainloop()#显示根窗口
import tkinterfrom tkinter import Tk, Buttontkinter.NoDefaultRoot()win1 = Tk() # two independent root windowswin2 = Tk()Button(win1, text='Spam', command=win1.destroy).pack()Button(win2, text='SPAM', command=win2.destroy).pack() win1.mainloop()

 

from tkinter import *from tkinter.messagebox import *def callback():    if askyesno('Verify', 'Do you really want to quit?'):        showwarning('Yes', 'Quit not yet implemented')    else:        showinfo('No', 'Quit has been cancelled')errmsg = 'Sorry, no Spam allowed!'Button(text='Quit', command=callback).pack(fill=X)Button(text='Spam', command=(lambda: showerror('Spam', errmsg))).pack(fill=X)mainloop()

  

转载于:https://www.cnblogs.com/zhuweiblog/p/5245889.html

你可能感兴趣的文章
matlab基础知识复习注意点
查看>>
GIT
查看>>
应当重视的asp.net应用程序安全缺陷
查看>>
加入我的技术群我们一起交流
查看>>
JavaScript 模块化编程(笔记)
查看>>
Javascript -- 常用代码规范
查看>>
SignalR
查看>>
vue模板语法(上)
查看>>
前端设计的七大法则
查看>>
Centos7搭建FTP服务
查看>>
react 环境搭建
查看>>
PAT——1023. 组个最小数
查看>>
python中的generator, iterator, iterabel
查看>>
Sitecore8.2 Tracker.Current is not initialized错误
查看>>
jQuery数组处理完全详解
查看>>
Unity3D Animation Curve
查看>>
GLSL扩展预处理器(支持#include)
查看>>
double 类型转化为Integer
查看>>
【31.93%】【codeforces 670E】Correct Bracket Sequence Editor
查看>>
mysql优化理解笔记(持续更新)
查看>>