2013-08-01 2 views
0

나는 scalable을 만들기 위해 노력하고있는 PyQt4를 사용하여 (희망적으로) 간단한 GUI 응용 프로그램을 설계하고 있습니다. 간단히 말해, 사용자는 몇 가지 기본 정보를 입력하고이를 n 개의 대기열 중 하나로 보냅니다 (대기열 목록 구현). 이러한 각 큐 (QTableviews)는 동일하며 큐를 삭제하고 큐를 재정렬하는 컨트롤을 가지고 있습니다. 이것들은 몇몇 라벨들과 함께 '모듈'을 형성합니다. 현재 내 응용 프로그램은 4 개의 대기열 모듈에 하드 코드되어 있으므로 btn_table1_pop, btn_table2_pop ... 등의 요소가 있습니다. 모든 단일 모듈 위젯의 4 부. 고객이 대기자 명단을 필요로하는 네 명의 사람들이 있다고 가정한다면 이것은 분명히 좋은 UI 디자인이 아닙니다! 나는이 프로그램을 쉽게 수정할 수있어서 8 명이 그것을 사용할 수 있도록하고 싶다. 그렇지 않으면 3 명이 쓸모없는 스크린 부동산을 사용할 수있다.PyQt4 : 내 GUI 구성 요소의 모듈화/확장?

내 응용 프로그램을 프로그래밍하는 정말 순진한 해결책은 각 모듈의 코드를 복제하는 것입니다. 그러나 이것은 정말로 지저분하고 유지 보수가 불가능하며 항상 4 개의 큐에 적용됩니다. 더 나은 생각은 인덱스를 설정하고 공통 논리를 구현하는 함수를 호출하는 각 버튼에 대한 함수를 작성하는 것입니다. 그러나 여전히 분기 논리 및 호출 함수가 이름을 고려해야하기 때문에 4로 하드 코딩됩니다 요소의 내가 예를 들어

btn_table[index]_pop.setEnabled(False) 

를 작성할 수 있도록 방법은 '벡터 라이'요소의 이름에 있었다면 ... 나는이 지점 논리를 제거하고 정말 내 코드를 응축 할 수있다. 하지만 이것이 가능한지 1) 알기 위해 Python/PyQt에서 너무 새로운 것입니까? 또는 2) 어떻게 나아갈 지/이것이 갈 길조차 있다면?

다시 한 번 감사드립니다.

답변

0

누군가가 관심이있는 경우 나는 dummybutton = getattr (self, 'btn_table {}'. format (i)) 및 dummybutton에서 버튼의 메서드를 호출하여 작업 할 수있었습니다.

관련 문제