是否可以在同一字符串上有两种字体大小(用于标签或按钮)?



我在maya中使用pyside2(基本上pyQt5)创建一个ui,我有一个按钮,我想有2个单独的字体大小的文本,如果可能的话....

我知道我可以这样调整字体:

import PySide2.QtGui as QtGui
import PySide2.QtWidgets as QtWidgets
value_font = QtGui.QFont('Arial', 18)
value_font.setBold(True)
update_button = QtWidgets.QPushButton('10n(auto)')
update_button.setFixedSize(75, 75)
update_button.setFont(value_font)

但是我想让'10'有一个较大的字体大小和'(auto)'有一个较小的字体大小,如果可能的话(而不是两者都是相同的大小)。我只是不知道该怎么做……任何帮助将不胜感激!

一个技巧是在QPushButton的顶部放置一个QLabel,并放置HTML来设置不同的字体。

from PySide2.QtCore import Qt
from PySide2.QtWidgets import QApplication, QLabel, QPushButton, QVBoxLayout

def main():
app = QApplication()
# app.setStyle("fusion")
button = QPushButton()
lay = QVBoxLayout(button)
# lay.setContentsMargins(0, 0, 0, 0)
label = QLabel(
"""<div style="font-size:75px">10</div><div style="font-size:18px">(auto)</div>""",
alignment=Qt.AlignCenter,
)
label.setAttribute(Qt.WA_TransparentForMouseEvents, True)
lay.addWidget(label)
button.clicked.connect(lambda: print("clicked"))
button.show()
app.exec_()

if __name__ == "__main__":
main()

相关内容

  • 没有找到相关文章