Example #1
0
class MultiInputDialog(QDialog):
    def __init__(self, title, label1, label2, parent=None):
        super().__init__(parent)
        self.setWindowTitle(title)
        self.lay = QVBoxLayout(self)

        self.lay1 = QHBoxLayout()
        self.label1 = QLabel(label1, self)
        self.lay1.addWidget(self.label1)
        self.input1 = QLineEdit(self)
        self.lay1.addWidget(self.input1)
        self.lay.addLayout(self.lay1)

        self.lay2 = QHBoxLayout()
        self.label2 = QLabel(label2, self)
        self.lay2.addWidget(self.label2)
        self.input2 = QLineEdit(self)
        self.lay2.addWidget(self.input2)
        self.lay.addLayout(self.lay2)

        bbox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel,
                                self)
        bbox.connect("accepted()", self.accept)
        bbox.connect("rejected()", self.reject)
        self.lay.addWidget(bbox)

    def cleanup(self):
        self.lay1.delete()
        self.lay2.delete()

    @staticmethod
    def getTexts(title, label1, label2, text1="", text2="", parent=None):
        dlg = MultiInputDialog(title, label1, label2, parent)

        dlg.label1.setText(label1)
        dlg.input1.setText(text1)
        dlg.label2.setText(label2)
        dlg.input2.setText(text2)

        if dlg.exec_() == QDialog.Accepted:
            ret1 = dlg.input1.text
            ret2 = dlg.input2.text

            dlg.cleanup()
            dlg.delete()

            return (True, ret1, ret2)
        else:
            return (False, "", "")