예제 #1
0
파일: code_only.py 프로젝트: tacaswell/pydm
 def setup_ui(self):
     main = QHBoxLayout()
     sub = QVBoxLayout()
     for i in range(10):
         sub.addWidget(QLabel(str(i)))
     main.addLayout(sub)
     self.setLayout(main)
예제 #2
0
    def __init__(self, parent=None, collumns=None, **settings):
        """
        Parameters
        ----------
        collumns: list, optional
            List of lists of headers included in each collumn
            The list at index 0 will be the first collumn, etc.

        settings: kwargs
            Mapping of header to list of Setting objects
        """
        self.settings = {}
        self.window = QDialog(parent=parent)
        self.window.setWindowTitle('Skywalker Settings')
        main_layout = QVBoxLayout()
        self.window.setLayout(main_layout)
        self.window.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
        all_cols_layout = QHBoxLayout()
        main_layout.addLayout(all_cols_layout)
        if collumns is None:
            collumns = [list(settings.keys())]
        for col in collumns:
            col_layout = QVBoxLayout()
            all_cols_layout.addLayout(col_layout)
            for header in col:
                title = QLabel()
                title.setText(header.capitalize())
                title.setAlignment(Qt.AlignCenter)
                col_layout.addWidget(title)
                form = QFormLayout()
                col_layout.addLayout(form)
                for setting in settings[header]:
                    self.settings[setting.name] = setting
                    label = QLabel()
                    label.setText(setting.name.capitalize())
                    label.setSizePolicy(QSizePolicy.Minimum,
                                        QSizePolicy.Minimum)
                    form.addRow(label, setting.layout)
            vertical_spacer = QSpacerItem(20, 10, QSizePolicy.Minimum,
                                          QSizePolicy.Expanding)
            col_layout.addItem(vertical_spacer)
        confirm_layout = QHBoxLayout()
        main_layout.addLayout(confirm_layout)
        horizontal_spacer = QSpacerItem(40, 20, QSizePolicy.Expanding,
                                        QSizePolicy.Minimum)
        cancel_button = QPushButton('Cancel')
        cancel_button.pressed.connect(self.window.reject)
        apply_button = QPushButton('Apply')
        apply_button.pressed.connect(self.window.accept)
        confirm_layout.addItem(horizontal_spacer)
        confirm_layout.addWidget(cancel_button)
        confirm_layout.addWidget(apply_button)