gpt4 book ai didi

python - Pyqt GroupBox 育儿

转载 作者:行者123 更新时间:2023-12-01 06:19:24 28 4
gpt4 key购买 nike

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

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

干杯-

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()

最佳答案

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

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')

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

关于python - Pyqt GroupBox 育儿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1391174/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com