如何调整QInputDialog的大小,PyQt

4

我正在这里获取输入

areaInput = QtGui.QInputDialog.getText(self, "Copy Area", "New Area Name:", 0)

然而,我想要使对话框更大,我尝试过以下方法:

QtGui.QInputDialog.resize(400, 400)

然而它说“第一个参数必须是QWidget类”,我不太确定这是什么意思,也不知道该如何解决。谢谢。
3个回答

17

通过这样做是可能的:

dlg =  QtGui.QInputDialog(self)                 
dlg.setInputMode( QtGui.QInputDialog.TextInput) 
dlg.setLabelText("URL:")                        
dlg.resize(500,100)                             
ok = dlg.exec_()                                
url = dlg.textValue()

1
为什么这不是最佳答案? - ninhenzo64

4

这个错误意味着你没有使用实例来调用实例方法。

QtGui.QInputDialog.getText() 是一个静态方法,不会返回 QWidget 实例,因此无法在其上调用 resize()

如果想要调用 resize(),你需要创建自己的 QWidget(或 QDialog)。


好的,谢谢。那么没有什么简单的一行代码可以调整弹出窗口的大小吗? - siege
不过,通过父类的findChildren<T>()方法(我不确定PyQt的等效方法是什么)获取对话框并调用其resize()方法可能是一个有趣的练习。但由于getText()是一个阻塞调用,并且您需要在GUI线程中调用resize(),因此这肯定不是一件轻松的事情。 - Kaleb Pederson

2

我有同样的问题。主要是窗口在水平方向上太窄,使文本编辑输入框变小。最终我在标签参数中的文本后面添加了很多空格。这对我来说很有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接