How to resize QInputDialog, PyQt

11,003

Solution 1

it is possible by doing this:

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

Solution 2

That error implies that you're not calling an instance method with an instance.

QtGui.QInputDialog.getText() is a static method and doesn't return you a QWidget instance, so you can't call resize() on it.

If you want to call resize(), you need to create your own QWidget (or QDialog).

Solution 3

I had the same problem. Mainly that the window was too narrow horizontally, making the text edit input field small. I ended up putting lots of whitespace after the text in the label argument. Worked fine for me.

Share:
11,003
siege
Author by

siege

Updated on June 04, 2022

Comments

  • siege
    siege almost 2 years

    I am getting input with this here

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

    However I would like to make the dialog box larger, I've tried things such as

    QtGui.QInputDialog.resize(400, 400)
    

    However it says "the first argument must be a QWidget class" and I'm not quite sure what this means or how to fix it. Thanks.

  • siege
    siege about 14 years
    Ok thanks, so there is no way to resize the little pop up with just simple one line of code?
  • Kaleb Pederson
    Kaleb Pederson about 14 years
    No. But, it would be an interesting exercise to see if you could get a hold of the dialog through the parent's findChildren<T>() method (I'm not sure what the PyQt equivalent might be) and on which you might be able to call resize. But since getText() is a blocking call and you would need to call resize() from the GUI thread, it certainly won't be trivial.
  • ninhenzo64
    ninhenzo64 over 7 years
    Why is this not the top answer?