将小部件定位在GUI应用程序(PySide)中

时间:2014-01-30 19:04:53

标签: python qt user-interface position pyside

如何在不使用QT Designer的情况下制作这样的GUI应用程序:

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

1 个答案:

答案 0 :(得分: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_())