2012-11-23 64 views
-1

我有一個表,我需要添加到網格在我的主窗口。我使用python,sqlite3的和PyQt的。如何在SQL表添加到PyQt的主窗口

我的問題是,我得到一個類型的錯誤

QGridLayout.addWidget(QWidget的,INT,INT,INT,INT,Qt.Alignment對準= 0):參數1具有意想不到類型 '與QSqlTableModel'

我認爲這意味着addWidget是不正確的,我不知道它應該是什麼?任何想法,將不勝感激。

代碼如下:

def CreateStockDBWindow(self): 
    # Create Table 
    self.mainLayout = QtGui.QGridLayout() 
    app = QtGui.QApplication(sys.argv) 
    self.createConnection() 
    model = QtSql.QSqlTableModel() 
    self.initializeModel(model) 

    # Create Widgets 
    self.AddButton = QtGui.QPushButton("Add Stock",self) 
    self.RemoveButton = QtGui.QPushButton("Remove Stock",self) 
    self.MoreButton = QtGui.QPushButton("More Details",self) 

    # Create Layouts 
    self.VLayout = QtGui.QVBoxLayout() 

    # top bar 

     # Create Widgets for Top Bar 
    CompanyNameLabel = QtGui.QLabel("<font size='72'><b>"+"Phoenix Trading"+"</b></font>",self) 
    searchLabel = QtGui.QLabel("Search:",self) 
    searchLineEdit = QtGui.QLineEdit("",self) 
    searchButton = QtGui.QCommandLinkButton("Search",self) 

     # Create Graphics view 
    logo = QtGui.QPixmap("logo.jpg") 
    self.myScene = QtGui.QGraphicsScene() 
    self.myScene.addPixmap(logo) 
    self.graphicsView = QtGui.QGraphicsView(self.myScene) 

     # layouts for top bar 
    self.TopBarLayout = QtGui.QGridLayout() 
    self.RHSTopBarLayout = QtGui.QGridLayout() 
    self.RHSVLayout = QtGui.QGridLayout() 
    self.TopBarLayout.addWidget(self.graphicsView,0,0) 
    self.TopBarLayout.addWidget(CompanyNameLabel,0,1) 

    self.RHSVLayout.addWidget(searchLabel,0,0) 
    self.RHSVLayout.addWidget(searchLineEdit,0,1) 
    self.RHSTopBarLayout.addWidget(searchButton,1,0) 
    self.RHSTopBarLayout.addLayout(self.RHSVLayout,0,0) 
    self.TopBarLayout.addLayout(self.RHSTopBarLayout,0,2) 

    # Assemble 

    self.VLayout.addWidget(self.AddButton) 
    self.VLayout.addWidget(self.RemoveButton) 
    self.VLayout.addWidget(self.MoreButton) 

    self.mainLayout.addLayout(self.TopBarLayout,0,0,1,5) 
    self.mainLayout.addLayout(self.VLayout,4,1) 
    self.mainLayout.addWidget(model,4,5) 
    app.exec  

    return self.mainLayout 

回答

0

甲表的模型是不是一個圖形控制,它是這樣一個控制和它的數據之間的接口。

你可能想要把你的表模型QTableView內。

+0

我現在已經做到了,但它仍然無法正常工作,它只是將不會加載,並且沒有給出任何錯誤。我知道它已經運行了整個代碼作爲其在打印報表涵蓋了。有任何想法嗎? –