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

PySimpleGUI,如何让字符串打印在新行上而不是把它切掉?

PySimpleGUI是一个Python的GUI库,它提供了简单易用的界面设计和交互功能。要让字符串打印在新行上而不是被切掉,可以使用PySimpleGUI中的多行文本框(Multiline)来实现。

首先,需要导入PySimpleGUI库:

代码语言:txt
复制
import PySimpleGUI as sg

然后,创建一个包含多行文本框的窗口:

代码语言:txt
复制
layout = [[sg.Multiline(size=(30, 10), key='-OUTPUT-')], [sg.Button('打印')]]
window = sg.Window('字符串打印', layout)

在窗口中,我们创建了一个多行文本框,并设置了其大小为30x10个字符,并为其指定了一个唯一的键'-OUTPUT-'。

接下来,可以使用一个事件循环来监听窗口中的事件,并根据事件类型进行相应的处理:

代码语言:txt
复制
while True:
    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break
    elif event == '打印':
        text = 'Hello, World!\nThis is a new line.'
        window['-OUTPUT-'].print(text, end='')

在事件循环中,我们首先通过window.read()方法获取当前发生的事件和对应的值。如果事件是窗口关闭事件(sg.WINDOW_CLOSED),则退出循环。

如果事件是'打印'按钮被点击,我们可以定义一个字符串(例如'Hello, World!\nThis is a new line.'),然后使用多行文本框的print()方法将字符串打印到文本框中。通过设置end='',可以确保字符串打印在新行上而不是被切掉。

最后,记得在循环结束后关闭窗口:

代码语言:txt
复制
window.close()

这样,当点击'打印'按钮时,字符串将会以新行的形式打印在多行文本框中。

关于PySimpleGUI的更多信息和使用方法,可以参考腾讯云的相关产品介绍页面:PySimpleGUI产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【云+社区年度征文】PySimpleGUI一个建立tkinter之上更简单但功能强大的GUI

需要强调的是:PySimpleGUI不是一个独立的界面工具包,只是提供一种人性化的统一调度接口,Python下,默认调用Tkinter。...,窗口才会关闭,否则程序直接在控制台上打印用户输入的字符串。...普通的Python程序中,一旦进入死循环,程序立刻进入一种死的状态,即不再理会之后的程序而是疯狂地循环中狂奔而无法逃逸,但这里的死循环却可以停在一个语句,岂不是很奇怪吗?...,需要引入控件的一个方法Update,该方法的功能是用字符串来替代原控件字符串,但是应该在哪里来显示这个结果呢?...语句,而且在对话框弹出后,用户依然没有选择文件点击打开按钮时,程序将弹出 SystemExit 告警信息,然后catch 中进行捕获该异常,将其附带的告警字符串打印出来,这种方式使得程序更加健壮,告警信息如图

