鱼C论坛

 找回密码
 立即注册
查看: 232|回复: 0

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

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

马上注册加入鱼C,享用更多服务吧^_^

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

x
  1. import sys
  2. from PyQt5.QtGui import *
  3. from PyQt5.QtWidgets import *
  4. from PyQt5.QtSql import QSqlDatabase, QSqlTableModel
  5. from PyQt5.QtCore import Qt



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

  13.     def setUpUI(self):
  14.         self.db = QSqlDatabase.addDatabase("QSQLITE")
  15.         self.db.setDatabaseName('./db/LibraryManagement.db')
  16.         self.db.open()
  17.         # 分为两块,上方是已借未归还书,下方是已归还书
  18.         self.layout = QVBoxLayout(self)
  19.         # Label设置
  20.         self.borrowedLabel = QLabel("未归还:")
  21.         self.returnedLabel = QLabel("已归还:")
  22.         self.borrowedLabel.setFixedHeight(32)
  23.         self.borrowedLabel.setFixedWidth(60)
  24.         self.returnedLabel.setFixedHeight(32)
  25.         self.returnedLabel.setFixedWidth(60)
  26.         font = QFont()
  27.         font.setPixelSize(18)
  28.         self.borrowedLabel.setFont(font)
  29.         self.returnedLabel.setFont(font)

  30.         # Table和Model
  31.         self.borrowedTableView = QTableView()
  32.         self.borrowedTableView.horizontalHeader().setStretchLastSection(True)
  33.         self.borrowedTableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
  34.         self.borrowedTableView.setEditTriggers(QAbstractItemView.NoEditTriggers)
  35.         self.returnedTableView = QTableView()
  36.         self.returnedTableView.horizontalHeader().setStretchLastSection(True)
  37.         self.returnedTableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
  38.         self.returnedTableView.setEditTriggers(QAbstractItemView.NoEditTriggers)

  39.         self.borrowedTableModel = QSqlTableModel()
  40.         self.returnedTableModel = QSqlTableModel()
  41.         self.borrowedTableView.setModel(self.borrowedTableModel)
  42.         self.returnedTableView.setModel(self.returnedTableModel)
  43.         self.borrowedTable()
  44.         self.borrowedTableModel.setHeaderData(0, Qt.Horizontal, "书名")
  45.         self.borrowedTableModel.setHeaderData(1, Qt.Horizontal, "书号")
  46.         self.borrowedTableModel.setHeaderData(2, Qt.Horizontal, "作者")
  47.         self.borrowedTableModel.setHeaderData(3, Qt.Horizontal, "分类")
  48.         self.borrowedTableModel.setHeaderData(4, Qt.Horizontal, "出版社")
  49.         self.borrowedTableModel.setHeaderData(5, Qt.Horizontal, "出版时间")
  50.         self.borrowedTableModel.setHeaderData(6, Qt.Horizontal, "借出时间")

  51.         self.returnedTable()
  52.         self.returnedTableModel.setHeaderData(0, Qt.Horizontal, "书名")
  53.         self.returnedTableModel.setHeaderData(1, Qt.Horizontal, "书号")
  54.         self.returnedTableModel.setHeaderData(2, Qt.Horizontal, "作者")
  55.         self.returnedTableModel.setHeaderData(3, Qt.Horizontal, "分类")
  56.         self.returnedTableModel.setHeaderData(4, Qt.Horizontal, "出版社")
  57.         self.returnedTableModel.setHeaderData(5, Qt.Horizontal, "出版时间")
  58.         self.returnedTableModel.setHeaderData(6, Qt.Horizontal, "借阅时间")
  59.         self.returnedTableModel.setHeaderData(7, Qt.Horizontal, "归还时间")

  60.         self.layout.addWidget(self.borrowedLabel)
  61.         self.layout.addWidget(self.borrowedTableView)
  62.         self.layout.addWidget(self.returnedLabel)
  63.         self.layout.addWidget(self.returnedTableView)
  64.         return

  65.     def borrowedTable(self):
  66.         self.model = QSqlTableModel(self)
  67.         self.borrowedTableModel.setTable('Book')
  68.         self.model.setEditStrategy(QSqlTableModel.OnFieldChange)
  69.         self.model.select()
  70.         return

  71.     def returnedTable(self):
  72.         self.model = QSqlTableModel(self)
  73.         self.returnedTableModel.setTable("Book")
  74.         self.model.setEditStrategy(QSqlTableModel.OnFieldChange)
  75.         self.model.select()
  76.         return


  77. if __name__ == "__main__":
  78.     app = QApplication(sys.argv)
  79.     app.setWindowIcon(QIcon("./images/MainWindow_1.png"))
  80.     #app.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
  81.     mainMindow = BorrowStatusViewer("PB15000135")
  82.     mainMindow.show()
  83.     sys.exit(app.exec_())
复制代码
为什么就是显示不了数据,是什么情况,求大哥解答!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号

GMT+8, 2018-8-15 11:52

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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