2009-07-11 7 views
2

현재 레거시 VBA/Microsoft Access 응용 프로그램을 Python 및 PyQt로 마이그레이션하려고합니다. 나는 논리를 옮기는 데 아무런 문제가 없었으며, 대부분의 양식은 간단했다. 그러나 주요한 데이터 입력 양식 인 응용 프로그램의 가장 중요한 부분에서 문제가 발생했습니다.PyQt 자동 반복 양식

양식은 기본적으로 데이터베이스의 필드에 해당하는 텍스트 상자의 행입니다. 사용자는 단순히 필드에 데이터를 입력하고 다음 탭으로 탭을 반복합니다. 그가 레코드/행의 끝 부분에 올 때, 그는 다시 탭하고 양식이 자동으로 다시 데이터를 입력하기위한 새로운 빈 행을 만듭니다. (실제로는 현재 레코드 아래에 "빈"행을 표시합니다.이 행은 사용자가 실제로 클릭하여 새 레코드도 시작합니다.) 또한 사용자가 위아래로 스크롤하여 현재의 모든 하위 세트를 볼 수 있습니다 그가 일하고있는 기록들.

PyQt에서이 기능을 복제 할 수있는 방법이 있습니까? Qt가 쉽게이 작업을 수행 할 수있는 방법을 찾지 못했습니다. 액세스가 자동으로 처리됩니다. 양식 외부의 코드는 필요하지 않습니다. 그것은 PyQt (또는 가까운 곳)에서 그렇게 쉬운가요? 아니면 처음부터 프로그래밍해야 할 것입니까?

답변

3

QSqlTableModel 및 QTableView 개체를 조사해야합니다. QSqlTableModel은 Qt 뷰 클래스의 내부에서 사용할 수있는 관계형 테이블의 추상화를 제공합니다. QTableView 예를 들면. 설명하는 기능은이 두 클래스를 사용하여 중간 정도의 노력으로 구현할 수 있습니다.

QSqlTableModel은 데이터베이스 필드에 대한 편집도 지원합니다.

필자가 수동으로 구현해야하는 유일한 기능은 테이블 끝에 "TAB"을 붙이면 유지하려는 경우 새 행을 만드는 것입니다.

Access에 대해 많이 알지는 못하지만 ODBC-SQL 드라이버를 사용하면 실제 액세스 데이터베이스를 개발 또는 테스트에 사용할 수 있어야합니다. 이전 정보가 here 인 경우 Sqlite로 이동하는 것이 좋습니다. MySQL 또는 다른 실제 SQL 데이터베이스.

+0

+1 이것은 PyQt 프레임 워크에 대한 해결책입니다. – ChristopheD