PYQT4 : 데이터 바인딩?
-
09-09-2019 - |
문제
.NET 세계에서 Python 및 PYQT4로 오는 것. QT 위젯에 데이터를 바인딩 할 수있는 기능에 익숙한 사람이 있는지 궁금하십니까? 예를 들어 (데이터에 sqlalchemy 사용) :
gems = session.query(Gem).all()
list = QListWidget()
list.datasource = gems
그런 일이 가능합니까?
해결책
하나의 옵션에는 쿼리에서 목록 (또는 튜플) 객체를 반환 한 다음 qlistwidget을 업데이트하는 데 사용하는 함수가 있습니다. QlistWidget은 QListStrings를 저장합니다. 업데이트 기능은 다음과 같습니다.
def updateQListWidget(qlistwidget, values):
""" Updates a QListWidget object with a list of values
ARGS:
qlistwidget - QListWidget object
values - list of values to add to list widget
"""
qlistwidget.clear()
qlist = QtCore.QStringList()
for v in values:
s = QtCore.QString(v)
qlist.append(s)
qlistwidget.addItems(qlist)
다른 팁
직접 교체는 아니지만 QdatawidgetMapper 클래스를 보는 것이 유용 할 수 있습니다.
http://pyqt.sourceforge.net/docs/pyqt4/qdatawidgetmapper.html
C ++ 코드를 읽는 것이 두렵지 않은 경우이 예제도 도움이 될 수 있습니다.
https://doc.qt.io/qt-4.8/qt-sql-sqlwidgetmapper-example.html
맵퍼는 QT의 모델/보기 프레임 워크 내에서 작동합니다. 이 예에서 모델은 SQL 데이터베이스 모델입니다.
제휴하지 않습니다 StackOverflow