문제는 당신이 실제로 단순히 객체를 교체하는 것입니다 lstView1이 가리키고 있지만 위젯에는 추가하지 않습니다. 즉, 객체를 만들 때 lstView1을 사용하여 새 객체를 가리 키도록 python에 지시하지만 실제 UI는 이미 추가 된대로 이전 포인터를 사용하고 있습니다. 난 당신이 파이썬에 UI 파일을 변환하기 위해 사용 py4uci이 있고 GUI를 설정한다고 가정하겠습니다
등 :
class ExambleUI(QtGUi.QDialog, UI_Example):
def __init__(self, parent):
QtGui.QDiialog.__init__(self, parent)
self.setupUI(self)
self.lstView1 = MyListView
당신이 lstView의 값을 변경하기 전에 setupUi가 실행되기 때문에 새로운 위젯을 받고 있지 않습니다. 당신은 단지 라인을 교체해야합니다 :
class ExambleUI(QtGUi.QDialog, UI_Example):
def __init__(self, parent):
QtGui.QDiialog.__init__(self, parent)
self.lstView1 = MyListView
self.setupUI(self)
을 당신이 tutorial을 따라 만들고 디자이너에서 위젯을 사용하는 것이 좋습니다 다른 한편으로는 쉽고 빠릅니다.
더 구체적으로하시기 바랍니다. "그러나 그것은 충분하지 않다". 컴파일 중 오류가 있습니까? 런타임에 오류가 있습니까? 오류가 무엇입니까? – erelender
위의 줄에는 오류가 없습니다. 내 오래된 일반 QListView 거기에 여전히 (표시) 및 내 사용자 지정 QListView 흔적. 나는 다른 옵션도 시도했다. self.lstView1 = MyListView (self) : 여기서는 self (a QDialog)를 부모로 사용한다. 사용자 정의 목록보기가 지금은 나타나지만 잘못된 위치 (어딘가에 왼쪽 상단 모서리에 있음)에 있습니다. 그런 다음 self.lstType = TypeList (self.layoutWidget)를 시도했습니다. 여기서 self.layoutWidget은 자리 표시 자 위젯 (일반 QListView)에서 사용되는 레이아웃입니다. 그것은 다시 있지만 여전히 올바른 장소에 있지 않습니다. 그건 그렇고, 오래된 QListview 여전히 거기에 제거되지 않습니다. –