2014-01-30 4 views
-1

Как я могу сделать GUI приложение, как это без использования Qt Designer:позиционирование виджетов внутри GUI Application (PySide)

Image http://imagizer.imageshack.us/v2/800x600q90/856/zz53.png

+0

+1 за удивительный красный текст, -2 за то, что не показывали абсолютно никаких указаний на выполнение какой-либо работы для ответа на вопрос. Чистое изменение: -1. – neuronet

ответ

1

Ответ на этот вопрос должен быть действительно: по reading the finely-crafted manual.

Одна из лучших вещей в Qt - превосходная документация. Это так хорошо, что вам даже не нужно знать C++, чтобы иметь возможность использовать его. Вы действительно упускаете важную часть обучения PyQt/PySide, если не знаете, что вам нужно.

Но что, черт возьми, вот сырой макет того, что вы просили (остальное я оставляю вам в качестве упражнения):

from PySide import QtCore, QtGui 

class Window(QtGui.QMainWindow): 
    def __init__(self): 
     super(Window, self).__init__() 
     grid = QtGui.QGridLayout() 
     grid.addWidget(QtGui.QLabel('Label A', self), 0, 0) 
     grid.addWidget(QtGui.QLabel('Label B', self), 0, 1) 
     grid.addWidget(QtGui.QLabel('Label C', self), 1, 0) 
     grid.addWidget(QtGui.QLabel('Label D', self), 1, 1) 
     vbox = QtGui.QVBoxLayout() 
     vbox.addWidget(QtGui.QRadioButton('Radio A', self)) 
     vbox.addWidget(QtGui.QRadioButton('Radio B', self)) 
     vbox.addWidget(QtGui.QRadioButton('Radio C', self)) 
     vbox.addWidget(QtGui.QPushButton('Button', self)) 
     widget = QtGui.QWidget(self) 
     layout = QtGui.QGridLayout(widget) 
     layout.addLayout(grid, 0, 0) 
     layout.addLayout(vbox, 0, 1) 
     layout.addWidget(
      QtGui.QSlider(QtCore.Qt.Horizontal, self), 1, 0, 1, 2) 
     self.setCentralWidget(widget) 

if __name__ == '__main__': 

    import sys 
    app = QtGui.QApplication(sys.argv) 
    window = Window() 
    window.setGeometry(500, 300, 100, 100) 
    window.show() 
    sys.exit(app.exec_()) 
+0

Еще раз спасибо @ekhumoro, я просто попробовал то, что вы написали выше, и он отлично работает, это настоящий код, опускающий некоторые другие инструменты: http://codepad.org/CoppVOAE, если вы хотите посмотреть .. В любом случае, вы также можете попробовать, cus, я бы хотел отобразить радиокнопки в верхней части VBoxLayout, а не прямо посередине. Когда я получил некоторое свободное время, я попытаюсь взглянуть на проводник, который вы разместили ранее, еще раз спасибо за ответ! –

+0

Желательно, чтобы документация была полезной для менее простых вещей. Работа в C++ - большой плюс, если вы действительно хотите в полной мере использовать документацию для qt, которая находится в сети. В какой-то момент я гарантирую, что вы закончите работу над документацией на C++ и обнаружите, что она не имеет эквивалента в PySide/PyQt. – neuronet

Смежные вопросы