-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathadd2table.py
65 lines (49 loc) · 1.79 KB
/
add2table.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import sys
from PyQt5 import QtWidgets, uic
from PyQt5.QtCore import QThread, pyqtSignal, pyqtSlot
import DB_manager
class App(QtWidgets.QDialog):
"""docstring for App"""
def __init__(self, database, tableName):
super().__init__()
self.tableName = tableName
uic.loadUi('simple_db_form.ui', self)
self.setWindowTitle('APP Pyqt Gui')
self.dbu = DB_manager.DatabaseUtility(database=database)
self.pushButton.clicked.connect(self.Commit)
self.worke = DB_handler(db=self.dbu, tableName=self.tableName)
self.worke.sig1.connect(self.UpdateTree)
self.worke.start()
@pyqtSlot()
def Commit(self):
text = self.lineEdit.text()
self.lineEdit.setText('')
self.dbu.AddEntryToTable(text)
self.worke.start()
@pyqtSlot(list, list)
def UpdateTree(self, col, table):
for c in range(len(col)):
self.treeWidget.headerItem().setText(c, col[c][0])
self.treeWidget.clear()
for item in range(len(table)):
QtWidgets.QTreeWidgetItem(self.treeWidget)
for value in range(len(table[item])):
self.treeWidget.topLevelItem(item).setText(value, str(table[item][value]))
class DB_handler(QThread):
sig1 = pyqtSignal(list, list)
def __init__(self, parent=None, db=None, tableName=None):
super(DB_handler, self).__init__(parent)
self.db = db
self.tableName = tableName
def run(self):
col = self.db.GetColumns(self.tableName)
table = self.db.GetTable(self.tableName)
self.sig1.emit(col, table)
if __name__ == '__main__':
db = 'myFirstDB'
tableName = 'test8'
app = QtWidgets.QApplication(sys.argv)
widget = App(db, tableName)
widget.show()
app.exec_()
app.exit()