精华内容
下载资源
问答
  •   GUI设计的所有部件均在主窗口上显示,因此在创建各部件之前需要先创建主窗口。在此需要使用的函数为: class Tkinter.Tk(screenName=None, baseName=None, className='Tk', useTk=1) 该函数Tkinter.Tk类实例...

    主窗口

      GUI设计的所有部件均在主窗口上显示,因此在创建各部件之前需要先创建主窗口。在此需要使用的函数为:

    class Tkinter.Tk(screenName=None, baseName=None, className='Tk', useTk=1)
    

    该函数将Tkinter.Tk类实例化,通常使用时不用带参数,该语句创建窗口通常作为应用程序的主窗口。

    例如:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
     
    import tkinter as tk  # 使用Tkinter前需要先导入
     
    # 第1步,实例化object,建立窗口window
    window = tk.Tk()
     
    # 第2步,给窗口的可视化起名字
    window.title('My Window')
     
    # 第3步,设定窗口的大小(*)
    window.geometry('500x300')  # 这里的乘是小x
    
    # 第4步,主窗口循环显示
    window.mainloop()
    

      Tkinter.Tk类实例化为window后,可以通过指定的函数对窗口的属性进行修改:

    函数含义
    window.title(‘My Window’)修改框体的名字。也可在创建Tkinter.Tk类时,使用className参数来命名
    window.resizable(0,0)框体大小可调性,分别表示x,y方向的可变性
    window.geometry(‘250x150’)指定主框体大小
    window.quit()退出
    window.update_idletasks()
    window.update()刷新页面(界面显示一次后直接退出结束程序)
    window.mainloop()窗口循环显示(一直循环显示,直到窗口被关闭)
    window.iconbitmap(“classic.ico”)
    window.config(background = “pink”)
    window.resizable(False,False)窗口的高度和宽度是否可变
    window.minsize(100,100)窗口的最小缩放
    window.maxsize(600,333)窗口最大缩放
    window.overrideredirect(True)
    window.attributes("-alpha",0.9)设置窗口的透明度,1为不透明,0为完全透明
    window.protocol(“WM_DELETE_WINDOW”,call)查看资料ICCCM
    window.protocol(“WM_TAKE_FOCUS”,call)
    window.attributes("-toolwindow",1)设置为toolwindow/topmost模式
    window.state(“zoomed”)启动窗口最大化
    window.withdraw()窗口隐藏,取消用deiconify()方法
    window.iconify()窗口最小化
    window.deiconify()还原窗口
    window.attributes("-fullscreen",1)坑爹的全屏呀,到底有多坑,试试你才知道!!!
    友情提示:Alt+Tab可以切换到其他应用后关闭
    window.winfo_screenwidth()
    window.winfo_screenheight()
    获得屏幕分辨率
    window.frame()返回X窗口的标示符或者是当前窗口的句柄
    window.grid(baseWidth =100,baseHeight =100,
    widthInc =4,heightInc=4)
    basewidth和baseheight指定Tk_geometryrequest要求的网格单元数
    widthInc和heightIn指定网格单元的宽度和高度(像素)’’’
    window.group()将窗口添加到窗口群中,括号内的参数为窗口的路径,用来指定主窗口
    window.state(“iconic”)括号里面的参数还可以是"withdrawn"(隐藏窗口,运行后看不到窗口且任务栏也没有提醒,慎用),“icon”(最小化窗口,运行后窗口直接缩小到任务栏)
    window.iconwindow()

      参照上表,将透明度设置为0.1,效果如下

    图中右边虚影为主题框。

      window.protocol(“WM_DELETE_WINDOW”,call)用法如下,在使用时需要定于一个回调函数“call”,当用户关闭界面点击“关闭”时,系统会自动调用“call”函数,且此时界面不会被关闭。

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
     
    import tkinter as tk  # 使用Tkinter前需要先导入
     
    # 第1步,实例化object,建立窗口window
    window = tk.Tk()
     
    # 第2步,给窗口的可视化起名字
    window.title('My Window')
     
    # 第3步,设定窗口的大小(*)
    window.geometry('500x300')  # 这里的乘是小x
    
    def call():
        print("call")
    
    window.protocol("WM_DELETE_WINDOW",call)
    
    # 第4步,主窗口循环显示
    window.mainloop()
    

    效果如下:

    其他功能函数不再演示,有需要的可以自行尝试~

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

    千次阅读 2019-05-31 23:07:35
    主要介绍了Tkinter各组件类之间继承关系,能够更好的了解Tkinter组件,同时列举两个Tkinter入门示例,简单快速构建图形界面程序!

    Tkinter-创建窗口实例
    来自http://www.tpleina.com/2019/05/2349786732.html

    Tkinter组件继承关系

    在创建Tkinter实例之前,先说一下Tkinter组件之间继承关系
    Tkinter组件继承关系

    说明

    • Tkinter 有两个根父类,它们直接继承了object类
      • Misc:所有组件的根父类
      • Wm:提供了一些与窗口管理器通信的功能函数
      • 对于 Misc 和 Wm 两个基类而言,它们是所有Tkinter组件的父类,所有组件都可以直接使用它们的方法
    • Tk:是Misc 和 Wm 派生的子类 ,它是应用程序的主窗口,Tkinter GUI编程通常都需要直接或间接使用Tk类
    • BaseWidget:是所有组件的基类
    • Widget:代表一个通用的 GUI 组件,它继承于BaseWidget父类,所有组件都是 Widget 的子类
    • Pack、Place、Grid:是布局管理器类,负责管理所包含的组件的大小和位置摆放,并派生出来Widget子类

    组件介绍

    应用组件类中文名称说明
    Toplevel顶层容器类,有点类似于窗口,为其他组件提供单独的容器
    Frame容器容器类,用于装载其它 GUI 组件
    LabelFrame带标签的容器带标签的容器组件,类似于Frame,但能添加标题
    Entry单行输入框用户可输入内容
    Text多行文本框显示多行文本
    Label标签显示不可编辑的文本或图标
    Checkbutton复选框复选框
    Radiobutton单选钮单选钮
    Button按钮按钮组件
    Listbox列表框列表框
    Scale滑动条上下、左右滑动条
    Spinbox微调选择器通过向上、向下箭头选择不同的值
    Scrollbar滚动条提供滚动功能
    Message消息框弹出消息框
    PanedWindow分区窗口分区窗口
    Menu菜单菜单组件
    Menubutton菜单按钮用来包含菜单的按钮(包括下拉式、层叠式等)
    OptionMenu菜单按钮Menubutton 的子类,也代表菜单按钮,可通过按钮打开一个菜单
    Canvas画布提供绘图功能,如绘制直线、矩形、椭圆、多边形、位图等

    窗口、容器、组件关系

    任何窗口可由若干个容器组成,而容器里填充着各种基本组件,通过设置基本组件的属性(大小、位置等),便可形成有交互能力用户图形界面

    • 一个窗口由一个或多个容器组成
    • 每个容器又由一个或多个组件组成
    • 窗口、容器、组件构成了一个完整的用户图形界面

    创建Tk窗口示例

    # -*- coding:utf-8 -*-
    from Tkinter import * 
    
    if __name__ == "__main__":
        # 创建Tk对象,即主窗口
        mw = Tk()
        # 设置窗口标题
        mw.title('Tkinter入门示例')
        # 创建Label标签,第一个参数意思是,将label标签对象加入主窗口mw中
        w = Label(mw, text="Hello World!Hello Tkinter!")
        # 布局设置
        w.pack()
        # 启动主窗口循环
        mw.mainloop()
    

    示例代码创建了两个对象Tk 和 Label,Tk是主窗口,Label是文本标签,将Label对象加入到Tk主窗口中

    有关Tkinter包导入,在Python 2.x 使用from Tkinter import *
    在Python 3.x 使用from Tkinter import *

    另一种方式是不直接使用Tk,只要创建Frame的子类,其子类会自动创建Tk对象作为窗口,示例如下:

    # -*- coding:utf-8 -*-
    from Tkinter import *
    
    class App(Frame):
        def __init__(self, master=None):
            Frame.__init__(self, master)
            self.pack()
            # 调用initWidgets()初始化界面
            self.initWidgets()
    
        def initWidgets(self):
            # 创建Label组件,第一个参数将该Label放入主窗口
            w = Label(self)
            # 创建位图
            self.bm = PhotoImage(file = 'logo.png')
            # 设置Label背景图片
            w['image'] = self.bm
            w.pack()
            # 创建Button组件,第一个参数将该Button放入主窗口
            okButton = Button(self, text="确定")
            # 设置Button的背景色
            okButton['background'] = 'green'
            okButton.pack()
    
    if __name__ == "__main__":
        # 创建App对象
        app = App()
        # Frame有个默认的master属性,该属性值是Tk对象(窗口)
        print(type(app.master))
        # 设置窗口标题
        app.master.title('Tkinter入门示例')
        # 启动主窗口的消息循环
        app.mainloop()
    
    

    补充说明

    • 初始化窗口分三个过程:创建组件、添加组件、配置组件
    • 配置组件,可以在初始化配置,也可以在创建完成后配置,如:
      • 初始化配置 okbtn = Button(self, text="确定")
      • 创建后配置 okbtn['text'] = "确定",以字典形式配置,完全等价
      • 还可以这样配置 okbtn.configure(text = "确定"), 完全等价,自由切换使用
    • 创建GUI组件很简单,需要至少指定一个参数,用于指定GUI组件属于哪个容器(Tk组件例外,因为该组件代表顶级窗口)
    • 程序在创建任意Widget组件时,没有指定master属性(即创建Widget组件时第一个参数传入None),那么程序会自动为该Widget组件创建一个Tk窗口
    展开全文
  • tkinter创建真正的嵌套子窗口

    千次阅读 2020-09-05 16:52:45
    tkinter和win32gui实现真正意义上的嵌套子窗口

    引言

    在我之前的这篇纯tkinter创建嵌套子窗口的文章中,只提及了3种方法,原因就是,那三种方法都是建立在相对高层的代码上的。而这次需要使用系统(Windows)的底层api,来创建真正意义上的嵌套子窗口。

    需要注意的是,这次的子窗口是完全真正的窗口,也就是tkinter的子窗口功能全开。不过,这篇文章并不是由纯tkinter实现。

    我们没必要去寻找 Windows-api,已经有人帮我们弄好了,这次需要用到 win32gui (下载 pywin32 就可以了)。除了单独下载 pywin32,在测试阶段还需要使用 pygetwindow,用 pip install PyGetWindow 就可以了。

    获取窗口句柄

    方法一

    win32gui已经给出了方法,如下:

    import win32gui
    import pygetwindow as gw
    
    hwnd = win32gui.FindWindow(None, u"窗口名称")
    

    然而在测试就阶段,有些窗口的标题很难准确确定,那么就要使用 pygetwindow 了。

    titles = gw.getAllTitles()
    print(titles)
    

    方法二

    同样的,pygetwindow 也提供了通过标题一个获取窗口句柄的方式。

    import re
    pidinfo=gw.getWindowsWithTitle("窗口标题")[0]
    print(pidinfo)
    pid=re.findall('hWnd=(\d+)',str(pidinfo))[0]#之后要用 int() 从字符串转为整数
    

    tkinter窗口用这两种可能会不准或出错。
    窗口显示前,使用 tkinter窗口以及组件自带的 winfo_id()。
    窗口显示后,使用以上两种方法

    创造嵌入窗口

    在这里不得不感叹 win32gui 的强大,使用 SetParent 函数就可以做到。

    #pid: 父窗口句柄
    #cid: 子窗口句柄
    
    win32gui.SetParent(cid,pid)
    

    在窗口创建后再嵌套,子窗口显示速度可能会有点慢,而且不知道边框为什么是 Windows7(Visita)的样式

    一行代码直接搞定,太感人了😂😂😂。到此就完成了在 tkinter(当然,不止tkinter,所有窗口都可以)创建真正意义上的子窗口。除了嵌套tkinter窗口,还可以嵌套其它程序的窗口。效果如下:
    在这里插入图片描述

    Tin知识库

    但是,光在窗口中嵌套,好像还缺点什么。振奋人心的是,SetParent的父窗口ID,可以使用组件ID!!!

    嵌套在组件中

    这个时候,建议在窗口创建前获取组件id。

    同样的,这个时候需要使用tkinter组件的 winfo_id(),在文本框中,就是 Text.winfo_id()。效果如下:
    在这里插入图片描述

    Tin知识库

    结语

    配合Windows系统使用,Python自带tkinter是不是很强大?

    ☀tkinter创新☀

    展开全文
  • 关于python GUI编程(Tkinter) 创建窗口及在窗口上用图片绘图

      注意主窗口一定要为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教程-01:创建窗口

    千次阅读 多人点赞 2020-04-20 10:40:15
    Python tkinter教程-01:创建窗口 文章目录0 准备工作1 创建空白窗体2 窗口标题3 窗口大小与位置4 锁定窗口大小5 窗口图标6 隐藏与显示窗口其它 0 准备工作 要使用,先导入:import tkinter as tk导入名字叫tkinter...
  • 先说一个小技巧:确认组件有父级的前提下 tkinter 中所有类第一个参数 master, 就是父组件,在类中可以通过master变量访问父组件。...# 通过t设置tk的窗口标题 t.master.title('I am Tk, set by sub...
  • 创建一个窗口基本设置:...frame.title('主窗口') # 给窗口设置主标题 frame.geometry("700x500") # 设置窗口大小,宽x长,中间的是一个小写字母英文x frame.maxsize(800, 600) # 设置最大窗口大小 frame.minsize(50...
  • 在pycharm 调试Tkinter程序的时候,关闭右上角的X 实际上并未退出进程,长期以往 再大的内存也会被耗尽。 一般就是下面的代码: """ from tkinter import * def main(): root = Tk() b = Button(root,...
  • # -*- coding: utf-8 -*- fromTkinterimport* ...# 80x80代表了初始化时主窗口的大小,0,0代表了初始化时窗口所在的位置 root.geometry('80x80+10+10') # 填充方向 Label(root, text='l1', bg='...
  • 注意主窗口一定要为tk.Tk(),在主窗口上通过button的点击相应子函数创建子窗口,注意此时创建出来的窗口必须是Toplevel,否则出错。 至于用图片在窗口上绘图,则按代码所示即可。 # -*- coding: utf-8 -*- """ ...
  • tkinter函数与实例

    千次阅读 多人点赞 2019-07-16 16:17:22
    tkinter函数 import tkinter win=tkinter.Tk() win.title("银行系统") #设置大小和位置 win.geometry("400x400+200+100")#长字母(x)宽  距屏幕左侧位置  距屏幕上边位置 #进入消息...
  • #第二窗口定义 def windows2(): master = Tk() # 导入tkinter中的tk模块 master.title('小黑的翻译器2') master.geometry('460x120+1200+500') label1 = Label(master, text='输入内容:', font=('GB23...
  • 文章目录Python Tkinter里取回button 回调函数的变量Button 组件介绍代码分析 Python Tkinter里取回button 回调函数的变量 最近在尝试用用python的内置库tkinter写一个GUI应用,碰到了一些问题,这里note一下。 开发...
  • close.config(bg='#640000') elif do == 'out': #焦点不在窗口时 for i in tkList: try: i.config(fg=focusColor['out']['fg']) except: pass i.config(bg=focusColor['out']['bg']) #判断窗口创建为Toplevel还是Tk...
  • python-tkinter-GUI简单化编程之顶层窗口python tkinter GUI简单化编程之文章目录(点击可传送)一、自我介绍、封装及使用方法二、封装顶层窗口三、封装库的使用四、总结 创作不易,请多包涵支持,谢谢! python ...
  • 使用Tkinter编写一个简单的窗口应用

    千次阅读 2020-09-26 12:11:22
    使用Tkinter编写一个简单的窗口应用 文章目录使用Tkinter编写一个简单的窗口应用一、前言二、控件简介三、实践学习 一、前言 ​ Tkinter是python中的一个实现可视化窗口的模块,具有使用方便(Python自带、无需下载...
  • tkinter图片窗口

    2020-08-28 11:15:05
    tkinter创建图片异型窗口
  • # 模 块:tkinter/tkinter.messagebox/pickle/json # 制 作:Q343340657(WX同号) ”“” 登录界面,效果如下: 代码如下: “”“ # 名 称:聊天登录界面 # 环 境:python 3.8.5(其他版本没测试,请自行测试...
  • 本文开始介绍利用Python做一些GUI编程,这里先介绍如何利用tkinter模块创建一个window窗体。 # tkinter 模块创建一个窗体 from tkinter import * ''' 开始接触桌面图形界面编程 你可以到安装路径:\lib\tkinter ...
  • tkinter窗口组件之Toplevel,窗口分身术之顶级窗口
  • Python tkinter自定义消息窗口messagebox

    千次阅读 2020-03-26 10:09:14
    tkinter模块python图形编程中常用的库,最近想要用tk中的messagebox实现一些简单的功能。 首先,我们看到tkinter中messagebox对像的使用。 from tkinter import messagebox 在pycharm中选中messagebox直接“ctrl+B...
  • from tkinter import * from tkinter import messagebox # 导入库文件 class YouLikeMe(Frame): ... # 定义构造函数、并初始化父类为空 super().__init__(master) # 通过 super() 调用父类、并将
  • 【python】Tkinter可视化窗口(一)

    千次阅读 2019-03-10 08:36:21
    Tkinter是使用 python 进行窗口视窗设计的模块. 简单的构造, 多平台, 多系统的兼容性, 能让它成为让你快速入门定制窗口文件的好助手. 它在 python 窗口视窗模块中是一款简单型的. 所以用来入门, 熟悉 窗口视窗的使用...
  • python使用tkinter实现浮动窗口动态实时显示时钟

    千次阅读 多人点赞 2020-04-03 12:45:12
    本案例是一个小小的尝试,主要是使用tk窗体和label控件实现简单的时间显示功能,并实时展现当前的最新时间,形成动态的展示效果。...Tkinter 是 Python 标准 GUI 库,其最初是为 Tcl(这是一门工具...
  • Toplevel()方法的含义是建立在Tk()主窗口上面的顶层窗口,我们本书称为弹出窗口PopWindow。因为它为我们提供了很多高级功能,例如独立窗口工具栏,信息气泡等等都是用Toplevel()方法实现的,就像大窗口中弹出的小...
  • 二、Tkinter是什么 Tkinter 是使用 python 进行窗口视窗设计的模块。Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口。作为 python 特定的GUI界面,是一个图像的窗口tkinter是python 自带的,可以编辑的...
  • # 创建主窗口 root = tkinter.Tk() # 设置窗口大小 root.minsize(300,300) # 声明函数 def okqqq(): # 弹出对话框 result = tkinter.messagebox.askokcancel(title = '标题~',message='\u5185\u5bb9\uff1a\u8981\u...
  • import tkinter as tk window = tk.Tk() ...# 创建主窗口 canvas = tk.Canvas(window, width=500, height=200, ) # 创建画布组件 image_file = tk.PhotoImage(file='welcome.gif') # 加载图片文件 im.
  • for x in range(110): t.clear() t.write(s,align='center',font=ft) t.wait() t.bk(5) clock.tick(60) def slow_write(t,string): """ t:角色,string:要显示的字 本函数慢慢的显示字。 """ string = string.split...
  • 前一章节,我们解读了tkinter内嵌Matplotlib的教程,了解其内嵌的原理,就是在tkinter创建matplotlib的画布控件,再利用其返回的画布对象进行绘图,其他附加功能,使用tkinter控件实现。 (一)对matplotlib画布的...

空空如也

空空如也

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

tkinter创建主窗口函数