| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import os
- from PyQt5.QtCore import QSize, Qt
- from PyQt5.QtSql import QSqlDatabase, QSqlTableModel
- from PyQt5.QtWidgets import QApplication, QMainWindow, QTableView
- basedir = os.path.dirname(__file__)
- class MainWindow(QMainWindow):
- def __init__(self):
- super().__init__()
- self.table = QTableView()
- self.db = QSqlDatabase("QSQLITE")
- self.db.setDatabaseName(os.path.join(basedir, "Chinook_Sqlite.sqlite"))
- self.db.open()
- self.model = QSqlTableModel(db=self.db)
- self.model.setTable("Track")
- # idx = self.model.fieldIndex("Milliseconds")
- # self.model.setSort(idx, Qt.DescendingOrder)
- column_titles = {
- "Name": "Name",
- "Composer": "Composer",
- "AlbumId": "Album (ID)",
- "MediaTypeId": "Media Type (ID)",
- "GenreId": "Genre (ID)",
- }
- for n, t in column_titles.items():
- idx = self.model.fieldIndex(n)
- self.model.setHeaderData(idx, Qt.Horizontal, t)
- # self.model.setHeaderData(1, Qt.Horizontal, "Name")
- self.model.select()
- # self.model.setEditStrategy(QSqlTableModel.OnRowChange)
- self.table.setModel(self.model)
- self.setMinimumSize(QSize(1024, 600))
- self.setCentralWidget(self.table)
- if __name__ == "__main__":
- import sys
- app = QApplication(sys.argv)
- window = MainWindow()
- window.show()
- sys.exit(app.exec_())
|