У меня уже есть данные игрока на моем компьютере, который состоит из 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_())