pyqt qinputdialog获取多行
时间: 2024-09-07 17:03:51 浏览: 80
在PyQt中,你可以使用`QInputDialog`类结合`QTextEdit`或`QPlainTextEdit`来获取用户输入的多行文本。`QInputDialog`通常用于简单的单行输入,但如果需要多行文本,你可以创建一个自定义的对话框,并包含一个文本编辑器控件。
以下是一个例子,展示如何创建一个自定义的QDialog,其中包含一个多行的QTextEdit控件:
```python
from PyQt5.QtWidgets import QApplication, QDialog, QVBoxLayout, QLabel, QLineEdit, QTextEdit
class MultiLineInputDialog(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
layout = QVBoxLayout()
self.setWindowTitle("多行输入")
self.text_edit = QTextEdit(self)
self.text_edit.setPlaceholderText("请输入多行文本...")
layout.addWidget(self.text_edit)
button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
button_box.accepted.connect(self.accept)
button_box.rejected.connect(self.reject)
layout.addWidget(button_box)
self.setLayout(layout)
def get_multiline_input():
dialog = MultiLineInputDialog()
if dialog.exec_() == QDialog.Accepted:
return dialog.text_edit.toPlainText()
else:
return None
# 使用示例
app = QApplication([])
text = get_multiline_input()
if text:
print(f"用户输入的多行文本:\n{text}")
```
在这个例子中,`get_multiline_input`函数会弹出一个对话框,用户可以在其中输入多行文本。当用户点击“接受”按钮时,返回的内容就是他们输入的文本。
阅读全文