快捷搜索:
来自 计算机编程 2019-07-07 05:45 的文章
当前位置: 67677新澳门手机版 > 计算机编程 > 正文

GUI之tkinter学习笔记1控件的介绍及使用,网易有道

 

`####这是团结的贰个小主张,不过最终照旧通过2天的瞎鼓捣实验成果了。固然界面非常难看,可是作者很喜欢它,因为有Dos黑窗口,少去了设置步骤,更加多的是少去了广告,基于有道翻译里面包车型客车api接口,所以小编不怕翻译的不准确啦


先是这里分三大步实行肢解:

连带内容:

tkinter的使用

1.模块的导入

2.使用

3.控件介绍

  • Tk
  • Button
  • Label
  • Frame
  • Toplevel
  • Menu
  • Menubutton
  • Canvas
  • Entry
  • Message
  • Text
  • Listbox
  • Checkbutton
  • Radiobutton
  • Scale
  • Scrollbar

 

首发时间:2018-03-04 16:39


Python的GUI各有各特点。

由于只是轻微涉及GUI开荒,所以就以轻量级的tkinter来读书。


一: 有道词典的API接口爬取:
二:tkinter 各样控件的利用:
三:PyInstaller 打包成exe文件,直接在桌面上举行利用:

tkinter的使用:

 

先是:大家来获取有道词典的API接口;

1.模块的导入

  • [tkinter是python暗中同意的gui库,所以一般没有须求别的安装模块]:from tkinter import *

展开网址:
网址 http://fanyi.youdao.com/

2.使用:

  • 创建主窗口:root=Tk()   【root是八个主窗口对象】
  • 创办若干个控件:控件对象=控件(root,控件参数设置)    【这里的控件也能够增加到别的窗口中】
  • 将控件呈现出来:控件对象.pack()     【这里也不断定是pack,也足以是任何的展现方式,举例grid,后边介绍】
  • 让主窗口持续显示:root.mainloop()

 

图片 1

- 3.控件介绍:

 

中文转印度语印尼语的翻译.png

主窗口Tk[享有控件都亟需附着在分界面上]:

介绍:主窗口是全部控件附着的功底,全体控件都急需附着在分界面上,如若程序中一贯不点名控件附着的窗口,将默许附着到主窗口Tk中,假如程序中绝非定义Tk,那么将机关创立三个

常见属性【想要初叶化主窗口的性质供给运用 主窗口对象.属性(“参数”) :

  • title:窗口标题
  • geometry:窗口大小,大写格式是”宽度x高度 x位置 y位置”【注意不是*是x】,其中x,y将左上角作为(0,0)

    from tkinter import *

    root=Tk() root.title('作者的窗口') root.geometry('500x500') root.mainloop()

 

 

 

此处透过HttpFox拦截央求中大家能够见见,我们在网站:http://fanyi.youdao.com/ 中输入中中原人民共和国的时候,调用了post接口,这里的post 参数我把它非常的截出来了,个中key 为i 的value值 是四个乱码的,这里前边会一会就有讲到,里面post参数都有罗列。

按钮Button:

  • 介绍:按钮图片 2
  • 常用参数设置【可以在创设开关的时候内定,也得以制造后采纳   开关对象.config()  来安装】:
    • text:按键上的文本展现
    • anchor:按键上内容的地点[取值:n, ne, e, se, s, sw, w, nw, or center,个中n e s w是西南西南的缩写]
    • cursor:当鼠标移动到按键上时所出示的光标【arrow:箭头,cross:十字,dot: 点,hand1:手 …….】
    • font:字体,使用元组来钦点四个字体,那些元组满含了一个字体类型名字,三个以磅为单位的冲天,代表三个或几个样式的字符串,例如("Times", 10, "bold")
    • background[可缩写为bg]:背景观,取值可未German颜色字符串,也许奥迪Q7GB值
    • foreground[可缩写为fg]:前景象,取值可未罗马尼亚(România)语颜色字符串,大概陆风X8GB值
    • borderwidth[可缩写为bd]::边框大小
    • activebackground:按键处于活动状态时使用的背景颜色。
    • activeforeground:开关处于活动状态时行使的前景颜色。
    • disabledforeground:禁止使用按键时利用的水彩。
    • highlightbackground:当按键没不正常时用于高亮边框的水彩
    • relief:边框的装点
      • 列表里面是relief的可选值:["flat", "raised", "sunken", "solid", "ridge", "groove"]
      • flat是指开关边框是平缓的,raise是指开关边框是凸起的,sunken是指按键边框是凹入的,solid是指按键边框是粗边框…
      • 按钮relief的效果:图片 3
    • padx和pady:钦赐文本或图象与开关边框的间隔,x,y为x轴,y轴方向
    • height,widht:按键的尺寸,height为高度,width为宽度,借使不安装则默以为满含文件内容
    • state:按键的意况,可取值:NORMAL, ACTIVE 或 DISABLED。暗中同意值为NORMAL。
    • justify:对齐方式
    • command:当按下开关时调用的办法

 

Button全数的可设置参数

activebackground, activeforeground, anchor,
background, bitmap, borderwidth, cursor,
disabledforeground, font, foreground
highlightbackground, highlightcolor,
highlightthickness, image, justify,
padx, pady, relief, repeatdelay,
repeatinterval, takefocus, text,
textvariable, underline, wraplength

 

WIDGET-SPECIFIC OPTIONS【特有选项】:

command, compound, default, height,
overrelief, state, width

 

 

 

from tkinter import *

def hello():
    print("hello")
root=Tk()

# RELIEF=["flat", "raised", "sunken", "solid", "ridge", "groove"]

btn1=Button(root,text='click me')
btn1.config(bg='green',fg='white',cursor='hand1',height=10,width=10,command=hello,relief='sunken')
btn1.config(anchor=LEFT)
btn1.pack()

# for col,i in enumerate(RELIEF):
#     btn=Button(root,text=i,relief=i,anchor=S)
#     btn.grid(row=0,column=col)

root.mainloop()

 

 

  • ### Label:

    • 介绍:展现二个文书或图象。
    • 参数设置:label未有啥非常的参数,可用参数参照他事他说加以考察下边包车型地铁可用参数,再能够参谋Button的参数设置
STANDARD OPTIONS【label的标准可选参数】

    activebackground, activeforeground, anchor,
    background, bitmap, borderwidth, cursor,
    disabledforeground, font, foreground,
    highlightbackground, highlightcolor,
    highlightthickness, image, justify,
    padx, pady, relief, takefocus, text,
    textvariable, underline, wraplength

 

WIDGET-SPECIFIC OPTIONS【特有选项】:

    height, state, width
 

from tkinter import *

root=Tk()
root.title('我的窗口')
root.geometry('500x500')

label=Label(text='用户名:',bg='green')
label.grid()
root.mainloop()

图片 4

 

 

  • ### 框架Frame:

    • 介绍:一个容器窗口部件。能够有边框和背景。Frame暗中认可是未有轻重的,所以必供给设置中度和幅度,而当加了控件到Frame后它会“缩水”【这里缩水是因为Frame自动缩短到刚刚能包裹控件】,要求在展现的时候强制安装大小举个例子pack(fill=X),那是威迫填充水平方向,又或然接纳Frame对象.pack_propagate(0),那么些函数能够使得设置的万丈和宽度生效
    • 参数设置:可用参数参谋下边包车型客车可用参数,再参考开关的参数设置
STANDARD OPTIONS【标准可用参数】

    activebackground, activeforeground, anchor,
    background, bitmap, borderwidth, cursor,
    disabledforeground, font, foreground,
    highlightbackground, highlightcolor,
    highlightthickness, image, justify,
    padx, pady, relief, takefocus, text,
    textvariable, underline, wraplength
#这是一段没有显示Frame 代码
from tkinter import *

root=Tk()
root.geometry('500x500')
frame=Frame(root,height = 200,width = 400,bg = 'black')

Label(frame,text='mylabel').pack()

frame.pack()

root.mainloop()

#下面是探究出缩水原因的代码
from tkinter import *

root=Tk()
root.geometry('500x500')
frame=Frame(root,height = 400,width = 400,bg = 'green')


button1=Button(frame,text='hello')
button1.pack(side=LEFT,padx=5,pady=5)#增加了边距之后,发现出了frame的背景颜色
button2=Button(frame,text='hello')
button2.pack(side=LEFT)
frame.pack(side=TOP)


root.mainloop()

图片 5

#下面的是使用.pack_propagate(0)解决了问题的代码
from tkinter import *

root=Tk()
root.geometry('500x500')
frame=Frame(root,height = 400,width = 400,bg = 'green')

# Label(frame,text='mylabel',padx=5,pady=5).pack(side=LEFT)
button1=Button(frame,text='hello')
button1.pack(side=LEFT,padx=5,pady=5)
button2=Button(frame,text='hello')
button2.pack(side=LEFT)
frame.pack_propagate(0)
frame.pack(side=TOP)

# frame.pack(side=TOP,fill=X)

root.mainloop()

 

 

  • ### Toplevel:

    • 介绍:二个器皿窗口,作为贰个单独的、最上面的窗口显示。 图片 6
    • 参数设置:可用参数参谋上面包车型大巴,用法仿照效法Tk的
    • Toplevel是三个子窗口,当父窗口关闭时子窗口会倒闭,但子窗口关闭时父窗口不闭馆
Valid resource names: 

background, bd, bg, borderwidth, class,
colormap, container, cursor, height, highlightbackground,
highlightcolor, highlightthickness, menu, relief, screen, takefocus,
use, visual, width
from tkinter import *

root=Tk()
root.title('我的窗口')
root.geometry('500x500')

t1=Toplevel(root)
t1.title("Top窗口")
t1.geometry("100x100")
label=Label(t1,text="用户名:")
label.pack()
root.mainloop()

 

 

 

  • ### 菜单Menu:

    • 介绍:菜单控件,也正是三个菜单组菜单栏,未有增进别的菜单时暗许未有显得,唯有加多任何的菜单,才会了实际上的意思
    • 要想体现菜单,必须在“要增加菜单的窗口对象”的config中允许增加上“菜单对象”图片 7
    • 参数设置:可用参数参考上面的可用参数,再参谋按键的参数设置
      • 注意:Menu是没有text的
    • 增加菜单开关:
      • 增多命令菜单:Menu对象.add_command()
      • 增加一种类菜单:Menu对象.add_cascade(**options)  【多级菜单能够流传三个美食做法对象】图片 8
      • 丰裕分界线:Menu对象.add_separator(**options)
      • 增添复选框菜单:Menu对象.add_checkbutton(**options)
      • 增多单选框菜单:Menu对象.add_radiobutton(**options)
      • 安雪菜单:insert_separator(),insert_checkbutton(),insert_radiobutton(),insert_cascade(),
      • 其他。。。。
常见可用参数:

activebackground, activeborderwidth,
activeforeground, background, bd, bg, borderwidth, cursor,
disabledforeground, fg, font, foreground, postcommand, relief,
selectcolor, takefocus, tearoff, tearoffcommand, title, type
from tkinter import *

root=Tk()

menuBar=Menu(root,tearoff=0)
root.config(menu=menuBar)
filemenu=Menu(menuBar,fg='green')#文件菜单下的字体是绿色的
filemenu.add_command(label='新建',accelerator = 'Ctrl N')
filemenu.add_command(label='打开',accelerator = 'Ctrl O')
filemenu.add_command(label='保存',accelerator = 'Ctrl S')
filemenu.add_command(label='另存为',accelerator ='Ctrl Shift S')
menuBar.add_cascade(label='文件',menu=filemenu)

#这里测试root.config(menu=menuBar)的作用
# def show_menuBar():
#     root.config(menu=menuBar)
# button=Button(text='show_menu',command=show_menuBar)
# button.pack()


root.mainloop()

 

 

  • ### Menubutton:

    • 介绍:菜单按键。用来达成下拉式菜单。 图片 9
    • 参数设置:可用参数仿效上边Menu的,用法同样能够参见按键Button的
    • 增加菜单的方法仿照效法Menu的
    • 只顾:此次不是在root里面config了,而是在菜单开关中安装

    from tkinter import * root=Tk() menubtn=Menubutton(root,text='单击出现下拉菜单',relief='raise')#创建三个美食做法按钮menubtn.pack() #加多菜单 filemenu=Menu(menubtn) filemenu.add_command(label='新建')

    menubtn.config(menu=filemenu)#设置菜单开关允许展现菜单,这里不是root了 root.mainloop()

 

 

图片 10

Canvas:

  • 介绍:组织图形。那些部件能够用来绘制图表和图,创制图形编辑器,完成定制窗口部件
  • 参数设置:可用参数参谋下边包车型客车,用法一样能够参照他事他说加以考察开关Button的
  • 增多图像的法子:
    • create_rectangle:依照三个参数画三个矩形,八个参数是岗位
    • create_polygon:依照提供的五个参数画二个多边形
    • 其他。。
可用参数: background, bd, bg, borderwidth, closeenough,
confine, cursor, height, highlightbackground, highlightcolor,
highlightthickness, insertbackground, insertborderwidth,
insertofftime, insertontime, insertwidth, offset, relief,
scrollregion, selectbackground, selectborderwidth, selectforeground,
state, takefocus, width, xscrollcommand, xscrollincrement,
yscrollcommand, yscrollincrement
from tkinter import *

root=Tk()
root.title('我的窗口')
root.geometry('500x500')
mycanvas=Canvas(root,width=200,height=200,bg='green')
mycanvas.pack()
#画一个矩形
mycanvas.create_rectangle(10,10,110,110,outline = 'red',width = 5)

root.mainloop()

 

 

斯拉维尼亚语转中文的翻译.png

本文由67677新澳门手机版发布于计算机编程,转载请注明出处:GUI之tkinter学习笔记1控件的介绍及使用,网易有道

关键词: