2014-04-04 6 views
0

저는 PyQt4를 사용하여 사용자가 텍스트를 입력하고 (보고서 이름과 같은) 텍스트를 입력하고 보고서를 생성 할 파일을 선택하라는 단일 창을 만듭니다.파일을 선택한 후 PyQt4의 레이블 업데이트

나는 모든 것을 그 창에두고 싶습니다. 조금 멍청한 창문이 있는데 ... 왼쪽에는 버튼이 있고 오른쪽에는 필드가 있습니다. 텍스트 입력의 경우 오른쪽에있는 QLineEdit을 승인하는 버튼이 있습니다. 사용자가 파일을 지정하는 것에 대해 일종의 피드백을주고 싶기 때문에 프로그램에 필요한 모든 정보를 입력했음을 알 수 있습니다 (또는 올바른 파일을 선택했는지 다시 확인할 수 있음) .

가장 쉬운 방법은 QLabel 위젯을 그리드 레이아웃에 추가하여 선택한 파일의 경로를 보여주는 것입니다. 내가 뭘 잘못하고 있는지 모르겠다 ... 내가 처음에 그것을 설정 한 다음 단추가 연결된 함수에서 텍스트를 파일 경로로 설정하도록 지시한다.

self.Logo_button = QtGui.QPushButton(names[1], self) 
    self.LogoLabel = QLabel() 
    self.LogoLabel.setText = '' 
    self.Logo_button.clicked.connect(self.logo_pic) 
    grid.addWidget(self.Logo_button, 1, 0) 
    grid.addWidget(self.LogoLabel, 1,1) 

def logo_pic(self): 
    self.Logo_picture = unicode(QtGui.QFileDialog.getOpenFileName()) 
    self.LogoLabel.setText = self.Logo_picture 

답변

1

데이터 속성 인 것처럼 self.LogoLabel.setText에 문자열을 할당합니다. 하지만 그렇지 않습니다 - 그것은 method입니다. 그래서 그 대신, 당신은해야한다 : 레이블의 텍스트를 초기화 할 필요가 없습니다

self.LogoLabel.setText(self.Logo_picture) 

: 이미 기본적으로 빈 문자열로 설정합니다.

+0

고마워요! 나는 그것이 업데이트되지 않는다고 생각하고 함수 안에서 그것을하려고 할 때 레이블의 재 초기화를 남겼다. 그것없이, 그것은 완전히 작동합니다! – mauve

관련 문제