我正在尝试将我的数据库调用到TableWidget中,但它不会
另外,我想添加到特定的列但它也失败了,没有错误显示,代码正常运行,但没有任何反应
这是我的数据库管理员文件
#!/usr/bin/python
import sqlite3
class DatabaseManager(object):
def __init__(self, database, table):
self.db = database
self.table = table
self.con = sqlite3.connect('students.db')
self.cursor = self.con.cursor()
self.cursor.execute('''CREATE TABLE IF NOT EXISTS`degrees` (`s_id` INTEGER PRIMARY KEY AUTOINCREMENT,`name` TEXT NOT NULL,`mid` INTEGER,
`lec` INTEGER,`res` INTEGER,`term` INTEGER,`final` INTEGER,`end` INTEGER);''')
self.con.commit()
def gettable(self):
return self.cursor.execute("SELECT * FROM degrees")
def getcols(self):
return self.cursor.execute("SHOW COLUMNS FROM degrees")
def runcmd(self, cmd):
print("RUNNING CMD" + cmd)
try:
msg = self.cursor.fetchall()
except:
msg = self.cursor.fetchone()
return msg
def addentry(self, message):
cmd = "INSERT INTO" + self.table + "(name, mid, lec, res, term, final, end)"
cmd += "VALUES (%s, %s, %s, %s, %s, %s, %s);" %(name, mid, lec, res, term, final, end)
self.cursor.execute(cmd)
def __del__(self):
self.con.commit()
self.cursor.close()
self.con.close()
这是我的主文件
#!/usr/bin/python
# encoding: utf-8
import sys
from PyQt4 import QtGui, QtCore
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from Modules.Databases import DatabaseManager
f = open('style.stylesheet', 'r')
styles = f.read()
f.close()
class Tabs(QTabWidget):
def __init__(self, parent=None):
super(Tabs, self).__init__(parent)
self.dbu = DatabaseManager('students.db', 'degrees')
self.tab1 = QWidget()
self.tab2 = QWidget()
self.addTab(self.tab1, "Tab 1")
self.addTab(self.tab2, "Tab 2")
self.tab1ui()
self.tab2ui()
self.setWindowTitle("نـظـام إدارة بـيـانـات الـطـلاب")
self.setFixedSize(800, 400)
self.setStyleSheet(styles)
self.setWindowIcon(QIcon('icon.png'))
# self.UpdateTree()
def tab1ui(self):
layout = QFormLayout()
layout.setVerticalSpacing(20)
h_l = QHBoxLayout()
h_l.setSpacing(10)
search_line = QLineEdit()
search_btn = QPushButton()
search_btn.setText('Search')
h_l.addWidget(search_line)
h_l.addWidget(search_btn)
layout.addItem(h_l)
layout.addRow("ID", QTextBrowser())
layout.addRow("Name", QTextBrowser())
layout.addRow("Mid-Term", QTextBrowser())
layout.addRow("Lectures", QTextBrowser())
layout.addRow("Responding", QTextBrowser())
layout.addRow("Term - Degrees", QTextBrowser())
layout.addRow("Final - Exam", QTextBrowser())
layout.addRow("End - Degrees", QTextBrowser())
self.setTabText(0, "Data View")
self.tab1.setLayout(layout)
def tab2ui(self):
layout = QFormLayout()
d_view = QTableWidget()
id1 = QLineEdit()
name = QLineEdit()
term = QLineEdit()
mid = QLineEdit()
lec = QLineEdit()
final = QLineEdit()
end = QLineEdit()
add_btn = QPushButton()
add_btn.setText("Add New")
add_btn.setFixedSize(100, 50)
edit_btn = QPushButton()
edit_btn.setText("Edit Current")
edit_btn.setFixedSize(100, 50)
del_btn = QPushButton()
del_btn.setText("Delete Current")
del_btn.setFixedSize(100, 50)
end_less = QLineEdit()
end_greater = QLineEdit()
term_less = QLineEdit()
term_greater = QLineEdit()
update_btn = QPushButton()
update_btn.setText("Filter")
update_btn.setFixedSize(50, 30)
h_l = QHBoxLayout()
h_l.setSpacing(10)
h_l.addWidget(QLabel('ID'))
h_l.addWidget(id1)
h_l.addWidget(QLabel('Name'))
h_l.addWidget(name)
h_l.addWidget(QLabel('Term - Degrees'))
h_l.addWidget(term)
h_l_2 = QHBoxLayout()
h_l_2.setSpacing(10)
h_l_2.addWidget(QLabel('Mid - Term'))
h_l_2.addWidget(mid)
h_l_2.addWidget(QLabel('Lectures'))
h_l_2.addWidget(lec)
h_l_2.addWidget(QLabel('Final'))
h_l_2.addWidget(final)
h_l_2.addWidget(QLabel("End - Degrees"))
h_l_2.addWidget(end)
h_l_3 = QHBoxLayout()
h_l_3.setSpacing(10)
h_l_3.addStretch()
h_l_3.addWidget(add_btn)
h_l_3.addWidget(edit_btn)
h_l_3.addWidget(del_btn)
h_l_3.addStretch()
h_l_4 = QHBoxLayout()
h_l_4.setSpacing(10)
h_l_4.addWidget(QLabel('Term <'))
h_l_4.addWidget(term_less)
h_l_4.addWidget(QLabel('Term >'))
h_l_4.addWidget(term_greater)
h_l_4.addWidget(QLabel('End <'))
h_l_4.addWidget(end_less)
h_l_4.addWidget(QLabel('End >'))
h_l_4.addWidget(end_greater)
h_l_4.addWidget(update_btn)
layout.addWidget(d_view)
layout.addItem(h_l)
layout.addItem(h_l_2)
layout.addItem(h_l_3)
layout.addItem(h_l_4)
self.setTabText(1, "Data Edit")
self.tab2.setLayout(layout)
return name
@QtCore.pyqtSignature("on_add_btn_clicked()")
def add(self):
name = self.tab2.name
self.dbu.addentry(name)
self.UpdateTree()
def updatetree(self):
col = self.dbu.getcols()
table = self.dbu.gettable()
for c in range(len(col)):
self.d_view.headerItem().setText(c, col)
self.d_view.clear()
for item in range(len(table)):
QTreeWidgetItem(self.d_view)
for value in range(len(table[item])):
self.d_view.topLeevelItem(item)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Tabs()
ex.show()
sys.exit(app.exec_())
我不知道那个bug在哪里,或者我的代码丢失了,所以像往常一样,我来找你寻求帮助