我正在这里获取输入
。areaInput = QtGui.QInputDialog.getText(self, "Copy Area", "New Area Name:", 0)
然而,我想要使对话框更大,我尝试过以下方法:
QtGui.QInputDialog.resize(400, 400)
然而它说“第一个参数必须是QWidget类”,我不太确定这是什么意思,也不知道该如何解决。谢谢。
通过这样做是可能的:
dlg = QtGui.QInputDialog(self)
dlg.setInputMode( QtGui.QInputDialog.TextInput)
dlg.setLabelText("URL:")
dlg.resize(500,100)
ok = dlg.exec_()
url = dlg.textValue()
这个错误意味着你没有使用实例来调用实例方法。
QtGui.QInputDialog.getText()
是一个静态方法,不会返回 QWidget
实例,因此无法在其上调用 resize()
。
如果想要调用 resize()
,你需要创建自己的 QWidget
(或 QDialog)。
findChildren<T>()
方法(我不确定PyQt的等效方法是什么)获取对话框并调用其resize()
方法可能是一个有趣的练习。但由于getText()
是一个阻塞调用,并且您需要在GUI线程中调用resize()
,因此这肯定不是一件轻松的事情。 - Kaleb Pederson我有同样的问题。主要是窗口在水平方向上太窄,使文本编辑输入框变小。最终我在标签参数中的文本后面添加了很多空格。这对我来说很有效。