鱼C论坛

 找回密码
 立即注册
查看: 3803|回复: 3

Pyqt5 QTableview+QSqlTablemodel无法显示数据问题

[复制链接]
发表于 2018-6-13 22:06:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import sys
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtSql import QSqlDatabase, QSqlTableModel
from PyQt5.QtCore import Qt



class BorrowStatusViewer(QWidget):
    def __init__(self, studentId):
        super(BorrowStatusViewer, self).__init__()
        self.resize(700, 500)
        self.studentId = studentId
        self.setWindowTitle("欢迎使用图书馆管理系统")
        self.setUpUI()

    def setUpUI(self):
        self.db = QSqlDatabase.addDatabase("QSQLITE")
        self.db.setDatabaseName('./db/LibraryManagement.db')
        self.db.open()
        # 分为两块,上方是已借未归还书,下方是已归还书
        self.layout = QVBoxLayout(self)
        # Label设置
        self.borrowedLabel = QLabel("未归还:")
        self.returnedLabel = QLabel("已归还:")
        self.borrowedLabel.setFixedHeight(32)
        self.borrowedLabel.setFixedWidth(60)
        self.returnedLabel.setFixedHeight(32)
        self.returnedLabel.setFixedWidth(60)
        font = QFont()
        font.setPixelSize(18)
        self.borrowedLabel.setFont(font)
        self.returnedLabel.setFont(font)

        # Table和Model
        self.borrowedTableView = QTableView()
        self.borrowedTableView.horizontalHeader().setStretchLastSection(True)
        self.borrowedTableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
        self.borrowedTableView.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.returnedTableView = QTableView()
        self.returnedTableView.horizontalHeader().setStretchLastSection(True)
        self.returnedTableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
        self.returnedTableView.setEditTriggers(QAbstractItemView.NoEditTriggers)

        self.borrowedTableModel = QSqlTableModel()
        self.returnedTableModel = QSqlTableModel()
        self.borrowedTableView.setModel(self.borrowedTableModel)
        self.returnedTableView.setModel(self.returnedTableModel)
        self.borrowedTable()
        self.borrowedTableModel.setHeaderData(0, Qt.Horizontal, "书名")
        self.borrowedTableModel.setHeaderData(1, Qt.Horizontal, "书号")
        self.borrowedTableModel.setHeaderData(2, Qt.Horizontal, "作者")
        self.borrowedTableModel.setHeaderData(3, Qt.Horizontal, "分类")
        self.borrowedTableModel.setHeaderData(4, Qt.Horizontal, "出版社")
        self.borrowedTableModel.setHeaderData(5, Qt.Horizontal, "出版时间")
        self.borrowedTableModel.setHeaderData(6, Qt.Horizontal, "借出时间")

        self.returnedTable()
        self.returnedTableModel.setHeaderData(0, Qt.Horizontal, "书名")
        self.returnedTableModel.setHeaderData(1, Qt.Horizontal, "书号")
        self.returnedTableModel.setHeaderData(2, Qt.Horizontal, "作者")
        self.returnedTableModel.setHeaderData(3, Qt.Horizontal, "分类")
        self.returnedTableModel.setHeaderData(4, Qt.Horizontal, "出版社")
        self.returnedTableModel.setHeaderData(5, Qt.Horizontal, "出版时间")
        self.returnedTableModel.setHeaderData(6, Qt.Horizontal, "借阅时间")
        self.returnedTableModel.setHeaderData(7, Qt.Horizontal, "归还时间")

        self.layout.addWidget(self.borrowedLabel)
        self.layout.addWidget(self.borrowedTableView)
        self.layout.addWidget(self.returnedLabel)
        self.layout.addWidget(self.returnedTableView)
        return

    def borrowedTable(self):
        self.model = QSqlTableModel(self)
        self.borrowedTableModel.setTable('Book')
        self.model.setEditStrategy(QSqlTableModel.OnFieldChange)
        self.model.select()
        return

    def returnedTable(self):
        self.model = QSqlTableModel(self)
        self.returnedTableModel.setTable("Book")
        self.model.setEditStrategy(QSqlTableModel.OnFieldChange)
        self.model.select()
        return


if __name__ == "__main__":
    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon("./images/MainWindow_1.png"))
    #app.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
    mainMindow = BorrowStatusViewer("PB15000135")
    mainMindow.show()
    sys.exit(app.exec_())
为什么就是显示不了数据,是什么情况,求大哥解答!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-4 02:05:04 | 显示全部楼层
我也碰到这个问题,不知道题主解决了吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-10 16:05:07 | 显示全部楼层
我也遇到这个问题了,无法显示
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-13 22:46:59 | 显示全部楼层
楼主这个问题找到解决方法了吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-17 03:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表