4.7K12
  • PySimpleGUI | 用Python玩转GUI开发,为什么不能简单一点!

    大家好,之前的文章中我们说过如何制作一个NBA爬虫GUI,其中涉及最重要的部分讲解就是图形用户界面(Graphical User Interface)。 GUI可以说是玩计算机必备的一项技能。...本系列中我们将介绍Python中另外一个GUI库,比较新兴的同时又是可以说是非常非常简便制作的包PySimpleGUI。...基础篇本文将分为以下两个部分讲解: 1、PySimpleGUI介绍 2、PySimpleGUI基本使用 项目主要涉及的Python模块: PySimpleGUI 流程图如下,本次介绍分为两方面进行讲解...主要Qt端口的GUI对图像格式容纳得多,Tkinter端口的功能相对较多。...需要注意的是,按布局需要把对应中的所有部件放到一个列表中,如上“确认”与“取消”按钮放在一个列表中,两个文本部件放到一个列表中,最后形成一个嵌套列表layout。

    6.6K30

    GUI实战|Python做一个文档图片提取软件

    本文将进一步讲解如何用Python提取PDF与Word中图片,并结合之前讲解过的GUI框架PysimpleGUI,做一个多文件图片提取软件,效果如下: ?...Word提取图片方法和通过.zip提取方法类似,PDF提取图片方法要用到的模块。由于Excel提取图片的两种方法之前的文章讲过,故这里只讲解PDF和Word的提取方法。...text) isImage = re.search(checkIM, text) if not isXObject or not isImage: continue 我们通过实验发现图片所对应的字符串...故用正则表达式text中进行索引提取,用到了re模块的search函数。如果不是这两个字符串就用continue剔除。...“size”就是位置,每行的第一个设同样的参数(10,1)。最后就是我们进行事件帮绑定的键,其中“enable_events”可以不写因为我们只是调用它不用去对产生事件。

    1.4K10

    有哪些开源的 Python 库你相见恨晚?

    Arrow 我们知道 Python 已经内置了好几个处理时间相关的库,但是对于时间以及时区间的转换并不清晰,操作起来略繁琐, Arrow 可以弥补这个问题,提供了更友好的方法,方便我们对时间,日期,...在此Repo中,我们展示了如何用 PaddlePaddle来解决常见的机器学习任务,提供若干种不同的易学易用的神经网络模型。...pandas 框架,而这个项目就是继承 pandas 的, 几乎可以做到一代码快速对数据进行可视化分析: 这里一代码就可以直接生成可视化数据: 项目地址: https://github.com...它将 tkinter、Qt、WxPython、Remi 转化为可移植的人性化 Pythonic 接口,搞出来的用户界面可以运行在 Linux、Mac OS、Windows 系统。...回答各种沙雕网站问题: 然后就完事了,随便搞个 md 文件: 保存一波之后,在你当前的目录创建一个 content 文件,你编辑的这个文件塞进去。

    77520

    你不知道的 TypeScript 泛型(万字长文,建议收藏)

    如果你不是特别了解泛型,那么你很可能不仅不会用,不会实现,甚至看不懂这是干什么。...实际我知道我传给你的是 string,返回来的也一定是 string, string 没有 toFixed 方法,因此需要报错才是我想要的。...如何去表达这个「类型约束」的点呢?实现这个需求的关键在于使用类型约束。使用 extends 关键字可以做到这一点。简单来说就是你定义一个类型,然后 T 实现这个接口即可。...❝因此,实际上第一代码的作用就是起了一个别名 ❞ FunctionComponent 实际是就是一个接口泛型,定义了五个属性,其中四个是可选的,并且是静态类属性。...具体实现可以参考Typescript 复杂泛型实践:如何切掉函数参数表的最后一个参数?[3]。在这里,你知道泛型支持嵌套就够了。

    2.4K30

    一个程序员应该怎样学会编写带GUI的程序?

    但是这些类库是如何显示的呢?归根结底,它们都是计算机屏幕显示信息,那么计算机是如何绘制屏幕的呢? 计算机是如何绘制屏幕的? 计算机内存中的内容输出到屏幕,这个操作叫渲染。...我们屏幕看到的动画或视频,是单一的一帧一帧画面重复绘制的结果。每一帧渲染主要分为六步: 顶点着色器(Vertex Shader):顶点着色器主要的目的是 3D 坐标转为另一种 3D 坐标。...几何着色器(Geometry Shader):图元形式的一系列顶点的集合作为输入,通过产生顶点构造出新的图元来生成其他形状。...编程语言如何绘制界面? 屏幕绘制图形和文本的原理是相同的,本质上计算机没有文本,文本也是一个个字符编码对应的字符图像。...它被设计得尽可能小,Android尽可能高效。Filament底层引用了OpenGL。 下面的渲染效果: ?

    3K10

    如何将HTML表格转换成精美的PDF

    作为开发人员,如何 PDF 输出看起来更专业?大多数免费的在线 PDF 导出器实际只是将 HTML 内容转换为 PDF,不进行任何额外的格式化,这会使数据难以阅读。...不过,文档顶部和底部多出的几行文字虽然有用,但并没有看起来很专业。 另外需要注意的是,不同浏览器的原生打印功能是不一样的。如果我们用 Safari 浏览器打印同样的文档呢?...这意味着,我必须为提供 PDF 表格的页眉、页脚、内容和布局的数据,不是为 pdfmake 提供一个对我的 HTML 表格的引用。...表格的列头和表脚每一页都是重复的,表格的行数不会被切掉,而且页面四面都有适当大小的边距,每个页面的页眉也是重复的,每个页面底部的页码也是重复的。...pdfmake 在从数据不是 HTML 中生成 PDF 内容时效果最好。DocRaptor 是其中功能最强大的一款,拥有简单的 API 和漂亮的 PDF 输出。

    6.8K20

    Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制

    然而……当你宽或高设置得比父容器允许的最大宽高还要大的时候呢?我们会发现,控件被“切掉”了。 ? ▲ 被切掉的椭圆 然而,因布局被“切掉”这一特性也是来自于 FrameworkElement!...然而 FrameworkElement 的切掉逻辑就复杂多了,鉴于有上百,就只贴出链接 FrameworkElement.GetLayoutClip。其处理了各种布局、变换过程中的情况。...由于 FrameworkElement 的出现是为了让我们编程中像对待一个有固定尺寸的物体一样,所以也切除模拟了这样的空间有限的效果。...我们 宽度和高度 一节中已经说了不是,前面一段也说了不是——它们真的只是布局属性!然而,这真的很容易形成误解!...如果发现元素布局中被切掉了,这并不是不可避免的问题;因为切掉是 FrameworkElement 为我们引入的特性,不喜欢可以随时关掉。

    64830

    圣诞节,教你用Python给微信头像添加一个圣诞帽!

    圣诞节快到了,每年一到圣诞节就会有很多人的头像多了一顶小红帽 ? ? 那么你有想过如何用Python去实现吗?...因此,本文将手把手教你如何用Python为你的微信头像添加一顶圣诞帽,并结合我们之前讲过PySimpleGUI,做成一个带有GUI的小程序,先看效果: ?...下面我们讲讲的路径 我们准备工作中我们OpenCV的官网下载了人脸识别的插件。...” 如果是后者的话,我们会添加圣诞帽程序中的4个参数原基础加减乘除用户输入的数字,并在图片上方显示最终的4个参数。 最终效果如下 ?...三、打包 最后简单讲一下如何将上面的程序打包为exe格式,没有Python环境的用户也能使用,首先下载pyinstaller模块 pip install pyinstaller 如果你的上述项目代码文件命名为

    93620

    Python 密码破解指南:0~4

    这本书向你展示了完整的程序,并解释了它们是如何工作的,不是教你编程概念,你自己去弄清楚如何制作自己的程序。 一般来说,你应该按章节顺序阅读这本书。在前几章建立编程概念的基础。...圆括号可以不同的运算符先行。表达式(2 + 4) * 3中,首先进行加法计算(2 + 4),然后将总和乘以3。括号使得表达式的计算结果为18不是14。...本例中的指令将一个值传递给圆括号之间的print(),print()函数将该值打印到屏幕。调用函数时传递的值是参数。当你写程序时,你会用print()文本出现在屏幕。...这就是我们如何程序通过名字问候用户。 结束程序 当程序执行最后一时,它就停止了。此时已经终止或者退出,所有的变量都被计算机遗忘,包括存储myName中的字符串。...这些布尔值,或者说bools,是区分大小写的(你总是需要大写T和F,其余的小写)。它们不是字符串值,所以不要用引号将True或False括起来。

    45940

    老板又出难题,气得我写了个自动化软件

    但假如领导要求你将几百个word文档中的图片全部都拷贝出来,你是不是打算离职不干了? 就比如下面这些word文档中的图片,你能否快速的所有图片都拷贝出来呢? ?...如果老朋友们看过这篇文章《老板我从Word中复制出1000张图片?》的话,就应该知道怎么做了。...写个程序,十秒内全部给你转换完毕,并把图片都提取出来,还能批量从真实修改图片格式,不是简单的修改一下扩展名。 (文末附带exe可执行程序) 下面开始展示 ?..., names, f"{i}{names[names.find('.'):]}") i += 1 shutil.rmtree(f"{doc_path}/word") 打印结果...由于PIL仅支持到Python 2.7,加上年久失修,于是一群志愿者PIL的基础创建了兼容的版本,名字叫Pillow,支持最新Python 3.x,又加入了许多特性,因此,我们可以直接安装使用Pillow

    58020

    笨办法学 Python3 第五版(预览)(一)

    如果你做不到,跳过,稍后再回来。 对于这个练习,请尝试这些事情: 你的脚本打印另一你的脚本只打印的开头放一个#(井号)字符。它有什么作用?...该代码中的#一个字符串内,因此它会一直被放入字符串,直到结束的"字符出现。字符串中的井号字符只被视为字符,不是注释。 如何注释掉多行? 每一前面加上#。...实际不是一个变量:只是一个包含单词snow的字符串。一个变量不会在单引号中。 像你练习 1 中说的那样,为每一代码写一个英文注释是正常的吗?...你必须像这样输入"""不是" " ", 意思是每个之间都没有空格。 如果我想要在的一开始月份怎么办?...再次强调,你必须在命令行正确运行不是 Python 内部。

    23010

    【Python】13 个适合『中级开发者』练手的项目

    可以给出有效和无效的判别,例如“查询字符串有效”和“查询字符串无效”,以绿色显示有效,以红色显示无效。 不必从头开始构造查询工具。...用户能够设置每周的某些日子、特定时间响铃。例如,可以每个星期一下午 2:00 设置闹铃。 还可以添加暂停功能,以便用户可以暂停闹钟不是解除闹钟。...可以使用 PySimpleGUI 库创建具有一个功能强大的由小部件组成的用户界面,该界面也无需处理大量复杂工作。 用户应该能够完成一些简单的任务,如创建目录或空文本文件。...应用程序的逻辑中,你可以决定如何表示文件或目录。使用不同的颜色是一个很好的方法。你可以使用 colored 库以不同颜色打印文件和目录。 还应该可以设定目录树生成器的深度。...如果你愿意,还可以用户自主决定目录树生成器的深度。 2、额外挑战 由于生成的目录树结果将出现在命令行,因此可以更进一步,生成器创建目录树的图像,即实现文本转图像的操作。

    1.3K20

    从 Java 12 到 Java 17 那些激动人心的特性

    如果你使用 Java 8 或 Java 11,可能不会注意到 Java 12 之后新增的一些很酷的特性。 因为这是一个很重要的版本,我会突出介绍一些我个人很感兴趣的特性!...或者你其实是想 Color 保持私有?但即使是这样,包级别的可见性也不能避免所有问题。如果后来有人对这个库进行了扩展了该怎么办?他们如何能够知道你只打算一小部分类集成 Color?...否则,record 类将不知道如何处理的值。...第二,o 是 Car 的实例,这是毫无疑问的,instanceof 已经确认了这一点。...但是,即使你没有迁移计划,或者某个升级计划可能持续数年之久,跟上语言特性的变化总归是件好事。我希望我分享的这些内容能够它们更加深入人心,阅读过这些内容的人都可以开始考虑如何使用它们!

    63830

    给中级Python开发者的13个练手项目,适合你不?

    技术细节 这类项目的主要目的是判别用户输入的查询字符串的有效性。可以给出有效和无效的判别,例如「查询字符串有效」和「查询字符串无效」,以绿色显示有效,以红色显示无效。 不必从头开始构造查询工具。...用户能够设置每周的某些日子、特定时间响铃。例如,可以每个星期一下午 2:00 设置闹铃。 还可以添加暂停功能,以便用户可以暂停闹钟不是解除闹钟。 文件管理器 1....可以使用 PySimpleGUI 库创建具有一个功能强大的由小部件组成的用户界面,该界面也无需处理大量复杂工作。 用户应该能够完成一些简单的任务,如创建目录或空文本文件。...应用程序的逻辑中,你可以决定如何表示文件或目录。使用不同的颜色是一个很好的方法。你可以使用 colored 库以不同颜色打印文件和目录。 还应该可以设定目录树生成器的深度。...如果你愿意,还可以用户自主决定目录树生成器的深度。 2. 额外挑战 由于生成的目录树结果将出现在命令行,因此可以更进一步,生成器创建目录树的图像,即实现文本转图像的操作。

    1.2K40

    13 个适合『中级开发者』练手的项目

    2、正则表达式查询工具 1、技术细节 这类项目的主要目的是判别用户输入的查询字符串的有效性。可以给出有效和无效的判别,例如“查询字符串有效”和“查询字符串无效”,以绿色显示有效,以红色显示无效。...用户能够设置每周的某些日子、特定时间响铃。例如,可以每个星期一下午 2:00 设置闹铃。 还可以添加暂停功能,以便用户可以暂停闹钟不是解除闹钟。...可以使用 PySimpleGUI 库创建具有一个功能强大的由小部件组成的用户界面,该界面也无需处理大量复杂工作。 用户应该能够完成一些简单的任务,如创建目录或空文本文件。...应用程序的逻辑中,你可以决定如何表示文件或目录。使用不同的颜色是一个很好的方法。你可以使用 colored 库以不同颜色打印文件和目录。 还应该可以设定目录树生成器的深度。...如果你愿意,还可以用户自主决定目录树生成器的深度。 2、额外挑战 由于生成的目录树结果将出现在命令行,因此可以更进一步,生成器创建目录树的图像,即实现文本转图像的操作。

    1.6K40

    笨办法学 Java(一)

    学习如何从终端窗口(PowerShell)创建一个文件夹(创建一个目录)。创建一个目录,这样你就可以这本书中的所有代码放进去。 学习如何从提示符中切换到这个目录。切换到。...学习如何从终端创建一个文件夹(创建一个目录)。创建一个目录,这样你就可以这本书中的所有代码放进去。 学习如何从提示符中切换到这个目录。切换到。...但println()完成打印后会移到的一print()不会:它会显示然后将光标留在行的末尾,以便下一个打印语句从同一位置开始。...无论如何第 21 ,我做了一件的事情。到目前为止,你只引号内打印了一个东西。但是完全可以打印多个东西,只要在打印之前将这些东西组合起来。...学习演练 原始的代码文件(CollegeAdmission.java)中,除了最后一个之外,删除所有的else。 最后一个。运行并注意如何打印所有的消息。然后else放回去。

    33410
    领券