首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Tkinter打开两个窗口而不是1个,如果我引用根窗口,就会崩溃

Tkinter是Python的一个GUI库,用于创建图形用户界面。它提供了一组用于创建窗口、按钮、文本框等GUI组件的工具和方法。

要打开两个窗口而不是一个,可以使用Tkinter的Toplevel类来创建额外的窗口。Toplevel类是Tkinter中的一个子类,它表示一个独立的顶级窗口。

以下是一个示例代码,展示如何使用Tkinter打开两个窗口:

代码语言:txt
复制
import tkinter as tk

def open_window():
    # 创建第二个窗口
    second_window = tk.Toplevel(root)
    second_window.title("第二个窗口")
    # 添加组件到第二个窗口
    label = tk.Label(second_window, text="这是第二个窗口")
    label.pack()

# 创建根窗口
root = tk.Tk()
root.title("第一个窗口")

# 添加按钮到根窗口
button = tk.Button(root, text="打开第二个窗口", command=open_window)
button.pack()

# 运行主循环
root.mainloop()

在上面的代码中,我们首先创建了一个根窗口(第一个窗口),然后定义了一个open_window函数,用于创建第二个窗口。当点击按钮时,会调用open_window函数,从而打开第二个窗口。

第二个窗口使用Toplevel类创建,并添加了一个标签组件。你可以根据需要在第二个窗口中添加其他的GUI组件。

这个例子中使用的是Tkinter库,如果你想了解更多关于Tkinter的信息,可以参考腾讯云的相关产品和文档:

  • 腾讯云产品:云服务器(CVM)
  • 产品介绍链接地址:https://cloud.tencent.com/product/cvm
  • 文档链接地址:https://cloud.tencent.com/document/product/213
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

教你用 Python 玩 GUI 猜数字游戏 。

就像我们开车一样 ,首先要打开门 ,程序也一样要用到的库都需要提前安装 pip install Tkinter 同志们 ,接下来开车了 ,我们应该如何去创建一个 GUI 程序呢 ?...from tkinter import * root = Tk() root.mainloop() 意不意外,惊不惊喜,这么短短的三句代码,就能出现一个界面,是不是很刺激。 ?...['width'] = 450 root['cursor'] = 'coffee_mug' root.title('的第一个窗口程序') root.resizable(False,False) root.mainloop...def btnCloseClick(event): root.destory() 是不是很简单呢 ,就两行代码 ,就可以关闭窗口了 ,我们拭目以待吧 。...总结 妈妈终于不用担心玩游戏了 导入使用的GUI模块 Tkinter 创建GUI的主要应用程序入口 添加控件并设置相应的属性 编写触发事件响应代码 如果感兴趣 ,可以试试手写二分查找法噢

1.4K10

零基础学Python【二十三、图形化界面设计 】(基础一篇全,欢迎认领)

下面是窗体呈现示例: import tkinter #声明窗体 root=tkinter.Tk() #编辑窗体提示文字 root.title("的第一个程序") #设置窗体大小·注意,不是乘号*而是小写的...#声明窗体 root=tkinter.Tk() #编辑窗体提示文字 root.title("的第一个程序") #设置窗体大小·注意,不是乘号*而是小写的x #如果想设置显示位置的写法是:root.geometry...值得注意的是:属性text通常用于实例在第一次呈现时的固定文本,如果需要在程序执行后发生变化,则可以使用下列方法之一实现:1、用控件实例的configure()方法来改变属性text的值,可使显示的文本发生变化...如果使用该控件,应先与from tkinter import ttk 语句引用ttk子模块,然后创建组合框实例: 实例名=Combobox(对象,[属性列表]) 指定变量var=StringVar(...看下面的一个例子:实现四则运算计算器,将两个操作数分别填入两个文本框后,通过选择组合框中的算法触发运算,如下: from tkinter.ttk import * from tkinter import

13.8K30

Python进阶-GUI窗口

