这是我的代码:
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放在工具栏下方?
答案 0 :(得分:1)
问题是,您直接将widget
添加为main
的孩子,而不是将其设置为中央窗口小部件。所以而不是:
widget = QtGui.QWidget(self)
使用:
widget = QtGui.QWidget()
self.setCentralWidget(widget)