0

http://www.python.org/getit/から python 2.7.3 (python-2.7.3.amd64.msi) を実行しています。

私は次のインストーラーを使用しています: http://www.lfd.uci.edu/~gohlke/pythonlibs/

  • PyQt-Py2.7-x64-gpl-4.9.6-1.exe
  • PySide-1.1.2.win-amd64-py2.7.exe
  • MySQL-python-1.2.4.win-amd64-py2.7.exe

また、次の pyqt および pyside バイナリも試しました。

次の Python コードで「QSqlDatabase: QMYSQL ドライバーがロードされていません」というエラーが表示されます。私の推測では、上記の pyside および pyqt バイナリ インストーラーは QMYSQL を含めるように qt をビルドしていないのでしょうか? 誰でもそれを確認でき、さらに重要なことに、QMYSQL ドライバーがビルドされたインストーラーに案内してもらえますか? 自分で qt ライブラリをコンパイルする準備はできていません。どんな助けでも大歓迎です。

import sys

from showrec import *    # import qtdesigner ui (converted using pyside-uic)

from PySide import QtGui, QtSql

#===================================================================
# 
#===================================================================

def createConnection():

    db = QtSql.QSqlDatabase.addDatabase('QMYSQL')

    db.setHostName('localhost')
    db.setDatabaseName('mydatabase')
    db.setUserName('userid')
    db.setPassword('password')
    db.open()
    print (db.lastError().text())
    return True

#===================================================================
#
#===================================================================

class MyForm(QtGui.QDialog):

    def __init__(self, parent=None):

        #super(MyForm, self).__init__(parent)   # I suspect this is needed?

        QtGui.QWidget.__init__(self,parent)
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)

        self.model = QtSql.QSqlDatabase(self)
        self.model.setTable("products")
        self.model.setEditStrategy(QtSql.QSqlTableModel.OnManualSubmit)
        self.model.select()
        self.ui.tableView.setModel(self.model)

#===================================================================
# main
#===================================================================

if __name__ == "__main__":

    app = QtGui.QApplication(sys.argv)

    if not createConnection():
        sys.exit(1)

    myapp = MyForm()
    myapp.show()

    sys.exit(app.exec_()) 

これはGUIコードです:

from PySide import QtCore, QtGui

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(400, 300)
        self.tableView = QtGui.QTableView(Dialog)
        self.tableView.setGeometry(QtCore.QRect(20, 20, 256, 192))
        self.tableView.setObjectName("tableView")

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
4

2 に答える 2

1

PySide に関しては、公式の 64 ビット Windows インストーラー (PySide ホームページからダウンロード) は QSQLITE ドライバーのみをサポートしています。32 ビット インストーラーは、QSQLITE QODBC3 QODBC QPSQL7 QPSQL ドライバーをサポートします。R.

于 2013-04-11T08:52:18.923 に答える
0

インストーラーには QMYSQL ドライバーが含まれているため、pyside の代わりに pyqt4 を使用することにしました。

于 2013-05-03T15:11:54.257 に答える