QInputDialog 多栏输入
时间: 2023-08-05 21:03:33 浏览: 114
QInputDialog只提供了单行文本输入和简单的列表选择的对话框,如果需要实现多栏输入,可以自定义一个对话框,使用QFormLayout来实现多栏输入。
以下是一个示例代码:
```python
from PyQt5.QtWidgets import QApplication, QDialog, QFormLayout, QLineEdit, QDialogButtonBox
class MultiColumnInputDialog(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
self.setWindowTitle("多栏输入")
self.setLayout(QFormLayout())
self.input1_line_edit = QLineEdit(self)
self.layout().addRow("输入1:", self.input1_line_edit)
self.input2_line_edit = QLineEdit(self)
self.layout().addRow("输入2:", self.input2_line_edit)
self.input3_line_edit = QLineEdit(self)
self.layout().addRow("输入3:", self.input3_line_edit)
button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel, self)
button_box.accepted.connect(self.accept)
button_box.rejected.connect(self.reject)
self.layout().addRow(button_box)
def get_input_text(self):
input1 = self.input1_line_edit.text()
input2 = self.input2_line_edit.text()
input3 = self.input3_line_edit.text()
return (input1, input2, input3)
if __name__ == "__main__":
app = QApplication([])
dialog = MultiColumnInputDialog()
if dialog.exec_() == QDialog.Accepted:
input_text = dialog.get_input_text()
print(f"输入的文本:{input_text}")
app.exit()
```
在上面的代码中,我们使用QFormLayout来创建多栏输入框。并且使用QDialogButtonBox来添加OK和Cancel按钮。当用户点击OK按钮时,我们使用get_input_text()方法获取用户输入的文本。
阅读全文