Есть ли способ стилизовать метки QRadioButton? в частности, я хочу переместить метку наверх, отсюда:
к этому:
Последнее было сделано в tkinter.
Есть ли способ стилизовать метки QRadioButton? в частности, я хочу переместить метку наверх, отсюда:
к этому:
Последнее было сделано в tkinter.
вы можете добиться этого, используя QVBoxLayout
и QLabel
в QHBoxLayout
.
from PyQt5.QtWidgets import (
QLabel, QRadioButton, QVBoxLayout, QHBoxLayout,
QApplication, QWidget
)
import sys
class Window(QWidget):
def __init__(self):
QWidget.__init__(self)
self.layout = QHBoxLayout()
self.setLayout(self.layout)
self.vlayout1 = QVBoxLayout()
self.label1 = QLabel("HW")
self.radiobutton1 = QRadioButton()
self.radiobutton1.setChecked(True)
self.radiobutton1.toggled.connect(self.onClicked)
self.vlayout1.addWidget(self.label1)
self.vlayout1.addWidget(self.radiobutton1)
self.layout.addLayout(self.vlayout1)
self.vlayout2 = QVBoxLayout()
self.label2 = QLabel("SW")
self.radiobutton2 = QRadioButton()
self.radiobutton2.toggled.connect(self.onClicked)
self.vlayout2.addWidget(self.label2)
self.vlayout2.addWidget(self.radiobutton2)
self.layout.addLayout(self.vlayout2)
def onClicked(self):
radioButton = self.sender()
if radioButton.isChecked():
print("Radio button clicked")
if __name__ == '__main__':
app = QApplication(sys.argv)
screen = Window()
screen.show()
sys.exit(app.exec_())
addStretch
подтолкнет переключатель к метке. Чтобы центрировать виджеты, выполните layout.addWidget(widget, 0, Qt.AlignHCenter)
. Зазор между меткой и кнопкой можно отрегулировать с помощью layout.setSpacing(num)
.
- person ekhumoro; 21.11.2019
button.setFixedWidth(button.sizeHint().height())
.
- person ekhumoro; 21.11.2019