可以从IDLE直接导入 import tkinter
import tkinter as tk
app = tk.Tk() #实例化GUI窗口对象
app.title("hello tkinter")#窗口标题
#label
thelable = tk.Label(app,text="我的第一个窗口程序!")#窗口组件 , 标签内容
thelable.pack()#自动调节组件自身尺寸、位置
app.mainloop()#进入事件主循环 #进入之后将被tkinter接管
封装一下:做一个打招呼的按钮
pack方法也可以设置位置(前后左右,也可以微调) frame.pack(side=tk.LEFT, padx=10, pady=20)#设置框架位置, 间距
代码:
import tkinter as tk
class APP:
def __init__(self, master):
frame = tk.Frame(master)#空框架,啥都没有,默认标题tk
frame.pack()
#设置前景色,背景色
self.hi_there = tk.Button(frame, text="hello !",bg='green',fg='blue', command=self.say_hi)
self.hi_there.pack()
def say_hi(self):
print("my name is huahua!")
root = tk.Tk()#顶层窗口
app = APP(root)#实例化对象
root.mainloop()
from tkinter import *
root = Tk()
textLabel = Label(root, text="页面不友好哦")
textLabel.pack() #set postio保存n
photo = PhotoImage(file='19.gif')#图片路径png 或gif
imageLabel = Label(root, image=photo)
imageLabel.pack()#set position
mainloop()
from tkinter import *
root = Tk()
photo = PhotoImage(file = ‘19.gif’)
label1 = Label(root,
text = ‘看妹子,关注我’,
justify = LEFT,#对齐方式
image = photo,
compound = CENTER,#混合模式,文字居中
font = (“华康少女字体”,20),
fg = ‘blue’ #文字前景色
)
mainloop()
看代码:
from tkinter import *
def callback():
var.set('吹吧你,还想骗我!')
root =Tk()
#将框架放进窗体中
frame1 = Frame(root)
frame2 = Frame(root)
var = StringVar()
var.set('您所观看的内容不适合未成年人观看哦!')
#标签左对齐
textLabel = Label(frame1,
textvariable=var, #显示一个tkinter类型的字符串变量 StringVar
justify = LEFT,
)
textLabel.pack(side =LEFT)
photo = PhotoImage(file='19.gif')
#图片右对齐
imageLabel = Label(frame1, image=photo)
imageLabel.pack(side = RIGHT)
#按钮 按钮内容 按钮的响应,类似于信号槽
theButton = Button(frame2, text='我已经满18岁了!',command=callback)
theButton.pack()
frame1.pack(padx =10, pady =10)
frame2.pack(padx =10, pady =10)
mainloop()
测试代码:
from tkinter import *
root = Tk()
#int类型变量
v = IntVar()
c = Checkbutton(root, text='test',variable =v)
c.pack()
#标签:展示在root实体中,展示内容: textvarble
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])
b.pack(anchor = W)#设置对齐
mainloop()
from tkinter import *
root = Tk()
#只创建一个变量
v = IntVar()
#原理:每一次点中一个按钮,会将按钮的value给v ,再反过来跟variable比较想通就选中。实现互斥。
Radiobutton(root, text ='One girl', variable=v, value = 1).pack(anchor=W)
Radiobutton(root, text ='Two girls', variable=v, value = 2).pack(anchor=W)
Radiobutton(root, text ='Three girls', variable=v, value = 3).pack(anchor=W)
mainloop()
我们看个细节 。我们设置两个value 为2 会发生什么
from tkinter import *
root = Tk()
girls = [('C++',1),
('Python',2),
('Java',3),
('Lua',4)]
v = IntVar()
for long, i in girls:
#indicatoron指示器,设置为按钮格式fill= X 横向填充 fill=Y 纵向填充
Radiobutton(root, text=long, variable =v, value = i,indicatoron=False).pack(fill=X)
mainloop()
from tkinter import *
root = Tk()
groupLabel = Label(root,text='最好的脚本语言是?',padx=10,pady=10)
groupLabel.pack(padx=10, pady=10)
girls = [('C++',1),
('Python',2),
('Java',3),
('Lua',4)]
v = IntVar()
for long, i in girls:
#indicatoron指示器默认选择圆的,设置为按钮格式fill= X 横向填充 fill=Y 纵向填充
Radiobutton(root, text=long, variable =v, value = i).pack(anchor=W,padx =10)
mainloop()