Как выровнять текст кнопки по вертикали?
Недавно начал изучать PyQt и Qt Designer в частности, но столкнулся с проблемой.
Я хочу создать кнопку со знаком + по середине.
Для этого я создал QPushButton и добавил на нее текст +.
Как понятно из картинки ниже, текст смещен к низу кнопки.
Как можно его расположить в середине?
Что я пробовал:
vertical-align: center; - эффекта нет
text-align: center; - выравнивает, но только по горизонтали
margin: 10px; - желаемого результата тоже не дает (см картинку ниже)
Я понимаю, что могу решить свою задачу через добавление иконки, но хочу понять, есть ли способ сделать это через текст самой кнопки.
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Это не просто, если вы сильно изменяете размеры font.
Расположение текста основано на шрифте "bounding rectangle". В Qt Designer вы такого не сделаете.
Вот вам простой вариант:
import sys
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
layout = QHBoxLayout(self)
layout.addWidget(QPushButton(
objectName="BlueButton",
clicked=lambda: print('Hello'))
)
StyleSheet = '''
QPushButton {
border-image: url(plus.png);
}
#BlueButton {
background-color: #2196f3;
min-width: 100px;
max-width: 100px;
min-height: 100px;
max-height: 100px;
border-radius: 50px;
}
#BlueButton:hover {
background-color: #64b5f6;
}
#BlueButton:pressed {
background-color: #bbdefb;
}
'''
if __name__ == "__main__":
app = QApplication(sys.argv)
app.setStyleSheet(StyleSheet)
w = Window()
w.show()
sys.exit(app.exec_())
plus.png



