2012-12-05 31 views
0

这是我的代码:工具栏和BoxLayout的覆盖

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?

回答

1

问题是,您直接将widget添加为main的子项,而不是将其设置为中央控件。因此,而不是:

widget = QtGui.QWidget(self) 

使用:

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