def __init__(self, title="Calendar"): super(CalendarWidget, self).__init__() self.setWindowTitle(title) layout = QtGui.QGridLayout() layout.setColumnStretch(1, 1) self.cal = QtGui.QCalendarWidget(self) self.cal.setGridVisible(True) self.cal.clicked[QtCore.QDate].connect(self.show_date) layout.addWidget(self.cal, 0, 0, 1, 2) self.date_label = QtGui.QLabel() self.date = self.cal.selectedDate() self.date_label.setText(self.date.toString()) layout.addWidget(self.date_label, 1, 0) button_box = QtGui.QDialogButtonBox() confirm_button = button_box.addButton(QtGui.QDialogButtonBox.Ok) confirm_button.clicked.connect(self.confirm) layout.addWidget(button_box, 1, 1) self.setLayout(layout) self.show() self.raise_()
def __init__(self, parent, title="Language selection", name="Language codes", instruction="Click button when you are done"): super(LanguageSelector, self).__init__( None, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint) self.qm_files_choices = {} self.parent = parent qm_files = utils.find_qm_files() # ========= check boxes ============== group_box = QtGui.QGroupBox(name) group_box_layout = QtGui.QGridLayout() for i, locale in enumerate(qm_files): check_box = QtGui.QCheckBox(locale) check_box.setAutoExclusive(True) self.qm_files_choices[check_box] = locale check_box.toggled.connect(self.check_box_toggled) group_box_layout.addWidget(check_box, i / 4, i % 4) # adding default language option. When using the PyQt distribution # no "en" files were found and yet "en" was the obvious default. # We need this option in case we want to revert a change. check_box = QtGui.QCheckBox("default") check_box.setAutoExclusive(True) self.qm_files_choices[check_box] = "default" check_box.toggled.connect(self.check_box_toggled) i = len(qm_files) group_box_layout.addWidget(check_box, i / 4, i % 4) group_box.setLayout(group_box_layout) # ========= buttons ============== button_box = QtGui.QDialogButtonBox() confirm_button = button_box.addButton(QtGui.QDialogButtonBox.Ok) confirm_button.clicked.connect(self.confirm) # ========= finalizing layout ==== main_layout = QtGui.QVBoxLayout() main_layout.addWidget(group_box) main_layout.addWidget(QtGui.QLabel(instruction)) main_layout.addWidget(button_box) self.setLayout(main_layout) self.setWindowTitle(title) self.show() self.raise_()
def __init__(self, labels=None, title="Demo", masks=None, parent=None): super(MultipleFieldsDialog, self).__init__( None, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint) if parent is None: raise Exception("Parent must be a valid object") self.parent = parent self.parent.o_dict = OrderedDict() self.setWindowTitle(title) # set up a special case for quick demo if labels is None: labels = ["Regular field", "Masked field"] masks = [False, True] self.setWindowTitle("MultipleFieldsDialog demo") if masks is not None: assert len(masks) == len(labels) layout = QtGui.QGridLayout() layout.setColumnStretch(1, 1) layout.setColumnMinimumWidth(1, 250) self._labels_ = [] self.fields = [] for index, choice in enumerate(labels): self._labels_.append(QtGui.QLabel()) self._labels_[index].setText(choice) self.fields.append(QtGui.QLineEdit()) self.fields[index].setText('') self.parent.o_dict[choice] = '' if masks is not None and masks[index]: self.fields[index].setEchoMode(QtGui.QLineEdit.Password) layout.addWidget(self._labels_[index], index, 0) layout.addWidget(self.fields[index], index, 1) button_box = QtGui.QDialogButtonBox() confirm_button = button_box.addButton(QtGui.QDialogButtonBox.Ok) layout.addWidget(button_box, index + 1, 1) confirm_button.clicked.connect(self.confirm) self.setLayout(layout) self.setWindowTitle(title) self.show() self.raise_()