精华内容
下载资源
问答
  • 2022-02-27 12:39:41

    tkinter是设计窗口页面的一类工具,一般用于问卷,需要切换窗口的项目中。要使用tkinter的各种功能,我们首先需要创建一个窗口。

    tkinter窗口和pygame窗口有一个相似的地方,窗口都需要一个变量来接收。

    import tkinter as tk
    win=tk.Tk()
    win.mainloop()

    Tk是tkinter创建窗口的一个函数

    mainsloop是刷新窗口界面如果没有这一行代码你的窗口只会存在一瞬间

    更多相关内容
  • 注意主窗口一定要为tk.Tk(),在主窗口上通过button的点击相应子函数创建子窗口,注意此时创建出来的窗口必须是Toplevel,否则出错。至于用图片窗口上绘图,则按代码所示即可。# -*- coding: utf-8 -*-"""Created on...

    注意主窗口一定要为tk.Tk(),在主窗口上通过button的点击相应子函数创建子窗口,注意此时创建出来的窗口必须是Toplevel,否则出错。

    至于用图片在窗口上绘图,则按代码所示即可。

    # -*- coding: utf-8 -*-

    """

    Created on Wed Oct 26 20:32:52 2016

    @author: min

    """

    import Tkinter as tk

    from PIL import Image, ImageTk

    global attackTime

    attackTime=1

    def show1():

    top1=tk.Toplevel()

    image = Image.open('random.jpg')

    img = ImageTk.PhotoImage(image)

    canvas1 = tk.Canvas(top1, width = image.width*2 ,height = image.height*2, bg = 'white')

    canvas1.create_image(0,0,image = img,anchor="nw")

    canvas1.create_image(image.width,0,image = img,anchor="nw")

    canvas1.pack()

    top1.mainloop()

    def show2():

    top1=tk.Toplevel()

    image = Image.open('random.jpg')

    img = ImageTk.PhotoImage(image)

    canvas = tk.Canvas(top1, width = image.width ,height = image.height, bg = 'white')

    canvas.create_image(0,0,image = img,anchor="nw")

    canvas.pack()

    top1.mainloop()

    def showMessage():

    top=tk.Toplevel()

    l=tk.Label(top,text='Attacks cost '+str(attackTime)+' s',width=20)

    l.pack()

    top.mainloop()

    root=tk.Tk()

    b1=tk.Button(root,text='start1',command=show1)

    b1.pack()

    b2=tk.Button(root,text='start2',command=showMessage)

    b2.pack()

    root.mainloop()

    补充知识:关于Python tkinter中出现的坑(界面Tk()+图片显示)

    一、关于Python3的tkinter模块

    1、首先关于创建Python的窗口是导入 import tkinter 或者 from tkinter import * 这两种形式。关于创建tkinter 的大家耳熟能详的就是直接 win=Tk()[在导入方式为from tkinter import *形式下],但是还有另一种方法用来创建窗口那就是:win=Toplevel(),这个代表的是创建二级界面,就是直接创建两个界面,这个方法非常实用,应用在多个函数调用并生成Python窗口上面。小逸亲自尝试了一下,相当的好哈哈~~~~

    2、Toplevel()实际操作。

    首先,我们在Python3的环境下写下以下简单的代码:

    from tkinter import *

    win=Toplevel()

    win.title=("这是一个二级界面")

    win.geometry("500x300+10+10")

    win.mainloop()

    上面的代码运行后将出现以下的两个窗口:

    33hhfk2d24h.jpg

    二、# 关于在Label中显示图片的大坑

    1、在Label 中显示图片需要用到tkinter 与pillow这两个模块

    单独运行一个在tkinter上显示的图片没有问题,但是如果把这个显示图片的函数放在一个Button的command中,那么就算用二级界面也不行了,这个是一个非常大的坑,但是解决方法也非常非常的简单。只要将处理图片的两行代码放在外面就行了。如图:

    kya02lgqe24.jpg

    以上这篇python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

    本文标题: python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例

    本文地址: http://www.cppcns.com/jiaoben/python/302149.html

    展开全文
  • 1 #-*-coding:utf-8-*-2 importos3 from tkinter import *45 root=Tk()6 root.title('执行窗口')78 """9 V1.21011 """12 defadd(a,b):13 a=int(a)14 b=int(b)15 sum=eval('a+b') #执行表达式16 print('a+b='...

    1 #-*-coding:utf-8-*-

    2 importos3 from tkinter import *

    4

    5 root=Tk()6 root.title('执行窗口')7

    8 """

    9 V1.210

    11 """

    12 defadd(a,b):13 a=int(a)14 b=int(b)15 sum=eval('a+b') #执行表达式

    16 print('a+b=',sum)17

    18 returnsum19

    20 #调用其他函数fun(asg1,asg2)

    21 defgo_func():22 #第一个参数,调用函数,第2个参数,函数参数

    23 func =n51.get()24 asgs =n52.get()25 func = eval(func) #转为函数

    26 #print(type(func))

    27 #无参数

    28 if len(asgs) ==0:29 func()30 else:31 #多参数j,分割

    32 asg=asgs.split(',')33 func(*asg)34

    35 #--------------------------------------

    36 #清空文本框内容

    37 defclear():38 text.delete('1.0','end')39

    40 #执行

    41 defshow():42 print('hello')43 text.insert('1.0', "hello\n")44

    45 #文本信息

    46 definsert_text(msg):47 text.insert(INSERT,'%s'%msg)48

    49 defget_app_deviceid():50 print('请先检查是否连接了设备,是否启动了开发者选项,是否开启了adb调试....')51 #查看连接设备

    52 out=os.popen('adb devices').read()53 patter= re.compile(r"[a-zA-Z0-9]+")54 device_list=patter.findall(out)55 #print(device_list)

    56 print('设备连接信息:--------------------------------------\n',out)57

    58 #调取text

    59 insert_text(out)60

    61 #存放设备号

    62 deviceid=[]63 #提取设备号,存放到deviceid中,

    64 if 'device' indevice_list:65 #print('设备号:',deviceid)

    66 #多个设备,

    67 n=4

    68 while len(device_list)>n:69 deviceid.append(device_list[n])70 n=n+2

    71 print('设备号:',deviceid)72 else:73 print('无此设备,请检查是否连接设备。')74 returnout75

    76

    77 #执行cmd命令

    78 def execute_cmd(cmd='adb devices'):79 cmd=e1.get()80 print(cmd)81 out =os.popen(cmd).read()82 print(out)83 returnout84

    85 defget_text():86 #获取entry输入的文字

    87 str2=""

    88 str2=e1.get()89

    90 #在光标处插入文字

    91 text.insert("insert", str2)92

    93 #-grid-----------------------------------------------------------------------

    94

    95 #label控件

    96 Label(root,text="输入命令:").grid(row=0,column=0,sticky=E) #靠右

    97 Label(root,text="本地目录:").grid(row=1,column=0,sticky=E) #靠右

    98 Label(root, text='手机目录').grid(row=2,column=0,sticky=E) #靠左

    99

    100 Label(root, text='显示结果',width=15).grid(row=3,column=1,sticky=W) #靠左

    101

    102 #输入控件

    103 e1=Entry(root,width=30)104 e1.grid(row=0,column=1,padx=5,pady=5)105 e2=Entry(root,width=30)106 e2.grid(row=1,column=1,padx=5,pady=5)107 e3=Entry(root,width=30)108 e3.grid(row=2,column=1,padx=5,pady=5)109

    110

    111 #命令控件

    112 #b1=Button(root,text="点击看看吧",command=show,height=1,width=15,fg='blue').grid(row=2,column=1)

    113 #Label(root, text='显示结果', width=15, height=1).grid(row=2,column=1,sticky=W) #靠左

    114 #grid(row=1,column=2),row,行,从0开始,column列从0开始;

    115 b1=Button(root,text="执行命令",command=get_text,height=1,width=15,fg='blue').grid(row=0,column=2,padx=5, pady=5)116 b2=Button(root,text="安装包",command=show,height=1,width=15,fg='blue').grid(row=1,column=2,padx=5, pady=5)117

    118 b3=Button(root,text="查看设备",command=get_app_deviceid,height=1,width=15,fg='blue').grid(row=4,column=0,padx=5, pady=5)119 b4=Button(root,text="清空",command=clear,height=1,width=15,fg='black').grid(row=4,column=2,padx=5, pady=5)120

    121

    122

    123 #显示结果,text控件

    124 text = Text(root, width=30, font =('Verdana',10),fg='blue')125 text.grid(row=4,column=1,rowspan=3)126

    127

    128 #调用函数

    129 Label(root, text='调用函数').grid(row=8,column=0)130 Label(root, text='输入函数名').grid(row=8,column=1)131 Label(root, text='输入参数').grid(row=8,column=2)132

    133 #调用函数

    134 b5= Button(root,text = "加法",command = go_func,width = 15).grid(row = 9,column = 0,padx=5, pady=5)135 #输入函数名

    136 var1 =StringVar()137 n51 = Entry(root,width = 30,textvariable =var1)138 var1.set("add")139 n51.grid(row = 9,column = 1)140

    141 #输入函数参数

    142 var2 =StringVar()143 n52 = Entry(root,width = 30,textvariable =var2)144 var2.set("a,b")145 n52.grid(row = 9,column = 2)146

    147

    148 root.mainloop()

    展开全文
  • 注意主窗口一定要为tk.Tk(),在主窗口上通过button的点击相应子函数创建子窗口,注意此时创建出来的窗口必须是Toplevel,否则出错。 至于用图片窗口上绘图,则按代码所示即可。 # -*- coding: utf-8 -*- """ ...
  • tkinter创建嵌套子窗口

    千次阅读 2020-08-23 16:34:34
    tkinter实现嵌套子窗口

    引言

    在tkinter窗口中实现窗口嵌套,在一定程度上减少了桌面窗口复杂程度,可以给电脑操作系统带来较为整洁的桌面环境。父窗口的内部功能字窗口,可以嵌套在父窗口中。

    虽然tkinter本身没有这样组件或功能,但我们可以进行一定程度的拓展。

    各种方法

    实现tkinter嵌套窗口的方式有很多,一下是常见的三种:

    1. 绑定鼠标事件,使子窗口随父窗口移动
      • 说明:绑定鼠标的<MouseMotion>,同步移动窗口
      • 优点:方便编写,代码量小
      • 缺点:实质上还是各个窗口自成一例,影响视觉效果
    2. 使用aardio语言,在winform窗口中嵌套tkinter程序和各种应用程序
      • 说明:aardio介绍查看官网。通过aardio中的win库,嵌套Python主程序,使窗口显示在winform窗口中
      • 优点:真正的内嵌窗口,可以实现多窗口内部显示
      • 缺点:代码量大,程序需要使用额外10M+的运行空间
    3. 通过tkinter.frame,代替实现
      • 说明:使用frame控件,至少还原50%的窗口结构,这是一种折中方式
      • 优点:真正的内嵌功能组件,可以多个显示
      • 缺点:无法实现100%的窗口功能

    根据这三种方法的优劣取舍,这篇文章主要讲解第三种方法,拓展frame

    构思

    窗口最主要的部分是标题栏,因此我们先要实现标题栏的功能。
    在编写代码之前,先想想那些功能不需要:
    1、缩小键(缩小了怎么显示?当然,你可以建立一个任务栏)
    2、图标(嵌套窗口只是功能窗口,图标不重要)
    现在,我们减少了两个功能和十几行代码可以开工了。

    创建窗口主体

    为了方便窗口中再加组件,我们使用frame作为底层。

    from tkiner import Button as tkButton,Tk,Frame,Label#...
    
    #...
    
    class ChildFrame(Frame):
       '''
       这是一个建立在Frame之上的子窗口控件
       该子窗口可以嵌入tkinter父窗口,但建议是在窗口而不是在控件中
       子窗口可以移动也可以不移动,通过属性设定来改变子窗口的状态
       需要注意的是,在内嵌子窗口导入控件时,注意起始高度为32
    
       因为组件限制,ChildFrame只能够实现真正窗口的一小部分功能
       '''
    
       def __init__(self,root,title_color,title='title',color='#f0f0f0'):
          self.root=root
          super().__init__(root,bg=color)#底层
          self.title=title
          self.tc=title_color
          self.titlebar=Frame(self,bg=self.tc)#标题栏
          Label(self.titlebar,text=self.title,bg=self.tc,fg='white').place(x=5,y=5)
          self.conbar=Frame(self.titlebar,bg=self.tc)
          self.conbar.pack(side='right')#工具栏
          self.desb=tkButton(self.conbar,text='×',font=('宋体',15),bg=self.tc,fg='white',activeforeground='white',activebackground='red',relief='flat',command=self.destroy)
          self.desb.pack(side='right')#关闭按钮
          self.desb.bind('<Enter>',lambda event:self.desb.configure(background='red'))
          self.desb.bind('<Leave>',lambda event:self.desb.configure(background=self.tc))#当鼠标划过时有红色样式
          self.expandb=tkButton(self.conbar,text='□',font=('宋体',15),fg='white',bg=self.tc,activeforeground='white',activebackground=self.tc,relief='flat',command=self.expandwin)
          self.expandb.pack(side='right')#最大化
          self.titlebar.pack(fill='x')
          self.titlebar.bind('<Button-1>',self._startmove,add='+')#移动
          self.titlebar.bind('<B1-Motion>',self._movewin,add='+')

    可以看出,工具栏已经具备了关闭和放大的按钮以及标题,同时标题栏还拥有拖动功能。
    但是,在完成余下的工作的同时,先要让窗口显示出来。

    def show(self,x,y,width,height):#显示窗口
       self.wd=width
       self.hi=height
       self.oralx=x
       self.oraly=y
       self.place(x=x,y=y,width=width,height=height)

    那么接下来我们将完成余下的功能。

    关闭窗口

    def destroy(self):#销毁窗口
       self.place_forget()

    最大化

    既然可以最大化窗口当然也要恢复窗口大小。

    最大化窗口

    def expandwin(self):#最大化窗口
       #记录窗口的起始位置
       self.oralx=self.winfo_x()
       self.oraly=self.winfo_y()
       self.root.update()
       w=self.root.winfo_width()
       h=self.root.winfo_height()
       self.place(x=0,y=0,width=w,height=h)
       self.expandb['text']='◪'
       self.expandb['command']=self.backexpandwin
       self.lockwin()#最大化不能移动

    恢复窗口

    def backexpandwin(self):#恢复窗口大小
       self.expandb['text']='□'
       self.expandb['command']=self.expandwin
       self.place(x=self.oralx,y=self.oraly,width=self.wd,height=self.hi)
       self.activewin()

    窗口移动

    def _startmove(self,event):#记录开始移动的坐标
       self.startx=event.x
       self.starty=event.y
    
    def _movewin(self,event):#移动窗口
       self.place(x=self.winfo_x()+(event.x-self.startx),y=self.winfo_y()+(event.y-self.starty))

    额外功能

    这里的额外功能主要是针对子窗口的特殊功能和尽可能模仿主窗口的功能,可以丰富组件的使用。这里给出示例,可以自己拓展。

    def lockwin(self):#禁止窗口移动
       self.titlebar.unbind('<B1-Motion>')
    
    def activewin(self):#允许窗口移动
       self.titlebar.bind('<B1-Motion>',self._movewin,add='+')
    
    def noexpand(self):#是否支持放大
       self.expandb.pack_forget()
    def haveexpand(self):#支持放大
       self.expandb.pack()

    完整代码

    class ChildFrame(Frame):
       '''
       这是一个建立在Frame之上的子窗口控件
       该子窗口可以嵌入tkinter父窗口,但建议是在窗口而不是在控件中
       子窗口可以移动也可以不移动,通过属性设定来改变子窗口的状态
       需要注意的是,在内嵌子窗口导入控件时,注意起始高度为32
    
       因为组件限制,ChildFrame只能够实现真正窗口的一小部分功能
       '''
    
       def __init__(self,root,title_color,title='title',color='#f0f0f0'):
          self.root=root
          super().__init__(root,bg=color)#底层
          self.title=title
          self.tc=title_color
          self.titlebar=Frame(self,bg=self.tc)#标题栏
          Label(self.titlebar,text=self.title,bg=self.tc,fg='white').place(x=5,y=5)
          self.conbar=Frame(self.titlebar,bg=self.tc)
          self.conbar.pack(side='right')#工具栏
          self.desb=tkButton(self.conbar,text='×',font=('宋体',15),bg=self.tc,fg='white',activeforeground='white',activebackground='red',relief='flat',command=self.destroy)
          self.desb.pack(side='right')#关闭按钮
          self.desb.bind('<Enter>',lambda event:self.desb.configure(background='red'))
          self.desb.bind('<Leave>',lambda event:self.desb.configure(background=self.tc))#当鼠标划过时有红色样式
          self.expandb=tkButton(self.conbar,text='□',font=('宋体',15),fg='white',bg=self.tc,activeforeground='white',activebackground=self.tc,relief='flat',command=self.expandwin)
          self.expandb.pack(side='right')#最大化
          self.titlebar.pack(fill='x')
          self.titlebar.bind('<Button-1>',self._startmove,add='+')#移动
          self.titlebar.bind('<B1-Motion>',self._movewin,add='+')
    
       def show(self,x,y,width,height):#显示窗口
          self.wd=width
          self.hi=height
          self.oralx=x
          self.oraly=y
          self.place(x=x,y=y,width=width,height=height)
    
       def destroy(self):#销毁窗口
          self.place_forget()
    
       def _startmove(self,event):#记录开始移动的坐标
          self.startx=event.x
          self.starty=event.y
    
       def _movewin(self,event):#移动窗口
          self.place(x=self.winfo_x()+(event.x-self.startx),y=self.winfo_y()+(event.y-self.starty))
    
       def lockwin(self):#禁止窗口移动
          self.titlebar.unbind('<B1-Motion>')
    
       def activewin(self):#允许窗口移动
          self.titlebar.bind('<B1-Motion>',self._movewin,add='+')
    
       def backexpandwin(self):#恢复窗口大小
          self.expandb['text']='□'
          self.expandb['command']=self.expandwin
          self.place(x=self.oralx,y=self.oraly,width=self.wd,height=self.hi)
          self.activewin()
    
       def expandwin(self):#最大化窗口
          #记录窗口的起始位置
          self.oralx=self.winfo_x()
          self.oraly=self.winfo_y()
          self.root.update()
          w=self.root.winfo_width()
          h=self.root.winfo_height()
          self.place(x=0,y=0,width=w,height=h)
          self.expandb['text']='◪'
          self.expandb['command']=self.backexpandwin
          self.lockwin()#最大化不能移动
    
       def noexpand(self):#是否支持放大
          self.expandb.pack_forget()
       def haveexpand(self):#支持放大
          self.expandb.pack()

    效果

    在这里插入图片描述
    Tin知识库

    结语

    tkinter的组件具有很强的拓展性和兼容性,通过二次封装可以实现很多丰富GUI使用的效果。

    ☀tkinter创新☀

    展开全文
  • Tkinter-创建窗口实例

    千次阅读 2019-05-31 23:07:35
    主要介绍了Tkinter各组件类之间继承关系,能够更好的了解Tkinter组件,同时列举两个Tkinter入门示例,简单快速构建图形界面程序!
  • 目录 1.设置标题 root.title('第一个窗口') 2.设置大小和窗口出现的位置 ...root = Tk()#创建主窗口 root.title('第一个窗口')#设置标题 #=========2.创建、安放按钮============ b = Button(r...
  • Tkinter打造GUI开发工具(4) Tkinter的Tk主窗口 通过前面学习,我们知道了建立Tk主窗口,是为了更好地管理Tkinter程序。Tk()对象root通过Wm给我们提供了操作管理Tkinter窗口的方法,通过Misc类提供了操作管理小...
  • 关于python GUI编程(Tkinter) 创建窗口在窗口上用图片绘图
  • 同常用Tk()方法创建的窗口被称为根窗口,之后可以窗口中创建许多的控件 2.有关属性的设置 title() 用来设置窗口名称,填写括号内,字符型 geometry('width x height +x + y') 设置窗...
  • 由于 Tkinter 是内置到 python 的安装包、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。 pycharm 调试Tkinter程序的时候,...
  • Python GUI 设计Tkinter———窗口创建、组件布局
  • 你好,我很难python使用多个tkinter窗口。基本上,我有两个类,它们也与两个不同的窗口相关。main类显示主窗口(parentWindow),另一个类显示第二个窗口(childWindow)。以下代码启动主窗口:#START THE ...
  • 我的一个项目中,我试图检查根窗口(self)的子tk.toplever窗口(child1)中是否有用户从根窗口中创建的tk.toplever窗口(child2),以及当前用户屏幕上是否有此窗口(child2)。如果不是这样,那么新的tk.toplever窗口...
  • Tkinter 窗口属性设置

    2022-03-17 22:09:23
    测试1,只是修改窗口的标题 from tkinterimport * window = Tk() window.geometry(“400x200+150+200”) window.title(“修改窗口的一些基本属性”) window.mainloop() 运行效果如下: 测试2,修改标题栏的默认图标...
  • Python tkinter -第三章 tkinter (窗口创建与Pack布局)

    千次阅读 多人点赞 2019-09-03 23:20:56
    第3章 tkinter 3.1 第一个tkinter程序 tkinter的程序很容易编写。难点是后面的布局以及参数的传递。很多控件(Widget)的使用方法都可以从网络上快速的找到。
  • 如何在tkinter窗口中添加滚动条?

    千次阅读 2020-12-17 11:33:49
    我有一个tkinter程序:import urllib.requestfrom tkinter import *root = Tk()root.iconbitmap(default='icon.ico')root.wm_title('Got Skills\' Skill Tracker')frame = Frame(width="500",height="500")frame....
  • 我想用tkinter在第二个窗口中放置一个图像,第一个窗口中代码运行良好,但是第二个窗口什么也没有显示。在在本部分中,我导入必要的模块:from tkinter import filedialog, Tk, Frame, Label, PhotoImage, ...
  • # 创建一个 Windows 窗口对象 win = Tk() # title() 方法设置窗口的标题 win.title("我的第一个窗口") # geometry(size) 方法设置窗口的大小, size用于指定窗口的大小: 宽x高 (注意:此处为x, 且中间不能出现空格...
  • tkinter——Python GUI设计——主窗口

    千次阅读 2020-03-28 10:54:28
      GUI设计的所有部件均主窗口上显示,因此创建各部件之前需要先创建主窗口此需要使用的函数为: class Tkinter.Tk(screenName=None, baseName=None, className='Tk', useTk=1) 该函数将Tkinter.Tk类实例...
  • import tkinter as tk class Win1Input(tk.Toplevel): def __init__(self): super().__init__() self.title(u'凭证号录入') self.geometry('240x150+266+483') self.attributes("-toolwindow", 2)
  • 主窗口就是你的程序开始运行的时候创建的,在主窗口中你通常是放置了你主要的部件.另外,Tkinter脚本可以依据需要创建很多独立的窗口,主要的方法就是通过创建Toplevel对象。每一个Toplevel对象都创建一个显示的窗口,...
  • 代码是正常无bug的 终端有运行信息 但就是不见桌面窗口,或闪了一下就消失掉了没有对窗口进行长期保持的设定,故此窗口只显示了一次没有长期显示所以看不到窗口在窗口对象后面加上函数mainloop()
  • 如何Python“刷新”Tkinter窗口

    千次阅读 2020-11-29 16:28:21
    我想通过一个按钮Python重新加载Tkinter窗口,但我很难搞清楚它。你会发现,它使用import random并随机生成来自列表的单词,当你点击按钮时,我想将标签设置为不同的单词,就像滚动的骰子,但用单词。如何...
  • Python tkinter教程-01:创建窗口

    千次阅读 多人点赞 2020-04-20 10:40:15
    Python tkinter教程-01:创建窗口 文章目录0 准备工作1 创建空白窗体2 窗口标题3 窗口大小与位置4 锁定窗口大小5 窗口图标6 隐藏与显示窗口其它 0 准备工作 要使用,先导入:import tkinter as tk导入名字叫tkinter...
  • python使用Tkinter编辑标题b我正在尝试向窗口添加自定义标题,但遇到了麻烦。 我知道我的代码不正确,但是当我运行它时,它将创建2个窗口,一个仅带有标题tk,另一个更大的带有“ Simple Prog”的窗口。 如何使...
  • #导入tkinter模块,以及导入ttk模块,tkinter是python结合tk的标准接口,ttk是TK8.5之后加入的“主题化工具包” from tkinter import * from tkinter import ttk ...创建了一个主窗口主窗口标题

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,559
精华内容 2,223
关键字:

在tkinter中创建主窗口