You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
977 B
31 lines
977 B
2 years ago
|
from PyQt5.QtWidgets import QApplication, QLineEdit, QDialogButtonBox, QFormLayout, QDialog
|
||
|
from typing import List
|
||
|
|
||
|
class InputDialog(QDialog):
|
||
|
def __init__(self, labels:List[str], parent=None):
|
||
|
super().__init__(parent)
|
||
|
|
||
|
buttonBox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel, self)
|
||
|
layout = QFormLayout(self)
|
||
|
|
||
|
self.inputs = []
|
||
|
for lab in labels:
|
||
|
self.inputs.append(QLineEdit(self))
|
||
|
layout.addRow(lab, self.inputs[-1])
|
||
|
|
||
|
layout.addWidget(buttonBox)
|
||
|
|
||
|
buttonBox.accepted.connect(self.accept)
|
||
|
buttonBox.rejected.connect(self.reject)
|
||
|
|
||
|
def getInputs(self):
|
||
|
return tuple(input.text() for input in self.inputs)
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
import sys
|
||
|
app = QApplication(sys.argv)
|
||
|
dialog = InputDialog(labels=["First","Second","Third","Fourth"])
|
||
|
if dialog.exec():
|
||
|
print(dialog.getInputs())
|
||
|
exit(0)
|