我一直在google上搜索StackOverflow,但是没有运气。。。
我想为我正在开发的一个艺术项目在屏幕上显示文本(不是控制台)。字符串将以全屏显示——无需菜单栏的边到边“窗口”等。字符串将快速更新(想象一个随机字母字符串显示和重新绘制的速度将尽可能快)。字体和颜色的选择(一个字母一个字母的基础上)将是巨大的奖金。
字符串将在屏幕上居中(不滚动)。
我是编程新手。在屏幕上显示文本似乎比我想象的要复杂得多。:)
我遇到过使用pygame的解决方案,但是示例代码不起作用。下面是一个典型的例子:
https://www.daniweb.com/programming/software-development/code/244474/pygame-text-python
我在Mac电脑上看到的是一个窗口,没有文本,代码无限期地继续运行。我遇到的其他代码和其他库的类似经验。
pygame是我的最佳选择(易于用Python编程、高速)还是有其他更适合我所追求的库?
如果pygame是正确的方向,有人能推荐一些示例代码来帮助我吗?
谢谢
——达林
使用Tkinter可以很容易地完成这类工作,Tkinter包含在大多数现代Python安装中。例如
用鼠标左键单击退出。
这只是概念的证明。要逐个字母地控制颜色和/或字体,您需要做一些更复杂的事情。可以使用一行标签小部件(每个字母一个),也可以使用文本小部件。
但是,如果在Mac上尝试此操作,则窗口可能无法接收焦点,如here所述。答案here显示了获得全屏窗口的另一种方法,但我怀疑它可能也有同样的缺陷。
这种方法的一个优点是不需要
root.geometry
调用。这是一个pygame解决方案。只需将随机的字母和颜色传递给Font.render,然后blit返回的曲面。为了使它居中,我调用
txt
曲面的get_rect
方法,并将screen_rect
的中心作为center
参数传递。请注意,不能为每个字母选择不同的颜色。要做到这一点,你可能需要渲染几个“一个字母”的表面,然后组合它们。癫痫警告-文本变化非常快(每帧30帧),我不确定这是否会导致癫痫发作,所以我添加了一个计时器,每10帧更新一次文本。如果要提高更新速度,请小心。
相关问题 更多 >
编程相关推荐