获得 tkinter 的访问权是首要步骤。 ? ① 窗口和控件 在 GUI 编程中,顶层的窗口对象包含组成 GUI 应用的所有小窗口对象。它们可能是文字标签、按钮、列表框等。...>>> import tkinter >>> top = tkinter.Tk() tkinter.Tk() 返回的对象通常称为窗口,这也是一些应用使用 root 不是 top 来指代它的原因。...顶层窗口是那些在应用中独立显示的部分。GUI 程序中可以有多个顶层窗口,但是其中只能有一个是窗口。 控件可以独立存在,也可以作为容器存在。如果一个控件包含其他控件,就可以将其认为是那些控件的父控件。...相应地,如果一个控件被其它控件包含,则将其认为是那个控件的子控件,父控件就是下一个直接包围它的容器控件。 通常,控件有一些相关的行为,比如按下按钮、将文本写入文本框等。...这些用户行为称为事件, GUI 对这类事件的响应称为 回调。

1.4K50

tkinter系列 第十课 TopLevel窗口部件 】

前言 python中通常我们写程序,显示结果和操作都是在终端区,如果要想实现一个有显示界面的程序那该怎样实现呢?...解释: 这里可能对于出现两个窗口会有疑问,其实是因为TopLevel虽然也是顶级窗口,但是它是不能独立存在的,默认会创建一个窗口(自己实验猜测)。...下面的代码和上面是一样的效果,建议还是用下面的代码,显示创建一个窗口更好。...if answer: # 如果点击确定,会返回一个True的值,否则False root.destroy()# 销毁主窗口 # 如果直接点击右上角关闭按钮,会直接关闭,通过这个方法,可以直接绑定...总结: 1.withdraw() 隐藏窗口,iconify()也是隐藏窗口,但是其实是最小化,任务栏还是可以点击打开的,withdraw()是会消失的。

3.4K20

Python 图形化界面基础篇:创建你的第一个 Tkinter 窗口

使用以下代码设置窗口标题 # 设置窗口标题 root.title("的第一个Tkinter窗口") 这行代码将窗口的标题设置为“的第一个 Tkinter 窗口”。...你可以使用以下代码启动主事件循环: # 启动主事件循环 root.mainloop() 这行代码告诉 Tkinter 开始监听用户的交互事件,并保持窗口打开状态,直到用户关闭窗口。...模块,并将其重命名为 tk ,以便我们可以使用更短的名称来引用它。...我们使用 root.title() 设置了窗口的标题为“的第一个 Tkinter 窗口”。...最后,我们使用 root.mainloop() 启动了 Tkinter 的主事件循环,使窗口保持打开状态。 结论 恭喜你,你已经成功创建了你的第一个 Tkinter 窗口

1.6K30

过分了,别人用来做桌面应用开发,这家伙却用来撩妹(2)-上帝给你开了各种撩妹窗口Tkinter

第三步:实现启动多个窗口 好了,经过前面的学习,我们已经掌握了一个弹窗的生成诀窍,然后我们来学习打开多个弹窗。 可能有的小伙伴就会说了,一个都解决了,多个那我们直接循环一下。...如果按照上面的运行,你就会发现,当你关闭一个之后,又有一个弹框弹出来,直到循环结束,就问你慌不慌,庆幸你只写了两个。 这时候,就需要用到多线程了。...本来要你一个人做一天的,现在两个人只需要半天。...,那我们继续来弹窗,说明需求: 需要弹出多个窗口 每隔多长时间就会自动弹出一个 关闭一个弹窗之后,依然不影响继续弹窗。...注:千万不要把这个发给不太懂电脑的人,不然他可能会因为无法阻止窗口的弹窗,重启电脑 第五步:随机的窗口 我们继续来看随机弹窗,先来说明需求: 需要弹出很多的弹窗 需要在不同位置上弹出窗口 在上面,我们已经看出来了

1.2K30

Python的GUI编程和tkinter,Wxpython

