2017-09-07 1 views
2

모든 육아/초기화 문제로 인해 분실되었으며 이것이 작동하지 않는 이유를 모릅니다. 그래서 레이블을 만든 다음 그 안에 그림이있는 다른 레이블을 만듭니다. 그 레이블을 두 개 포함하는 위젯을 만든 다음이 새 위젯을 주 창에 넣고 싶습니다. 그러나 아무 것도 나타나지 않습니다.Qwidget 안에 Qwidget을 삽입하는 방법

'그럼 당신은 돈

class Labhtml(QLabel): 

    def __init__(self): 
     super().__init__() 
     self.setText('html') 

: 클래스 Labhtml, 당신은 QLabel에서 상속 할 때, 당신은 몇 가지 매개 변수를 전달하는 방법과 기본 클래스의 속성을 사용하거나 인스턴스화 메커니즘을 사용할 수 있습니다에 대한 첫 번째

import sys 
import os 
from PyQt5.QtWidgets import * 
from PyQt5.QtCore import * 

class Labhtml(QLabel): 

    def __init__(self): 
     super().__init__() 

     label = QLabel('html') 


class Bar(QLabel): 

    def __init__(self): 
     super().__init__() 

     self.resize(100, 5) 

    def paintEvent(self, e): 
     qp = QPainter(self) 
     qp.setBrush(QColor(200, 0, 0)) 
     qp.drawRect(0,0,200,3) 


class Wid(QWidget): 
    def __init__(self, parent): 
     super().__init__(parent=parent) 

     widget = QWidget() 
     html = Labhtml() 
     bar = Bar() 

     self.layout = QVBoxLayout(widget) 
     self.layout.addWidget(html) 
     self.layout.addWidget(bar) 


class Example(QScrollArea): 
    def __init__(self): 
     super().__init__() 

     widget = QWidget() 
     layout = QVBoxLayout(widget) 

     layout.addWidget(Wid(widget)) 

     self.setWidget(widget) 
     self.setWidgetResizable(True) 

     self.show() 


if __name__ == '__main__': 

    app = QApplication(sys.argv) 
    ex = Example() 
    sys.exit(app.exec_()) 

답변

1

Wid 클래스 안에 다른 위젯을 만들어야하지만,을 참조해야합니다.대신 :

class Labhtml(QLabel): 

    def __init__(self, text): 
     super().__init__(text) 


class Wid(QWidget): 
    def __init__(self, parent): 
     super().__init__(parent=parent) 

     html = Labhtml('html') 
+0

: 당신이 당신의 인스턴스를 만들 때 또한 새로운 text 인수합니다 (Qlabel에 사용 된 것과 같은)를 선언하여 클래스를 작성하고 전달할 수있는 인스턴스 메커니즘에 대해

class Wid(QWidget): def __init__(self, parent): super().__init__(parent=parent) html = Labhtml() bar = Bar() self.layout = QVBoxLayout(self) self.layout.addWidget(html) self.layout.addWidget(bar) 

감사. Labhtml QLabel의 경우 실제로 HTML 파일을 하위 집합으로 사용합니다. 위의 코드에서 Label은 해당 하위 집합의 모든 내용을 표시하지 않으며 해당 레이블의 HTML 하위 집합을 축소합니다. 그것을 피하고 레이블이 전체 HTML 테이블을 표시하도록 치수를 조정할 수 있도록하는 방법에 대한 조언은 무엇입니까? – user3755529

+0

사용 된 HTML 파일의 예를 들어 줄 수 있습니까? 여기에 답을 찾지 못했다면 새로운 질문을 만들 수 있습니다. 그러면 다른 사람에게 도움이 될 것입니다. – PRMoureu

관련 문제