是否可以在同一个字符串上使用两种字体大小(对于标签或按钮)?
is it possible to have two font sizes on the same string (for a label or button)?
我正在使用 pyside2(基本上是 pyQt5)在 maya 中创建一个 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('10\n(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()
我正在使用 pyside2(基本上是 pyQt5)在 maya 中创建一个 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('10\n(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()