2010-02-23 3 views
3

저는 PyQt와 Qt Designer를 처음 접했고 qWidgets을 SQLite 데이터베이스의 테이블과 열과 관련시키는 쉬운 방법을 만들려고합니다. 내 생각은 디자이너의 각 qWidget에 테이블 이름과 열 이름이있는 두 개의 사용자 정의 속성을 태그하는 것이 었습니다. 나중에 디자이너가 제공 한 정보를 사용하여 qwidets와 SQLite 데이터베이스 사이의 관계를 만드는 내 자신의 클래스를 작성합니다.Python으로 변환 한 후 QT Designer에서 사용자 정의 속성에 액세스 할 수 있습니까?

디자이너에서 사용자 지정 속성을 추가하는 것이 좋지만 디자이너의 XML을 파이썬 (UIC 사용)으로 변환 할 때 이러한 사용자 지정 속성에 대한 코드가 생성되지 않습니다. 누구든지 성공적으로이 일을 했습니까? 아마도 이것을 할 수있는 더 좋은 방법이 있을까요?

감사합니다,

답변

0

체크 아웃 this article 에릭

에릭. 특히 "플러그인 생성"절을보십시오. River Bank Computing은 또 다른 위대한 PyQt reference을 가지고 있습니다.

편집 : 나는 더 많은 독서를하고 있었고 나는 이것을 자동으로 해 줄 방법을 찾을 수 없다. 디자인 타임 대신 런타임에 동적 속성을 추가하는 것이 좋습니다. 동일한 최종 결과를 얻을 수 있습니다. Here은 QWidget이 상속하는 QObject의 setProperty() 메소드에 대한 설명입니다.

그게 효과가 없다면 덜 일반적인 접근 방식을 사용하는 것이 나을 것 같습니다. 일반적인 QWidget을 사용하는 대신 QSqlTableModel에서 파생 된 사용자 정의 클래스를 사용하여 연결 정보를 추적 할 수 있습니다. 또 다른 방법은 QTableView를 사용하여 쿼리를 수행하여 데이터를 채우는 것입니다. Herehere은 Qt에있는 데이터베이스의 기사입니다. 그 중 하나의 새로운 디자인에 대한 영감을 줄 수 있습니다.

+0

안녕하세요. Ryan, 감사합니다. 첫 번째 기사에서는 속성을 추가하기 위해 사용자 지정 위젯을 만들어야한다고 제안하는 것처럼 보입니다. 나는 그것을 정확하게 이해하고 있는가? QT 디자이너에서 속성 편집기를 사용하면 위젯에 동적 속성을 만들고 값을 지정할 수 있습니다. 이것은 XML (.ui) 파일에 저장되므로 UIC 컴파일러에서이 데이터를 볼 수 있다고 가정합니다. 이것은 파이썬으로 변환 한 후에도 사용할 수 없습니까? –

+0

나는 그것을 시도 할 것이다. 이것에 대한 도움을 주셔서 감사합니다! –

0

저는 Designer 도구를 사용하여 큰 행운을 얻지 못했습니다. 보통 pyuic을 사용하여 몇 가지 대략적인 레이아웃을 작성한 다음 손으로 다른 내용을 편집하고 추가합니다.

QWidget에서 상속받은 사용자 지정 클래스를 만들어 쉽게 수행 할 수 있고 설명 된 추가 속성이있는 것 같습니다. 디자이너에서 커스텀 위젯을 사용하려고했던 내 경험으로, '쉬운'방법은 클래스를 직접 작성한 다음 손으로 레이아웃을 설정하는 것입니다.

본인의 질문에 정확히 답변하지는 않지만 어쩌면 내 제안을 시도해 볼 수 있습니다. 당신이 "myproperty"라는 디자이너의 속성을 추가 한 경우

2

는,이 PyQt는 4.8.3에서 잘 작동 ...

mywidget.property("myproperty") 

함께 가져, 아마도 그것은 이전 버전에서 작동하지 않았다.

관련 문제