TK图形界面

import tkinter
1.使用tkinter模块前 一般先要建立一个tkinter的对象
    例: window = tkinter.TK()
 
2.建立完对象设置好窗口属性以及所有功能之后就要把窗口加载到消息循环中(程序的最后一句代码)
    例: window.mainloop()
 
3.设置窗口的属性
    窗口的标题: window.title("标题的内容") 
    窗口的大小: window.geometry("800x600+300+0")  #800是宽 600是高 (300.0)是窗口的初始坐标位置
import tkinter
win = tkinter.Tk() # 构造函数
win.title("你好 ")
win.geometry("800x600+300+0") #800是宽 600是高 (300.0)是窗口的初始坐标位置
win.mainloop() # 进入消息循环
 
4.设置窗口按钮
   使用的的对象类tkinter.Button()
   button.pack() # 包装加载此按钮(如果按钮没有设置大小,则默认安装文件字数设置)
    button.place(x=0,y=0) # 可以布局按钮的位置
import tkinter
import os
def go():
os.system("notepad")
win = tkinter.Tk() # 构造函数
win.title("你好 ")
win.geometry("800x600+300+0") #800是宽 600是高 (300.0)是窗口的初始坐标位置

# 设置按钮
button = tkinter.Button(win,text="打开记事本",command =go)
# text 按钮按键内容 command 按钮要控制的行为 width 宽 heigth 高
button2= tkinter.Button(win,text="打开记事",
command =lambda :print("holle "),
anchor = tkinter.CENTER, # 位置
bg = "blue", # 背景颜色
fg = "red", # 字体颜色
width = 5,
height=20)
# button.pack() # 包装加载此按钮(如果按钮没有设置大小,则默认安装文件上的的字数大小加载)
button.place(x=0,y=0) # 可以布局按钮的位置
button2.pack()

win.mainloop() # 进入消息循环
5.设置窗口标签
   使用的的对象类tkinter.Label()
import tkinter
win = tkinter.Tk()
win.geometry("800x800+300+100")
# 标签 label
label = tkinter.Label(win,text="hello python",height=10,width=10)
label1 = tkinter.Label(win, # 父窗体
text="hello python", # 文本
# anchor = tkinter.CENTER, # 字体居中位置
bg = "blue", # 背景颜色
fg = "red", # 字体颜色
height=100, # 高
width=100) #宽
# text 标签内容 width 宽 heigth 高
label.pack() # 包装加载此按钮(如果按钮没有设置大小,则默认安装文件字数设置)
label1.pack()
win.mainloop()

   补充:对于按钮和标签的位置参数补充

anchor = tkinter.CENTER,  # 字体居中位置
anchor = tkinter.S,  # 字体在下
anchor = tkinter.N,  # 字体在上
anchor = tkinter.E, # 字体在右
anchor = tkinter.W,  # 字体在左
sw 下左 se 下右  nw 上左 ne上右
上北下南 左西右东 east 东 north 北 south 南 west 西
6.设置输入框
   使用的的对象类tkinter.Entry()
import tkinter
win = tkinter.Tk()
entey = tkinter.Entry(win,
                      show="",  # 显示输入内容 如果没有设置则是输入的实际内容
                                # 如果是"*"也可以是其他设置的符号 这输入的内容被隐藏显示,显示的是 ***
                      width=50,  #
                      bg="red",  # 背景颜色
                      fg="blue",  # 字体颜色
                      )
entey.pack()
win.mainloop()
7.设置输出框
   使用的的对象类tkinter.Listbox()
import tkinter
win = tkinter.Tk()
mylist = tkinter.Listbox(win,

                         width=100,
                         height=20,
                         bg="red",  # 背景颜色
                         fg="blue",  # 字体颜色
                         )
mylist.pack()

for item in range(1,10):
    mylist.insert(tkinter.END,#尾部插入
                  item)
win.mainloop()
8.设置组合框
   
import tkinter
from tkinter import ttk


