PyQt5 Python3: Как центрировать текст (QLabel)?
Начнём с того, что я только сегодня вообще узнал, что такое PyQt5, поэтому прошу всё объяснить простым и понятным языком. Спасибо :з
Есть код:
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import QCoreApplication, Qt
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 220)
self.setWindowTitle('Записки')
self.setWindowIcon(QIcon('web.png'))
# Вот ниже находится label, который нужно центрировать.
lbl1 = QLabel('Привет! Что нового?', self)
lbl1.setAlignment(Qt.AlignVCenter) #Попытка не удачная. Ничего не работает
#lbl1.move(0, 0) #если раскоментировать, чуда не произойдёт
btn = QPushButton('Button', self) # Бонусный вопрос: Как центрировать кнопку? :з
btn.setToolTip('This is a <b>QPushButton</b> widget')
btn.clicked.connect(self.test)
btn.resize(btn.sizeHint())
btn.move(3, 15)
self.show()
def test(self):
print('test удался')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Все очень просто. Вам надо изучить Класс QLayout, который является базовым классом менеджеров геометрии. https://doc.qt.io/qt-5/qlayout.html
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import QCoreApplication, Qt
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 220)
self.setWindowTitle('Записки')
self.setWindowIcon(QIcon('web.png'))
# Вот ниже находится label, который нужно центрировать.
lbl1 = QLabel('Привет! Что нового?', self)
lbl1.setAlignment(Qt.AlignCenter) # (Qt.AlignVCenter)
# #lbl1.move(0, 0) #если раскоментировать, чуда не произойдёт
btn = QPushButton('Button', self) # Бонусный вопрос: Как центрировать кнопку? :з
btn.setToolTip('This is a <b>QPushButton</b> widget')
btn.clicked.connect(self.test)
# btn.resize(btn.sizeHint())
# btn.move(3, 15)
layout = QVBoxLayout(self) # +++
layout.addWidget(lbl1) # +++
layout.addWidget(btn) # +++
# self.show()
def test(self):
print('test удался')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
ex.show() # +++
sys.exit(app.exec_())
