Как убрать отступы от текста в PyQt5?
Помогите пожалуйста, я создаю текст через QLabel, а он создает огромные рамки, я подсветил их ярко-зелёным цветом:
Как это решить? Код из двух файлов, 1-ый(запускать его):
from PyQt5.QtWidgets import QApplication
from 'Имя второго файла' import QuizzWindow
app = QApplication([])
quizz_window = QuizzWindow()
quizz_window.resize(480,320)
quizz_window.show()
app.exec()
2-ой:
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import (
QWidget, QPushButton, QHBoxLayout, QVBoxLayout, QGroupBox,
QRadioButton, QSpinBox, QLabel
)
class QuizzWindow(QWidget):
def __init__(self):
super().__init__()
self.UI()
def UI(self):
btn_menu = QPushButton("Меню")
wat = QPushButton("Отдохнуть")
mins = QSpinBox()
mintext = QLabel("Минут")
mintext.setStyleSheet("background-color: lightgreen")
#mintext.resize(50, 50)
question = QLabel("2+2=")
RadioButtons = QGroupBox("Варианты ответов")
rbtn1 = QRadioButton('1')
rbtn2 = QRadioButton('2')
rbtn3 = QRadioButton('3')
rbtn4 = QRadioButton('4')
rbtn_main_line = QVBoxLayout()
rbtn_top_horizontal = QHBoxLayout()
rbtn_down_horizontal = QHBoxLayout()
rbtn_main_line.addLayout(rbtn_top_horizontal)
rbtn_main_line.addLayout(rbtn_down_horizontal)
rbtn_top_horizontal.addWidget(rbtn1)
rbtn_top_horizontal.addWidget(rbtn2)
rbtn_down_horizontal.addWidget(rbtn3)
rbtn_down_horizontal.addWidget(rbtn4)
RadioButtons.setLayout(rbtn_main_line)
main_lin = QVBoxLayout()
uphline = QHBoxLayout()
downupline = QHBoxLayout()
horizontal_line = QHBoxLayout()
main_lin.addLayout(uphline)
uphline.addWidget(btn_menu, alignment=Qt.AlignmentFlag.AlignLeft)
uphline.addWidget(wat, alignment=Qt.AlignmentFlag.AlignRight, stretch=2)
uphline.addWidget(mins, alignment=Qt.AlignmentFlag.AlignRight)
uphline.addWidget(mintext, alignment=Qt.AlignmentFlag.AlignRight)
#main_lin.addLayout(downupline)
#downupline.addWidget(question, alignment=Qt.AlignmentFlag.AlignCenter)
main_lin.addWidget(RadioButtons)
main_lin.addLayout(horizontal_line)
self.setLayout(main_lin)
self.show()
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Я увидел вашу задачу так:
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import (
QWidget, QPushButton, QHBoxLayout, QVBoxLayout, QGroupBox,
QRadioButton, QSpinBox, QLabel, QApplication, QFrame,
QGridLayout, QButtonGroup
)
#from 'Имя второго файла' import QuizzWindow
class QuizzWindow(QWidget):
def __init__(self):
super().__init__()
self.UI()
def UI(self):
self.frame_top = QFrame()
btn_menu = QPushButton("Меню")
wat = QPushButton("Отдохнуть")
mins = QSpinBox()
mintext = QLabel("Минут")
mintext.setStyleSheet("background-color: lightgreen")
layout_frame_top = QHBoxLayout(self.frame_top)
layout_frame_top.addWidget(btn_menu)
layout_frame_top.addStretch(1)
layout_frame_top.addWidget(wat)
layout_frame_top.addWidget(mins)
layout_frame_top.addWidget(mintext)
self.question = QLabel("2 + 2 = ?", alignment=Qt.AlignmentFlag.AlignCenter)
self.question.setStyleSheet("background-color: lightgreen; font-size: 17px;")
downupline = QHBoxLayout()
downupline.addWidget(self.question)
self.groupBox = QGroupBox("Варианты ответов")
layout_bottom = QGridLayout(self.groupBox)
rbtn1 = QRadioButton('1')
rbtn2 = QRadioButton('2')
rbtn3 = QRadioButton('3')
rbtn4 = QRadioButton('4')
layout_bottom.addWidget(rbtn1, 1, 1)
layout_bottom.addWidget(rbtn2, 1, 2)
layout_bottom.addWidget(rbtn3, 2, 1)
layout_bottom.addWidget(rbtn4, 2, 2)
layout_bottom.setColumnStretch(0, 1)
layout_bottom.setColumnStretch(1, 1)
layout_bottom.setColumnStretch(2, 1)
layout_bottom.setColumnStretch(3, 1)
# это вам бонусом
button_group = QButtonGroup(self)
button_group.buttonClicked.connect(lambda rb: print(f'rb={rb.text()}'))
button_group.addButton(rbtn1)
button_group.addButton(rbtn2)
button_group.addButton(rbtn3)
button_group.addButton(rbtn4)
main_layout = QVBoxLayout(self)
main_layout.addWidget(self.frame_top,
stretch=0, alignment=Qt.AlignmentFlag.AlignTop)
main_layout.addWidget(self.question, stretch=1)
main_layout.addWidget(self.groupBox)
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
quizz_window = QuizzWindow()
quizz_window.setWindowTitle("Example")
quizz_window.resize(480, 320)
quizz_window.show()
sys.exit(app.exec())