当然这两个库在本质上都属于PythonGul。...tkinter 窗体root: 窗体是图像化应用程序的控制器,是tkinter的底层控件的实例。...#代码实现: from tkinter import * root= Tk() root.title('的第一个Python窗体') root.geometry('240x240') # 这里的乘号不是...值得注意的是:属性text通常用于实例在第一次呈现时的固定文本,如果需要在程序执行后发生变化,则可以使用下列方法之一实现: 1、用控件实例的configure()方法来改变属性text的值,可使显示的文本发生变化...,width=200) root.mainloop() Wxpython Wxpython这个是最后采用的gui库,倒不是因为有多大去别,主要是找到了一个自动生成Wxpython的代码段的小程序,

17010

tkinter)撩妹弹窗(3)之不要越过三八线,canvas的使用方法

Tkinter) 二、目录 (tkinter)撩妹弹窗(3)之不要越过三八线,canvas的使用方法 一、系列章节列表 二、目录 三、前言 四、正文 第一步:有一个窗口 第二步:弹窗之同桌叫我不要越过...是不是有小时的回忆。哈哈。今天,我们来聊一聊,越过三八线的改变。 第一步:有一个窗口 首先,我们先来实现一个窗口。 ?...这个方法是使用设置窗口的方式,并更新窗口位置,不过有应该缺点,当边框超过中线之后,界面就会因为窗口改变事件,不断循环卡死,大家有什么好的方法,欢迎在评论区讨论。...这里有两个变化,突变和渐变 突变:突然改变,达到超过某一条线之后,突然变为另外一个。 渐变:逐渐改变,到达某一条线时,中间会显示这条分界线,逐渐变为另外一个。...canvas.create_text(x, y, text='你发现了',font=3) 这里的坐标是以窗口的坐标,不是屏幕的坐标,所以我们还需要进行一次转换。

1.6K30

过分了,别人用来做桌面应用开发,这家伙却用来撩妹(4)--运动的火柴人

“ 过分了,别人用来做桌面应用开发,这家伙却用来撩妹(4)--运动的火柴人” 算是知道了,这个tkinter是真的好玩,还非常有趣,希望大家都可以去了解一下。 ?...你可以这样理解,假如把你的每一个动作分解开来,都做成为一张照片,那我们就会得到很多张连续的照片。反过来,我们把所有连贯的照片依次展示出来,是不是就是你的一个完整动作。 ?...1、有一组连贯的火柴人图片。 2、把这些图片组合在一起,形成一个会动的火柴人 3、移动窗口,火柴人就会运动,停止窗口,火柴人就会停止。 材料图片 顺序为,当然,你也可以用其他图片代替哦。...import tkinter from tkinter import * tk=tkinter.Tk() def window(): tk.title("窗口") # 设置窗口名称...思路:当窗口移动,窗口改变事件启动,如果a等于9的时候,就重新计算a的值,并创建图片,如果不创建图片,可能就是空白的哦,其他情况就先取列表数据,创建图片,然后再将a加一,下一次就会取第二张图片,依次反复

1.1K30

目录

如果中没有文本Entry,则无论第一个参数传递什么值,新文本将始终插入小部件的开头。例如,像上面所做的那样,.insert()使用100作为第一个参数不是进行调用0,将生成相同的输出。..."格式.get()与指定插入位置所用的格式相同: 如果你"World"在第二行中插入单词,请注意会发生什么情况: text_box.insert("2.0", "World") 不是在第二行插入文本...你必须提供两个关键字参数x和y,它们为小部件的左上角指定x和y坐标。二者x并y以像素,不是文本为单位测量。 请记住,原点(x和y均为0)是Frame或窗口的左上角。...但是,如果你尝试向任何方向扩展窗口,那么你会注意到布局的响应速度不是很好: 窗口扩展时,整个网格都位于左上角。...将排列三个小部件,以使两个按钮位于窗口的左侧,文本框位于右侧。

29.6K20

