【问题标题】:How to add a Sql Table to a Pyqt main window如何将 Sql 表添加到 Pyqt 主窗口
【发布时间】:2012-11-11 17:53:07
【问题描述】:

我有一个表格,我需要在我的主窗口中添加到网格中。我正在使用 python、sqlite3 和 pyqt。

我的问题是我收到类型错误

QGridLayout.addWidget(QWidget, int, int, int, int, Qt.Alignment 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

【问题讨论】:

    标签: database python-3.x sqlite pyqt4


    【解决方案1】:

    表格模型不是图形控件,它是此类控件与其数据之间的接口。

    您可能希望将表格模型放在 QTableView 中。

    【讨论】:

    • 我现在已经这样做了,但它仍然无法工作,只是无法加载,也没有给出错误。我知道它现在已经运行了打印语句中涵盖的整个代码。有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-25
    • 1970-01-01
    • 1970-01-01
    • 2016-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多