2017-04-21 2 views
2

내 질문 : 패키지에서 레이블 (또는 다른 그래픽 요소)을 변경하는 방법은 무엇입니까? 아이디어는 내 주요 프로그램을 밝게하는 것입니다. 감사합니다.PyQt : 패키지에서 레이블 텍스트를 변경하는 방법

전 주요 프로그램 :

#../mainprogram.py 
#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

from PyQt5 import QtWidgets 
from ui import Ui_MainWindow 
from package import update 

class MainWindow(QtWidgets.QMainWindow): 
    def __init__(self): 
     super(MainWindow, self).__init__() 
     self.ui = Ui_MainWindow() 
     self.ui.setupUi(self) 

     # label from .ui -> .py 
     self.ui.label_1.setText("need to change this") 

    def update_label(self): 
     self.update = update.label_update() 

전 패키지 :

#../package/update.py 
#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

def label_update(): 
    self.ui.label_1.setText("no problem") 

답변

1

당신이 할 필요가하면 함수를 통해 객체의 인스턴스를 전달합니다. 고려 :이 범위에서

def label_update(): 
    self.ui.label_1.setText("no problem") 

, 우리가 정의되어 있지 있기 때문에 self이 무엇인지 모른다. 그러나, 당신은 self 통과 : 우리는 함수에 전달 된 개체를 업데이트하는

#../mainprogram.py 
class MainWindow(QtWidgets.QMainWindow): 
    def update_label(self): 
     self.update = update.label_update(self) 


#../package/update.py 
def label_update(obj): #obj is the object self 
    obj.ui.label_1.setText("no problem") 

.

+0

위대한 작품입니다. 감사합니다! 제 경우에는 pixmap을 녹색에서 빨간색으로 변경하는 위의 절차를 저장해야합니다. 주 프로그램을 밝게하는 가장 좋은 방법입니까? – cheetOos