首页 > 代码库 > python学习tkinter(1-3)

python学习tkinter(1-3)

 

(一)

之前使用easy_gui写过一下界面,感觉就是太过于简单了,因此这次是学习tkinter来做的。

import tkinter as tk

#顶层窗口,根窗口
app = tk.Tk()
app.title("flash demo")

theLabel = tk.Label(app,text="我的第二个窗口程序!")#建立一个组件,用于显示文本和图片
theLabel.pack()#用于自动调节组件尺寸和位置

app.mainloop()#窗口的主事件循环

这是最简单的一个界面。

import tkinter as tk

class APP:
    def __init__(self,master):
        frame = tk.Frame(master)#frame是框架,用于复杂布局
        frame.pack(side=tk.LEFT,padx=10,pady=10)#自动调整位置,默认是top,同理tk.right是位于右边
                        #padx是在x轴的间距,pady是在y轴的间距
        self.hi_there = tk.Button(frame,text="打招呼",fg="blue",bg="pink",command=self.say_hi)
        self.hi_there.pack()

    def say_hi(self):
        print("hi")

root = tk.Tk()
app = APP(root)#将root底层窗口设置为参数

root.mainloop()

  技术分享

(二)

如何来输出图像和文字呢?

from tkinter import *

root = Tk()

photo = PhotoImage(file="黑板.png")
theLabel = Label(root,
                 text="\r 人生苦短\r我用python",
                 justify=LEFT,#对齐方式
                 image=photo,#储存图片
                 compound=CENTER,#混合模式,图片在下,文字在图片正上方
                 font=("行楷",50),
                 fg="white",
                 )
theLabel.pack()

mainloop()

  技术分享

上面都是一些简单的使用,下面是来设置一个按钮

from tkinter import *

def callback():
    var.set("吹吧你,我才不信呢")

root = Tk()

frame1=Frame(root)

frame2=Frame(root)

var=StringVar()
var.set("您所下载的影片有未成年人限制内容,\r请满18岁再点击!")
textLabel = Label(frame1,
                  textvariable=var,
                    #textvariable显示的是一个变量
                  justify=LEFT,
                  padx=10,
                  pady=10)
textLabel.pack(side=LEFT)#justify意为对齐方式

photo = PhotoImage(file="无标题.png")
imgLabel = Label(root,image=photo)
imgLabel.pack(side=RIGHT,padx=10,pady=10)

theButton = Button(frame2,text="我已满18周岁",command=callback)
theButton.pack()

frame1.pack(padx=10,pady=10)
frame2.pack(padx=10,pady=10)

mainloop()

上述的var设置为字符串变量,这样我们可以通过改变该变量来更改界面的文字输出,以后所有的变量几乎都是Var,比如在IntVar()中等等。

技术分享技术分享

 (三)

 下面介绍选项的使用

from tkinter import *

root = Tk()

v = IntVar()#设置Int变量

c = Checkbutton(root,text="click",variable=v)#一旦按键被按的话,将会改变cariable也就是改变v的值
c.pack()

l = Label(root,textvariable=v)
l.pack()

mainloop()

  技术分享

from tkinter import *

root = Tk()

GIRLS = ["西施","貂蝉","王昭君","杨玉环"]

v = []

for girl in GIRLS:
    v.append(IntVar())
    b=Checkbutton(root,text=girl,variable=v[-1])#v[-1]是选中最后一个数组中的数,也就是我们上一个语句插入的数
    b.pack(anchor=W)#anchor分为八个方向,因为左对齐,所以西W
mainloop()

  技术分享

from tkinter import *

root=Tk()

group = LabelFrame(root,text="最好的脚本语言是?",padx=5,pady=5)#通过LabelFrame构建一个容器部件,装载下述选项
group.pack(padx=10,pady=10)


LANGSS = [
    ("Python",1),
    ("Perl",2),
    ("Ruby",3),
    ("Lua",4)]

v=IntVar()#只设置一个v,保证单选

for lang,num in LANGSS:
    b = Radiobutton(group,text=lang,variable=v,value=http://www.mamicode.com/num)#,indicatoron=False)    #indicatoron就是设置小圈圈>

  技术分享

 

python学习tkinter(1-3)