gpt4 book ai didi

Python - 增加特定控制台输出的大小

转载 作者:行者123 更新时间:2023-12-05 07:40:16 30 4
gpt4 key购买 nike

正在为学校制定一个项目。完成了要求的部分,现在我只是在做一些有趣的事情。

基本上,您必须编写一个程序,从一副牌中随机抽取一张牌,然后打印出面值和花色。简单 - 我花了大约 5 分钟。

我正在尝试使用 Unicode 字符为作业添加视觉效果。我找到了 these , 并编写了一些代码来选择给定牌和花色的正确 Unicode 字符。唯一的问题是当字符被打印出来时,it's tiny .它在我的屏幕上可能有两毫米高,远没有大到足以看到卡片的正面。

我一直在寻找增加输出大小的方法,但无济于事。我在搜索中找到了这段代码,但它似乎没有做任何事情(顺便说一下,我在 Windows 10 专业版上)。

import ctypes

LF_FACESIZE = 32
STD_OUTPUT_HANDLE = -11

class COORD(ctypes.Structure):
_fields_ = [("X", ctypes.c_short), ("Y", ctypes.c_short)]

class CONSOLE_FONT_INFOEX(ctypes.Structure):
_fields_ = [("cbSize", ctypes.c_ulong),
("nFont", ctypes.c_ulong),
("dwFontSize", COORD),
("FontFamily", ctypes.c_uint),
("FontWeight", ctypes.c_uint),
("FaceName", ctypes.c_wchar * LF_FACESIZE)]

font = CONSOLE_FONT_INFOEX()
font.cbSize = ctypes.sizeof(CONSOLE_FONT_INFOEX)
font.nFont = 12
font.dwFontSize.X = 11
font.dwFontSize.Y = 18
font.FontFamily = 54
font.FontWeight = 400
font.FaceName = "Lucida Console"

handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
ctypes.windll.kernel32.SetCurrentConsoleFontEx(
handle, ctypes.c_long(False), ctypes.pointer(font))

我想知道是否有人对我如何使角色变大有任何见解或想法。我试过使用 Turtle 来绘制字符,但不幸的是它不支持我想使用的字符。

最佳答案

事实证明,这比我想象的要棘手。虽然大多数 Python 图形界面都支持简单的 Spade (BMP) Unicode 字符:

print("\u2660")

获取黑桃六 (SMP) Unicode 字符比较棘手:

print("\N{PLAYING CARD SIX OF SPADES}")
print("\U0001F0A6")
print("\uD83C\uDCA6") # surrogate

I've tried using a Turtle to draw the characters, but unfortunately it doesn't support the characters I want to use.

Tkinter,以及基于它构建的包,如 turtle.pyZelle's graphics.py,取决于安装的 Tk 版本图书馆可以做。在我的系统上,他们可以处理黑桃,但不能处理黑桃六

我在基于 Java 的 Processing 环境的 Python 模式上并没有比这更好的运气,尽管这可能反射(reflect)出我缺乏使用它的经验。

一个环境,我也没有经验,PyQt5,似乎可以应对挑战。这是我对“Hello World!”的修改。显示卡片的程序:

from PyQt5.QtCore import QSize, Qt
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QGridLayout, QWidget
from PyQt5.QtGui import QFont

class MainWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)

self.setMinimumSize(QSize(640, 480))
self.setWindowTitle("Playing Card Six of Spades")

centralWidget = QWidget(self)
self.setCentralWidget(centralWidget)

gridLayout = QGridLayout(centralWidget)
centralWidget.setLayout(gridLayout)

font = QFont()
font.setFamily("Apple Symbols")
font.setPointSize(192)

title = QLabel("\N{PLAYING CARD SIX OF SPADES}", self)
#title = QLabel("\U0001F0A6", self)
#title = QLabel("\uD83C\uDCA6", self)
title.setFont(font)
title.setAlignment(Qt.AlignCenter)

gridLayout.addWidget(title, 0, 0)

if __name__ == "__main__":
import sys

app = QApplication(sys.argv)
mainWin = MainWindow()
mainWin.show()
sys.exit(app.exec_())

enter image description here

部分挑战在于,尽管在 Terminal.app 下运行的 Python 会打印字符:

enter image description here

Terminal.app 使用的字体 (Monaco) 没有卡片的字形,系统切换到 Apple Symbols 字体来显示卡片。这需要一些实验才能弄清楚。

我知道您使用的是基于 Windows 的 Python,因此并非以上所有内容都适用于您的情况,但我的建议是查看 PyQt5

关于Python - 增加特定控制台输出的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46312050/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com