PyQt中的getText() - 真的需要复杂吗?

1 投票
2 回答
1904 浏览
提问于 2025-04-18 00:02

我正在阅读关于使用PyQt的说明,但我没有找到我需要的那些看起来很基础的信息。

我需要一个小部件。一个基本的小部件。我只想提示用户输入一些文本,并把这些文本保存为字符串。

report_title = QInputDialog.getText(QLineEdit(), QString('Report Title:'))


TypeError: arguments did not match any overloaded call:
  QInputDialog.getText(QWidget, QString, QString, QLineEdit.EchoMode mode=QLineEdit.Normal, QString text=QString(), Qt.WindowFlags flags=0) -> (QString, bool): not enough arguments
  QInputDialog.getText(QWidget, QString, QString, QLineEdit.EchoMode, QString, Qt.WindowFlags, Qt.InputMethodHints) -> (QString, bool): not enough arguments

编辑 在代码块中放置了错误

2 个回答

0

这里有一些例子:http://pyqt.sourceforge.net/Docs/PyQt4/qinputdialog.html

虽然这些例子是用C++写的,但用Python的时候也差不多。你在调用getText()这个方法时,需要指定更多的参数。

3

关于getText这个函数的说明,告诉我们至少有三个必须提供的参数。它们分别是:

  1. 父窗口(和往常一样)
  2. 窗口的标题
  3. 标签,也就是给用户的提示。这个文本会显示在对话框窗口里,输入框旁边。

举个例子:

report_title = QInputDialog.getText(someWindow, 'New report', 'Report title:')

你可以直接用普通的Python字符串作为QString,所以不需要写成QString('Modify report')这种形式。

撰写回答