Я хочу показать файл базы данных на qtablewidget, используя sqlite3 и PyQt5 - PullRequest
0 голосов
/ 30 августа 2018

У меня уже есть данные игрока на моем компьютере, который состоит из 8908 строк и 3 столбцов. Я хочу показать данные на QTablewidget с именем 'SearchResult'.

1-я колонка: национальность 2-й столбец: PlayerName 3-я колонка: зарплата

Я посмотрел пост, в котором говорится, что нужно использовать qtsql, и попытался, однако он не работает.

Также я сделал LineEdit с именем SearchInput для поиска конкретного игрока, который содержит какое-то имя. например, если я наберу 'Ronal' в Lineedit и нажму кнопку, Tablewidget только покажет, что имя содержит 'Ronal'. Я не знаю, как сделать эту функцию.

Это мой код.

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtSql import QSqlDatabase, QSqlQuery
import sqlite3

conn = sqlite3.connect('C:/Users/Daniel/Desktop/FO4Player.db')
c = conn.cursor() 
c.execute('pragma foreign_keys = ON;')
conn.commit()

class Ui_SquadMaker(object):
    def load_inital_data(self):
        self.c.execute('Select * FROM table FO4Player')
        rows = self.c.fetchall()

        for row in rows:
            inx = rows.index(row)
            self.SearchResult.insertRow(inx)
            self.SearchResult.setItem(inx , 0 , QTableWidgetItem(row[1]))
            self.SearchResult.setItem(inx , 0 , QTableWidgetItem(row[2]))
            self.SearchResult.setItem(inx , 0 , QTableWidgetItem(row[3]))

     def setupUi(self, SquadMaker):
            SquadMaker.setObjectName("SquadMaker")
            SquadMaker.resize(1280, 718)
            self.centralwidget = QtWidgets.QWidget(SquadMaker)
            self.centralwidget.setObjectName("centralwidget")
            self.SearchInput = QtWidgets.QLineEdit(self.centralwidget)
            self.SearchInput.setGeometry(QtCore.QRect(965, 450, 211, 20))
            font = QtGui.QFont()
            font.setFamily("맑은 고딕")
            self.SearchInput.setFont(font)
            self.SearchInput.setObjectName("SearchInput")
            self.SearchClick = QtWidgets.QPushButton(self.centralwidget)
            self.SearchClick.setGeometry(QtCore.QRect(1184, 450, 81, 23))
            font = QtGui.QFont()
            font.setFamily("맑은 고딕")
            self.SearchClick.setFont(font)
            self.SearchClick.setObjectName("SearchClick")
            self.SearchResult = QtWidgets.QTableWidget(self.centralwidget)
            self.SearchResult.setGeometry(QtCore.QRect(965, 480, 301, 192))
            self.SearchResult.setRowCount(0)
            self.SearchResult.setColumnCount(3)
            self.SearchResult.setObjectName("SearchResult")
            item = QtWidgets.QTableWidgetItem()
            self.SearchResult.setHorizontalHeaderItem(0, item)
            item = QtWidgets.QTableWidgetItem()
            self.SearchResult.setHorizontalHeaderItem(1, item)
            item = QtWidgets.QTableWidgetItem()
            self.SearchResult.setHorizontalHeaderItem(2, item)
            SquadMaker.setCentralWidget(self.centralwidget)
            self.statusbar = QtWidgets.QStatusBar(SquadMaker)
            self.statusbar.setObjectName("statusbar")
            SquadMaker.setStatusBar(self.statusbar)

            self.retranslateUi(SquadMaker)
            QtCore.QMetaObject.connectSlotsByName(SquadMaker)

       def retranslateUi(self, SquadMaker):
            _translate = QtCore.QCoreApplication.translate
            SquadMaker.setWindowTitle(_translate("SquadMaker", "MainWindow"))
            self.SearchClick.setText(_translate("SquadMaker", "Search"))
            item = self.SearchResult.horizontalHeaderItem(0)
            item.setText(_translate("SquadMaker", "Nationality"))
            item = self.SearchResult.horizontalHeaderItem(1)
            item.setText(_translate("SquadMaker", "Player Name"))
            item = self.SearchResult.horizontalHeaderItem(2)
            item.setText(_translate("SquadMaker", "Salary"))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    SquadMaker = QtWidgets.QMainWindow()
    ui = Ui_SquadMaker()
    ui.setupUi(SquadMaker)
    SquadMaker.show()
    sys.exit(app.exec_())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...