python - PySide : "Dynamic" positionning of buttons on GUI? -


i'm using python 2.7.5 on osx 10.8. i'm learning pyside , trying build simple gui.

i managed use buttons (woaaa!) used chose path or execute functions :

pathbtn = qtgui.qpushbutton("fits file path", self) pathbtn.settooltip('choose <b>path</b> fits file') pathbtn.clicked.connect(essai) pathbtn.resize(pathbtn.sizehint()) pathbtn.move(200, 100)  

my problem is, when program running , change size of window mouse cursor, buttons don't move, don't adapt size variation.

i tried find answer (hell yeah google) , understand "qvboxlayout" should want (some kind of "dynamic" positionning, don't know if there's specific name that), didn't understand syntax nor how use it...

any appreciated!

in qt widgets, layouts , widget's size hints determine how things resize. general procedure layout widget (for example):

dialog = qdialog() layout = qvboxlayout() label = qlabel('this label') edit = qlineedit('this line edit box') layout.addwidget(label) layout.addwidget(edit) dialog.setlayout(layout) 

(*i cannot test code here @ work (no qt/pyside), consider "pseudo code" :-)

this results in dialog widget label , edit box. if resize dialog widget, layout , resize properties of widgets ensure label , edit box resize appropriately: horizontally both expand maximally, vertically edit keep same size while label takes remaining space. because resize hint of edit box says wants keep height (namely, 1 line of text).

if not specify layout, widgets (buttons, labels) don't whenr resizing parent widget, observing. hence, solution indeed qvboxlayout, use described above.

by way: more complicated layouts, want use designer tool provided qt: tool lets see , test gui priori.


Comments