首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pyqt GroupBox育儿

Pyqt GroupBox育儿
EN

Stack Overflow用户
提问于 2009-09-07 22:26:04
回答 1查看 6.2K关注 0票数 1

在Python和Pyqt中,我有一个简单的类,它实例化了一个Label类和一个GroupBox类。

根据文档,在创建时将Groupbox传递给Label应该使Groupbox成为Label的父对象。然而,我在这里一定遗漏了一些简单的东西。当我创建GroupBox时,它很好,但是当我创建标签时-它看起来扭曲了(或者可能在GroupBox后面?)

干杯-

代码语言:javascript
复制
from PyQt4.QtCore import * 
from PyQt4.QtGui import *
import sys


class FileBrowser(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)

        self.setGeometry(0, 0, 920, 780)
        self.initClasses()

    def initClasses(self):
        # GroupBox
        self.groupBox1 = GroupBox(self, QRect(20, 10, 191, 131),  'Shot Info')

        # Label
        self.labelGroup1_ShotInfo = Label(self, QRect(10, 26, 52, 15),  'Film')


class GroupBox(QWidget): 
    def __init__(self, parent,  geo,  title): 
        QWidget.__init__(self, parent)
        obj = QGroupBox(parent)
        obj.setGeometry(geo)
        obj.setTitle(title)

class Label(QWidget): 
    def __init__(self, parent,  geo,  text): 
        QWidget.__init__(self, parent)
        obj = QLabel(parent)
        obj.setGeometry(geo)
        obj.setText(text)



def main(): 
    app = QApplication(sys.argv) 
    w = FileBrowser() 
    w.show() 
    sys.exit(app.exec_()) 

if __name__ == "__main__": 
    main()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-09-10 06:54:58

问题是你没有使用布局。因为您没有使用其中一个,所以这两个小部件都是在另一个小部件之上呈现的。当然,这取决于您正在尝试做什么,但下面的例子应该是一个很好的例子:

代码语言:javascript
复制
class FileBrowser(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)

        self.setGeometry(0, 0, 920, 780)
        self.initClasses()
        # changes
        layout = QVBoxLayout(self) # create layout out
        layout.addWidget(self.groupBox1) # add widget
        layout.addWidget(self.labelGroup1_ShotInfo) # add widget
        # set my layout to make sure contents are correctly rendered
        self.setLayout(layout) 

    def initClasses(self):
        # GroupBox
        self.groupBox1 = GroupBox(self, QRect(20, 10, 191, 131),  'Shot Info')

        # Label
        self.labelGroup1_ShotInfo = Label(self, QRect(10, 26, 52, 15),  'Film')

上面的例子使用了垂直布局并解决了这个问题。

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

https://stackoverflow.com/questions/1391174

复制
相关文章

相似问题

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