문제

.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 데이터베이스 모델입니다.

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