有人能告诉我下面的简单源代码有什么问题吗?在下面的图片中你可以看到我的问题。我想要一个小部件,它由一个菜单和一个QGLWidget组成,但是QGLWidget覆盖了菜单。如果我使用的是QtGui.QWidget,它可以正常工作。我怎样才能增加这些元素之间的空间?
图1:

QGLWidget代码:
class Profile(QtOpenGL.QGLWidget):
def __init__(self, parent = None):
super(Profile, self).__init__(parent)
def initializeGL(self):
GL.glClearColor(1.0, 1.0 , 1.0, 1.0)
def paintGL(self):
GL.glMatrixMode(GL.GL_MODELVIEW)
GL.glLoadIdentity()
GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT)测试小部件的代码,运行良好:
class TestWidget(QtGui.QWidget):
def __init__(self, parent = None):
super(TestWidget, self).__init__(parent)
editor = QtGui.QTextEdit()
grid = QtGui.QGridLayout()
grid.addWidget(editor, 1,1)
self.setLayout(grid) 主要部件代码:
class ProfileDetectWidget(QtGui.QWidget):
def __init__(self, parent = None):
super(ProfileDetectWidget, self).__init__(parent)
self.ogl_widget = Profile()
# self.ogl_widget = TestWidget()
grid = QtGui.QGridLayout()
grid.addWidget(self.ogl_widget, 2,1)
self.createActions()
self.createMenus()
self.setLayout(grid)
self.resize(420,320)
def createActions(self):
self.openAct = QtGui.QAction('Open...', self)
def createMenus(self):
fileMenu = QtGui.QMenu("File", self)
fileMenu.addAction(self.openAct)
menubar = QtGui.QMenuBar(self)
menubar.addMenu(fileMenu)
if __name__ == '__main__':
app = QtGui.QApplication(["PyQt OpenGL"])
widget = ProfileDetectWidget()
widget.show()
app.exec_() 发布于 2014-10-06 10:18:31
在主小部件的代码中,我更改了
grid = QtGui.QGridLayout()
grid.addWidget(self.ogl_widget, 2,1)至
space = QtGui.QSpacerItem(0,15)
grid = QtGui.QGridLayout()
grid.addItem(space)
grid.addWidget(self.ogl_widget, 2,1)而且看起来很管用。
https://stackoverflow.com/questions/26138794
复制相似问题