首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >菜单与QtOpenGL.QGLWidget之间的空间

菜单与QtOpenGL.QGLWidget之间的空间
EN

Stack Overflow用户
提问于 2014-10-01 10:01:04
回答 1查看 152关注 0票数 1

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

图1:

QGLWidget代码:

代码语言:javascript
复制
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)

测试小部件的代码,运行良好:

代码语言:javascript
复制
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) 

主要部件代码:

代码语言:javascript
复制
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_() 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-06 10:18:31

在主小部件的代码中,我更改了

代码语言:javascript
复制
grid = QtGui.QGridLayout()
grid.addWidget(self.ogl_widget, 2,1)

代码语言:javascript
复制
space = QtGui.QSpacerItem(0,15)
grid = QtGui.QGridLayout()
grid.addItem(space)
grid.addWidget(self.ogl_widget, 2,1)

而且看起来很管用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26138794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档