문제

현재 레거시 VBA/Microsoft Access 응용 프로그램을 Python 및 PYQT로 마이그레이션하려고합니다. 논리를 마이그레이션하는 데 아무런 문제가 없었으며 대부분의 양식도 스냅되었습니다. 그러나 응용 프로그램의 가장 중요한 부분 인 주요 데이터 입력 양식에 문제가 발생했습니다.

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

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

도움이 되었습니까?

해결책

qsqltablemodel과 qtableview 객체를 살펴 봐야합니다. QSQLTABLEMODEL은 QT View 클래스에서 사용할 수있는 관계형 테이블의 추상화를 제공합니다. 예를 들어 QtableView입니다. 설명하는 기능은이 두 클래스를 사용하여 적당한 노력으로 구현할 수 있습니다.

QSQLTableModel은 또한 데이터베이스 필드의 편집을 지원합니다.

내 생각에, 당신이 수동으로 구현 해야하는 유일한 기능은 테이블 끝의 "탭"이며 새 행을 유지하려면 새 행을 만들 수 있습니다.

액세스에 대해 잘 모르겠지만 ODBC-SQL 드라이버를 사용하면 개발 또는 테스트에 실제 액세스 데이터베이스를 사용할 수 있어야합니다. 여기, SQLITE, MYSQL 또는 다른 실제 SQL 데이터베이스로 이동하는 것을 고려할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top