class Window2(QMainWindow):
def __init__(self):
super().__init__()
win = QWidget()
self.title = "Court Case Database Management System1"
self.top = 200
self.left = 500
self.width = 400
self.height = 300
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
layout = QVBoxLayout()
self.tabwidget = QTabWidget()
win = self.tabwidget
self.tab1 = QWidget()
self.tab2 = QWidget()
self.tab3 = QWidget()
self.tab4 = QWidget()
self.tab5 = QWidget()
self.tab6 = QWidget()
self.tab1.layouttab1 = QVBoxLayout(self)
self.tableWidget = QTableWidget()
db = QSqlDatabase.addDatabase("QMYSQL")
db.setHostName("localhost")
db.setDatabaseName("cs_220")
db.setUserName("root")
db.setPassword("basimehsan")
ok = db.open()
self.model = QSqlQueryModel()
self.model.setQuery("select * from cs_220.lawyer")
self.model.setHeaderData(0, Qt.Horizontal, "Lawyer Id")
self.model.setHeaderData(1, Qt.Horizontal, "First Name")
self.model.setHeaderData(2, Qt.Horizontal, "Last Name")
self.model.setHeaderData(3, Qt.Horizontal, "Specialization")
self.model.setHeaderData(4, Qt.Horizontal, "Years of Experience")
self.model.setHeaderData(5, Qt.Horizontal, "Phone")
self.model.setHeaderData(6, Qt.Horizontal, "Email")
self.view = QTableView()
self.view.setModel(self.model)
self.view.setItemDelegate(QSqlRelationalDelegate(self.view))
self.view.show()
self.tab1.layouttab1.addWidget(self.view)
self.tab1.setLayout(self.tab1.layouttab1)
self.tabwidget.addTab(self.tab1, "Lawyer")
self.tabwidget.addTab(self.tab2, "Judge")
self.tabwidget.addTab(self.tab3, "Plaintiff")
self.tabwidget.addTab(self.tab4, "Defendant")
self.tabwidget.addTab(self.tab5, "Court")
self.tabwidget.addTab(self.tab6, "Case")
#win.show()
self.setCentralWidget(win)
#self.show()
我还不能完全测试MRE,但是我创建了以下代码,该代码应允许我们获得一些错误消息,以提供有关问题的信息。
class Window2(QMainWindow):
def __init__(self):
super().__init__()
win = QWidget()
self.title = "Court Case Database Management System1"
self.top = 200
self.left = 500
self.width = 400
self.height = 300
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
layout = QVBoxLayout()
self.tabwidget = QTabWidget()
win = self.tabwidget
self.tab1 = QWidget()
self.tab2 = QWidget()
self.tab3 = QWidget()
self.tab4 = QWidget()
self.tab5 = QWidget()
self.tab6 = QWidget()
self.tab1.layouttab1 = QVBoxLayout()
self.tableWidget = QTableWidget()
self.view = QTableView()
self.tab1.layouttab1.addWidget(self.view)
self.tab1.setLayout(self.tab1.layouttab1)
for name, tab in zip(
("Lawyer", "Judge", "Plaintiff", "Defendant", "Court", "Case"),
(self.tab1, self.tab2, self.tab3, self.tab4, self.tab5, self.tab6),
):
self.tabwidget.addTab(tab, name)
self.setCentralWidget(win)
db = QSqlDatabase.addDatabase("QSQLITE")
db.setHostName("localhost")
db.setDatabaseName("cs_220")
db.setUserName("root")
db.setPassword("basimehsan")
if not db.open():
print(db.lastError().text())
return
self.model = QSqlQueryModel()
self.view.setModel(self.model)
self.model.setQuery("select * from cs_220.lawyer")
if self.model.lastError().isValid():
print(self.model.lastError().text())
return
for i, text in enumerate(
(
"Lawyer Id",
"First Name",
"Last Name",
"Specialization",
"Years of Experience",
"Phone",
"Email",
)
):
self.model.setHeaderData(i, Qt.Horizontal, name)
self.view.setItemDelegate(QSqlRelationalDelegate(self.view))