I will import given code for my main QMainWindow
.(I only add import sys etc. to run it)
Is there a more compact way to code this lines.
Output is correct for my expectation.
from PyQt5.QtWidgets import *
import sys
class ButtonWidget(QWidget):
def __init__(self):
super(ButtonWidget, self).__init__()
# Function
button1 = QRadioButton("Sinus")
button2 = QRadioButton("Cosines")
# Color
button3 = QRadioButton("Red")
button4 = QRadioButton("Green")
# Line
button5 = QRadioButton("Solid")
button6 = QRadioButton("Dashed")
# Left Group
left_group = QGroupBox("Left Group")
left_group_layout = QVBoxLayout()
left_group_layout.addWidget(button1)
left_group_layout.addWidget(button2)
left_group.setLayout(left_group_layout)
# Middle Group
middle_group = QGroupBox("Middle Group")
middle_group_layout = QVBoxLayout()
middle_group_layout.addWidget(button3)
middle_group_layout.addWidget(button4)
middle_group.setLayout(middle_group_layout)
# Right Group
right_group = QGroupBox("Right Group")
right_group_layout = QVBoxLayout()
right_group_layout.addWidget(button5)
right_group_layout.addWidget(button6)
right_group.setLayout(right_group_layout)
# Main Group
main_group = QGroupBox("Main Group")
main_group_layout = QHBoxLayout()
main_group_layout.addWidget(left_group)
main_group_layout.addWidget(middle_group)
main_group_layout.addWidget(right_group)
main_group.setLayout(main_group_layout)
# Widget
main_widget = QWidget()
main_widget_layout = QVBoxLayout()
main_widget.setLayout(main_widget_layout)
main_widget_layout.addWidget(main_group)
# Layout Set
self.setLayout(main_widget_layout)
self.show()
if __name__ == "__main__":
app = QApplication(sys.argv)
ui = ButtonWidget()
sys.exit(app.exec_())