工具栏和BoxLayout叠加

时间:2012-12-05 17:14:34

标签: python qt

这是我的代码:

import sys
from PyQt4 import QtGui, QtCore 

def prova():
    print "test event"


class MainWindow(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)                                              

    self.resize(350, 250) # ridimensiona la finestra
        self.setWindowTitle('MainWindow')


    pause = QtGui.QAction(QtGui.QIcon("icons/pause.gif"),"Pause",self)
    pause.setStatusTip("Pause!!")
    pause.triggered.connect(prova);

    play = QtGui.QAction(QtGui.QIcon("icons/play.png"),"Play",self)
        play.setStatusTip("Start!")     

    toolbar = self.addToolBar('My toolbar')
    toolbar.addAction(pause)
    toolbar.addAction(play)
    toolbar.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)

    widget = QtGui.QWidget(self)
    hbox = QtGui.QHBoxLayout(widget)

    label = QtGui.QLabel()
    label.setText("test label") 
    hbox.addWidget(label)
    hbox.setAlignment(label,QtCore.Qt.Alignment(QtCore.Qt.AlignRight))

app = QtGui.QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(app.exec_())

我的问题是水平框hbox和里面的小部件都叠加在工具栏上。如何修复叠加层,将hbox放在工具栏下方?

1 个答案:

答案 0 :(得分:1)

问题是,您直接将widget添加为main的孩子,而不是将其设置为中央窗口小部件。所以而不是:

widget = QtGui.QWidget(self)

使用:

widget = QtGui.QWidget()
self.setCentralWidget(widget)