2010-01-22 1 views
2

새로운 레이블과 textEdit을이 탭 바로 위에있는 그리드에 추가 한 후 pyuic4로 ui.py 파일을 생성 할 때 충분한 인수가 없다는 오류를주는 여러 탭에 대해 다음 행을 생성합니다.pyuic4가 탭을 "MainWindow"로 자동 설정하는 방법?

self.tcTab.setTabText(self.tcTab.indexOf(self.tab_6),) 

그러나 변경하기 전에 .ui는이 벌금을 생성합니다.

self.tcTab.setTabText(self.tcTab.indexOf(self.tab_6), QtGui.QApplication.translate("MainWindow", " ", None, QtGui.QApplication.UnicodeUTF8)) 

이 코드는 정상적으로 작동하며, 이것을 ui.py 파일로 편집하면 변경 한 내용도 정상적으로 작동합니다. 그러나 pyuic4를 사용할 때 자동으로이 작업을 수행하는 방법은 무엇입니까? 왜냐하면 내가 이해하는 바로는 ui.py 파일을 편집 할 필요가 없기 때문입니다. 감사합니다.

편집 : 모든 항목을 무효로 업데이트했습니다. 거의 내가 이전 UI 파일을 변경하면 pyuic4를 사용하면이 문제가 발생할 것입니다. 번역 가능한 IS는 qtDesigner의 currentTabText에서 검사됩니다.

def retranslateUi(self, MainWindow): 

    #these are incorrect ones pyuic4 generates 
    self.tcTab.setTabText(self.tcTab.indexOf(self.tab_6),) 
    self.tcTab.setTabText(self.tcTab.indexOf(self.tab_9),) 

    #these are the correct lines it used to generate 
    self.tcTab.setTabText(self.tcTab.indexOf(self.tab_6),QtGui.QApplication.translate("MainWinow", " ", None, QtGui.QApplication.UnicodeUTF8)) 
    self.tcTab.setTabText(self.tcTab.indexOf(self.tab_9), QtGui.QApplication.translate("MainWindow", " ", None, QtGui.QApplication.UnicodeUTF8)) 

Edit2가 : 문제는 평 파일이 함수에서 일어나는 내가 qtdesigner에 .ui을 열 경우에도, 무언가를 클릭 심지어 그것을 수정하지 않고, 저장 한 후 pyuic4를 사용, 그것은 나쁜를 생성 암호.

+0

어떤 PyQt4 버전을 사용하고 있습니까? –

+0

pyuic4 --version Qt 버전 4.5.1 용 Python 사용자 인터페이스 컴파일러 4.5.1 – siege

+0

문제를 보여주는 최소한의 UI 파일을 게시 할 수 있습니까? –

답변

1

예이 !!!!

디자이너를 사용할 때 탭의 setTabText 필드에 뭔가가 있어야합니다. Ui가 공백 문자를 tabText로 사용하고있는 것으로 밝혀졌습니다. 디자이너를 열 때마다 공백이 제거됩니다. 따라서 탭 텍스트를 변경 한 후에 다시 공백 문자로 설정하면 작동합니다.