Python Tkinter之初体验

作为 python 特定的GUI界面,是一个图像的窗口tkinter是python 自带的,可以编辑的GUI界面, 们可以用GUI 实现很多直观的功能,比如想开发一个计算器,如果只是一个键盘输入,输出的黑色窗...,它并不具备这方面的优势, 使用Python,可以把它作为一个灵活的工具,不是作为主要开发语言,那么在工作中,需要制作一个 小工具,肯定是需要有界面的,不仅自己用,也能分享别人使用,在这种需求下,Tkinter...# Label组件可以显示文本、图标或者图片 # 在这里我们让它显示指定文本 theLabel = tk.Label(root, text="的第一个tkinter窗口!")...loop因为是循环的意思,root.mainloop就会让root不断的刷新,如果没有mainloop,就是一个静态的root,传入进去的值就不会有循环,mainloop就相当于一个很大的while循环...,有个while,每点击一次就会更新一次,所以我们必须要有循环。

1.6K20

Tkinter教程(每天半小时,3天彻底掌握Tkinter)day2

咱们把布局稍微处理一下 from tkinter import * from tkinter.ttk import Separator # 主窗口 win = Tk() win.config(bg='...,后面两个参数是窗口的位置 win.geometry( "%dx%d+%d+%d" % (dialog_width, dialog_height, (screenwidth - dialog_width...Entry 文本框输入框 用于接收单行文本输入 Frame 框架(容器)控件 定义一个窗体(窗口也是一个窗体),用于承载其他控件,即作为其他控件的容器 Lable 标签控件 用于显示单行文本或者图片...Tkinter Label标签控件 其实Lable的属性还是挺多的,就拿方向来说。上n下s左w右e,还有一个center,如果是四个角,那就根据是个方向的字母拼一下。...,后面两个参数是窗口的位置 win.geometry( "%dx%d+%d+%d" % (dialog_width, dialog_height, (screenwidth - dialog_width

3.9K20

测试之路 pytest接口自动化框架扩展-GUI窗口

综合了解了一下这两个工具包 个人理解,pyqt5与tkinter的区别在于,pyqt5更完善,更全面,就好比django一样。有成熟的依赖,也有很好看的样式,还有第三方工具支持生成代码。...tkinter就相当于flask框架。比较简陋,也比较易上手。当前的需求就是简单实现一个窗口录入文件,然后调用脚本执行方法即可。最后把结果显示在一个对话框中。...所以我就选择了tkiner 于是从网上搜索相关tkinter的相关教程。总结一下所学习到方法以及用法。如果各位大佬感兴趣,也可以继续深挖这个GUI图形界面。还是挺好玩的。...tkinter还有两个布局函数--grid和place。 # Label标签组件。...title为窗口标题 initialdir:默认打开的路径 filetypes:限制打开窗口的可选的文件类型 """ self.file_name =

2.8K30

tkinter系列 第五课 Checkbutton窗口部件 】

本节课将要学习Checkbutton窗口部件,Checkbutton又叫复选框,那什么时候该用复选框呢?通常是在两个不同值之间选中或者不选中,一组按钮就可以实现很多值的一个选择。...代码: from tkinter import * #创建一个主窗口 root = Tk() # 创建 宽400高250的窗口 x是小写的英文字符 root.geometry('400x250') #...解释: 复选框从一个状态变化到另外一个状态就会触发命令,启动程序是没有选中的,这是用鼠标点击选中,在终端区就会打印出1,再点击取消选中就会打印0。...如果要实现选中是10,没选中是1该怎样做呢? 非常简单,添加两个参数就可以了。...2.多个复选框 代码: from tkinter import * import tkinter.messagebox #创建一个主窗口 root = Tk() # 创建 宽400高250的窗口 x是小写的英文字符

1.5K30

Python Tkinter实战——自制文本编辑器

