2017-09-14 20 views
0

저는 SQL 데이터베이스를 만들고 Python 및 PyQT로 만든 프로그램을 통해 데이터 작업을 할 수있는 대학 프로젝트에 바쁩니다.QtableView를 사용하여 MySQL의 정보를 PyQT 앱에 표시 할 수 없습니다.

데이터베이스를 만들고 테이블에 데이터를 추가했지만 지금은 QTableView 위젯을 사용하여 데이터를 표시해야하며 실행할 때 빈 창이 나타납니다.

사용자 이름, 암호 또는 데이터베이스 이름과 같은 세부 사항을 무작위로 변경하면 데이터베이스에 대한 연결이 이루어지지 않는다는 동일한 결과가 계속 나타납니다.

누군가 내 코드를보고 도움을 줄 수 있습니까? 오류 메시지를 얻기위한 조언이 있더라도?

from __future__ import division 
import sys 
from PyQt4 import QtCore, QtGui, QtSql 

from showrec import* 

def createConnection(): 
    db=QtSql.QSqlDatabase.addDatabase('QMYSQL') 
    db.setHostName('localhost') 
    db.setDatabaseName('database') 
    db.setUserName('username') 
    db.setPassword('password') 
    db.open() 
    print(db.lastError().text()) 
    return True 

class MyForm(QtGui.QDialog): 
    def _init_(self,parent=None): 
     QtGui.QWidget._init_(self,parent) 
     self.ui=Ui_Dialog() 
     self.ui.setp.Ui(self) 
     self.model=QtSQL.QSqlTableModel(self) 
     self.Model.SetTable("table1") 
     self.Model.setEditStrategy(QtSql.QSqlTableModel.OnManualSubmit) 
     self.model.select() 
     self.ui.tableView.SetModel(self.model) 

if __name__ == "__main__": 

    app=QtGui.QApplication(sys.argv) 
    if not createConnection(): 
     sys.exit(1) 
    myapp=MyForm() 
    myapp.show() 
    sys.exit(app.exec_())` 
+0

'self.ui.tableView.SetModel (self.model)':'setModel' 아닌가요? – JonBrave

+0

'create' 연결에서 생성하고있는'db' 객체는이 함수 안에 있고 클래스에서 반환하고 할당하거나이 함수를 클래스 메쏘드로 만들고 self.db = ...를 사용하면됩니다. – PRMoureu

답변

0

확인. 내가 전에 초기화 대신 의 후 _ 한 유일한 장소 내 실수 을 발견 데프 초기화 (자기 부모 = 없음) :

대신 : 데프 초기화 (자기 부모 = 없음)

어리석은 실수이지만 한 시간 동안 바빴어요. 응답 주셔서 감사합니다. JonBrave