GUI图形用户页面详细图解

在这里插入图片描述

控件的难点与关键点

1.复选按钮
在这里插入图片描述
注意啊啊啊:上面我写的三点步骤必有,你每次用到复选按钮都会写
代码如下:

import tkinter as tk

top=tk.Tk()
rt=tk.StringVar()#创建字符变量,用来存字符'1','2','3',
                #如果传入的值为'1',就选radio1
rt.set('0')#初始化按钮

ra1=tk.Radiobutton(text='radio1',value='1',variable=rt)#将rt与ra1按钮相关联
ra1.pack()                                             
print(ra1)
ra2=tk.Radiobutton(text='radio2',value='2',variable=rt)
#print(ra2)
ra2.pack()
#print(ra2)
ra3=tk.Radiobutton(text='radio3',value='3',variable=rt)
ra3.pack()
#print(ra3)

ct=tk.IntVar()
ct.set(2)
cheak=tk.Checkbutton(text='Checkbutton',variable=ct,onvalue=1,offvalue=2)#如果选中名字为Checkbutton的按钮cheak,则将值1放入ct.get()
cheak.pack()

top.mainloop()
'''print(ra1.get())
print(ra2.get())'''

效果如下:
在这里插入图片描述
2.信息框
一定要注意导入
并且我写出来两种导入的区别,如下
在这里插入图片描述
在这里插入图片描述
简单的输入对话框

from tkinter import *
from tkinter.simpledialog import *
from tkinter import simpledialog
root= Tk()
root.geometry("400x100")
show= Label(root,width=40,height=3,bg="green")
show.pack()
a=askinteger(title="输入年龄",prompt="请输入年龄 ",initialvalue=18,minvalue=1,maxvalue=150)#创建了一个输入对话框
print(str(a))
show["text"]="年龄:"+str(a)#根窗口的标签内容为'年龄18或者输入的其他数字'
#askfloat,askstring 自行测试
root.mainloop()

效果如下:
在这里插入图片描述
通用消息对话框

#简单对话框
from tkinter import *
from tkinter.messagebox import *

root= Tk()
root.geometry("400x100")
c1=Label()
c1.pack()
#a1= showinfo(title="关关雎鸠",message="好好学习,天天向上")#只会返回0k

a1=askyesno('我自己最大','大脑低级')#只会返回Ture/False
c1['text']=str(a1)+'我'
print(a1)#输出的为ok,因为你选了ok,没有选cancle
root.mainloop()

一定要注意不同方法的返回值不同
例如askyesno返回True,其他的上述代码解释够清楚了,宝子们
在这里插入图片描述

文件对话框
在这里插入图片描述

from tkinter import *
from tkinter.filedialog import *

root= Tk()
root.geometry("400x100")
show= Label(root,width=40,height=3,bg="green")#创建一个标签并且要显示
show.pack()
def test1():
    f= askopenfilename(title="上传文件",initialdir="c:/code",filetypes=[('文件类型','.txt')])#创建文件对话框,返回打开的文件名
    #print(f)
    show['text']=f #标签的显示的内容是 文件名  标签本身就是用来显示图片和文字的
Button(root,text="选择编辑的文本文件",command=test1).pack()#点击一下按钮,则回调函数test1,执行  往标签里添加内容


root.mainloop()

效果宝子们,可以复制代码运行一下
宝子们,你们一定要看图片写的内容和我代码的解释,这样你就能理解代码的含义了.
3.菜单选项
在这里插入图片描述
话不多说了,只要添加菜单选项必有以上步骤.
上代码:

#记事本软件,练习主菜单的设计
from tkinter import *
from tkinter.filedialog import *
root= Tk()
root.geometry("400x400")
#创建主菜单栏
menubar= Menu(root)
#创建子菜单
menuFile= Menu(menubar)
menuEdit= Menu(menubar)
menuHelp= Menu(menubar)

#将往主菜单的子菜单里添加'''例如往'文件'主菜单里添加添加子菜单
menubar.add_cascade(label="文件(F)",menu=menuFile)
menubar.add_cascade(label="编辑(E)",menu=menuEdit)
menubar.add_cascade(label="帮助(H)",menu=menuHelp)

filename= ""
'''def openFile():
    global filename
    with askopenfile(title="打开文件") as f:
        content =f.read()
        w1.insert(INSERT,content)
        filename =f.name
        print(f.name)'''

def saveFile():
    lab.config(text='做保存要做的事')#标签里的text是用来显示文字和图片的#####

def exit():
    root.quit()#整个窗口退出

#添加菜单项
#menuFile.add_command(label="打开",command=openFile)#将'打开'添加到子菜单 menuFile中 一点击子菜单'打开'就会回调函数openFile
menuFile.add_command(label="保存",command=saveFile)
menuFile.add_separator() #添加分割线
menuFile.add_command(label="退出",command=exit)

#将主菜单栏加到根窗口
root["menu"] =menubar
#w1= Text(root,width=50,height=30)
#w1.pack()
lab=Label(bd=2,width=23,height=1)
lab.pack()
root.mainloop()

在这里插入图片描述
最后为宝子们送上GUI页面的两种写法
1.金典写法

from tkinter import *
from tkinter import messagebox
import tkinter.messagebox #与上面的不一样
from tkinter.messagebox import *  #########没有使用
class Application(Frame):#类Application继承了父类Frame及其父类的特性
    def __init__(self,master=None):#通过构造函数初始化窗口中的对象    #注意传入参数的形式master=root#####
        super().__init__(master)#调用父类的初始化    ####注意括号里的内容
        self.master=master
        self.pack()

        self.createWidget()#初始化你创建的所有组件

    def createWidget(self):#创建窗口中的对象例如按钮,文本框
        #创建组件
        self.btn01=Button(self,text='点击送花',command=self.songhua)
        self.btn01.pack()
        '''self.btn01['text']='点击送花'
        self.btn01.pack()
        self.btn01['command']=self.songhua'''
        #显示图像
        global photo
        photo =PhotoImage(file="C:/Users/张倩/Downloads/fa4a9af2951ac47b00f8c2f5966a1d5a.gif")
        self.btn03=Button(self,image=photo,command=self.work)
        self.btn03.pack()
        #创建一个退出按钮                  #####例如root.quit()
        self.btnQuit=Button(self,text='退出',command=root.destroy)#退出整个主窗口,是类Tk()里的方法,所以用实例化对象root调用
        self.btnQuit.pack()
    def work(self):
        messagebox.showinfo('图片','工作中')
    def songhua(self):#方法songhua是类application里的方法,所以不能用root.songhua
        messagebox.showinfo('送花','送你99朵玫瑰花')

root=Tk()#主窗口
root.geometry('400x100+200+300')
root.title('一个经典的GUI程序类的测试')
app=Application(master=root)#实例化对象

root.mainloop()

2.一般写法

import tkinter
top=tkinter.Tk()
top.title('zheng ')

a=tkinter.Button(text='command',width=10,height=6,background='red')
a.pack(side='left',padx=150,pady=300)

b=tkinter.Button(text='command',width=10,height=6,background='red')
b.pack(side='right',padx=150)

lab=tkinter.Label(text='姓名标签',background='yellow',font=('隶书',100))
lab.pack(padx=0,pady=10)

ent1=tkinter.Text(font=('微软雅黑',4))
ent1.pack()
top.mainloop()

一定要用代码运行看哟,然后动手打一遍,当然越多越好,不过,只要你把我写的内容理解了,一遍也就理解意思了.加油啊,我们一起成长.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序媛的行程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值