def go(*tuple):
# print(comboxlist.get()) # comboxlist.get()获取在选择控件里面选中的值
# print(type(comboxlist.get()))
n = comboxlist.get()
print(int(n)+int(n))

win = tkinter.Tk() # 构造窗体
# 第一步
comvalue = tkinter.StringVar() # 窗体自带文本,新建一个值
# 构建窗体
comboxlist = ttk.Combobox(win,
textvariable=comvalue, # 初始化
# values=("1", "2", "3", "4","5"),
)

comboxlist["values"] = ("1", "2", "3", "4") # 可以通过这种方法加入属性
comboxlist.current(0) # 选择第一个
comboxlist.pack() # 包装加载
comboxlist.bind("<<ComboboxSelected>>", go) # 绑定组合框事件
win.mainloop()

9. 设置按钮和输入框的组合输入处理

import tkinter
import os

def go():
    print(entry.get())  # 返回输入的文本
    if entry.get() == "记事本":
        os.system("notepad")
win = tkinter.Tk()
entry = tkinter.Entry(win)  # 相当于一个 input
# entry.pack()
entry.place(x=0,y=0)  # 可以使用place 进行布局

button = tkinter.Button(win,text="搜索",command=go)
button.place(x=150,y=0) # 可以使用place 进行布局
# button.pack()
win.mainloop() # 进入消息循环

10.图形文本的编辑处理

import tkinter
win = tkinter.Tk()
text = tkinter.Text(win,
                    bg="blue",
                    fg="red"
                    )  # 文本编译器
text.insert(tkinter.INSERT,"你好 你好 hello、
")
text.insert(tkinter.INSERT,"你好 你好 hello、
")
text.insert(tkinter.INSERT,"你好 你好 hello")
text.insert(tkinter.INSERT,"
")
text.insert(tkinter.INSERT,"你好 你好 hello")
text.pack()
win.mainloop()

11.表格数据显示

import tkinter
from tkinter import ttk
win = tkinter.Tk()
win.geometry("800x300+100+100")
tree = ttk.Treeview(win)  # 表格
tree["columns"] = ("姓名","年龄","身高")
tree.column("姓名",width=100)  # 表示列,不显示
tree.column("年龄",width=100)
tree.column("身高",width=100)

tree.heading("姓名",text="姓名 - name")  # 显示表头
tree.heading("年龄",text="年龄 - age")
tree.heading("身高",text="身高 - tall")

tree.insert("",0,text="line1",values=("小明",1,2)) # 插入的行数
tree.insert("",3,text="line1",values=("小明",3,3))
tree.insert("",2,text="line1",values=("小明",2,2))
tree.insert("",1,text="line1",values=("小明",1,1))


myidx=tree.insert("",4,"中国",text="中国")
myidx1=tree.insert(myidx,0,"陕西",text="中国陕西",values=("小明",1,2))
myidx2=tree.insert(myidx,1,"江苏",text="中国江苏",values=("1"))
myidx12=tree.insert(myidx1,0,"陕西渭南",text="陕西渭南",values=("1"))
# tree.pack()
tree.place(x=0,y=0)
win.mainloop()

12.树状图形划显示

import tkinter
from tkinter import ttk  # 导入内部包

win = tkinter.Tk()
tree=ttk.Treeview(win)
# "" 表示一开始的根
# values = ("1")的值在树状图中不显示
myidx=tree.insert("",0,"中国",text="中国", values=("1"))
myidx1=tree.insert(myidx,0,"陕西",text="中国陕西",values=("1"))
myidx2=tree.insert(myidx,1,"江苏",text="中国江苏",values=("1"))
myidx12=tree.insert(myidx1,0,"陕西渭南",text="陕西渭南",values=("1"))

myidy=tree.insert("",1,"美国",text="美国")
myidy1=tree.insert(myidy,0,"纽约",text="中国陕西")
myidy2=tree.insert(myidy1,0,"皇后区",text="陕西渭南")


tree.pack()
win.mainloop()
   

 

 
 
原文地址:https://www.cnblogs.com/wang102030/p/9449182.html