Lily
Lily

Reputation: 846

Positioning widgets to QBoxLayout

I'm using PySide to build a GUI

I have a QBoxLayout that I have add some Widgets to, the problem is I want control their positions which I was not able to do, I tried what have been provided in the documentation page which is

addWidget( widg, int streatch, int alignment)

but it is not giving me what I want so the final look that I want is something like this


------------------------------------------------------------ ^^ ** &&&&&&

if the line ____ represents the whole window/ layout I would like the widget which I named wid in my code to be like the dashed line -------- and the sliders to be in the same place as ^^ and finally the button to be in &&&&&

My second question is I want to add some labels to the sliders and to the como-box and I would like to determine the position how can I do that

here is my code

    self.wid = GLWidget()

    mainLayout = QtGui.QHBoxLayout()
    mainLayout.addWidget(self.wid)



    self.xSlider = self.createSlider()
    self.ySlider = self.createSlider()

    mainLayout.addWidget(self.xSlider)
    mainLayout.addWidget(self.ySlider)

    self.btn = QtGui.QPushButton('OK')
    self.btn.resize(self.btn.sizeHint())

    mainLayout.addWidget(self.btn)


    self.combo = QtGui.QComboBox()

    mainLayout.addWidget(self.combo)

    self.setLayout(mainLayout)
    self.setWindowTitle(self.tr("Hello GL"))
    self.setGeometry(350, 350, 1000, 1000)

Upvotes: 0

Views: 881

Answers (1)

MadeOfAir
MadeOfAir

Reputation: 3193

You could use a QGridLayout instead of QHBoxLayout and use QGridLayout's setColumnMinimumWidth method to dictate your required widget width.Like that:

mainLayout = QtGui.QGridLayout()
mainLayout.setColumnMinimumWidth(0, 100) #set column 0 width to 100 pixels
button = QtGui.QPushButton('OK')
mainLayout.addWidget(button, 0, 0) #adds the button to the widened column

and then continue to add the rest of the widgets.

Upvotes: 1

Related Questions