本篇为视频课程 tkinter从入门到实战视频 章节文档,请结合教程学习 4.1 自制编辑器 [编辑器预览] 项目实战要点 在之前章节中已经学习了tkinter的大量知识,但仍然有部分知识是没有覆盖到的...,换句话说,本教程并不是一本事无巨细的帮助文档,未提到的知识,将在项目实战中列出,根据具体使用场景来学习。...xxx.py', 'rb') as file: print(chardet.detect(file.read(1024))) 搜索框定位 搜索框应当根据当前编辑器的相对位置来显示 # 获取窗口的绝对位置...,依据窗口的位置计算搜索框的显示位置 print(self.winfo_rootx(), self.winfo_rooty()) 使用自定义的选项卡控件重构编辑器 我们之前已经自定义了一个选项卡控件...完整项目源码 关注的公众号:编程之路从0到1 [编程之路从0到1]

2.1K30

Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解

,所有控件都需要附着在界面上,如果程序中没有指定控件附着的窗口,将默认附着到主窗口Tk中,如果程序中没有定义Tk,那么将自动创建一个 常见属性【想要初始化主窗口的属性需要使用 主窗口对象.属性(“参数”...) : title:窗口标题 geometry:窗口大小,大写格式是”宽度x高度+x位置+y位置”【注意不是*是x】,其中x,y将左上角作为(0,0) from tkinter import * root...import * root=Tk() root.title('窗口') root.geometry('500x500') t1=Toplevel(root) t1.title("Top窗口")...参数设置:可用参数参考上面Menu的,用法同样可以参考按钮Button的 添加菜单的方法参考Menu的 注意:这次不是在root里面config了,而是在菜单按钮中设置 from tkinter import...参数设置:可用参数参考下面的,用法同样可以参考按钮Button的 variable:值为tkinter变量,可以使用 tkinter变量.get方法 来获取是否选中 如果想要获取选中值,必须设置一个tkinter

9.5K10

python笔记:可视化界面写作尝试

引言 故事的起因在于和一个朋友的聊天,他拜托帮他看看一个系统的操作界面代码,然后就想啊,能不能干脆自己来写一个简单的操作界面呢? 工欲善其事,必先利其器。...,这里就请容直接跳过了。...组件的部署 如前,我们事实上已经初步看到了界面中组件的使用方法,它基本包含两个步骤: 定义组件; 将组件安放到可视化界面窗口当中; 而要将组件加载到界面当中,我们只需要使用使用pack()方法即可。...所有的变量都包含下述两个方法: set():设置变量的值; get():获取变量的值; 下面,我们给出tkinter的变量类型如下: StringVar:default="" IntVar:default...消息窗口组件 1. tk.messagebox 如果想要通过一个额外弹出框来进行消息提醒的话,tkinter提供的组件支持为tk.messagebox,他是一系列窗口函数的集合。

4.5K30

过分了,别人用来做桌面应用开发,这家伙却用来撩妹(1)–上帝给你开一个窗口Tkinter

为了让初学者也非常清楚的知道的构思,都会以一种通俗易懂的方式来为大家呈现出来。在此,感谢的大家的阅读。 我们这个系列,着重以系统库中的tkinter为中心来围绕进行编写。...正文步骤实现 上帝给你开一个窗口Tkinter) 第一步:导入模块,无需安装 import tkinter 第二步:实现一个窗口 import tkinter tk=tkinter.Tk() tk.mainloop...第七步:设置窗口背景颜色 tk["background"] ="#7AC5CD"# 采用16色,或者"blue",颜色名称 这里,为大家准备一个网站,供大家选择颜色。...tk.attributes("-toolwindow", True)#有退出,可以移动 工具样式:True 只有退出按钮,也没有图标; False 正常的窗体样式 如果要将退出按钮都隐藏呢?...grid中参数,依然可以把他看做是x,y,当两个标签中间没有数据时,就会自然缩进。 如图2,其中没有2,所以就会自动将2省去。 如图三中,坐标就是确定这些小方格。

1.6K60
领券