def llenarTablaRestr(self): self.tablaRestricciones.clear() self.tablaRestricciones.setRowCount(self.numRestricciones) self.tablaRestricciones.setColumnCount(self.numVariables) for j in range(self.numVariables): item1 = QTableWidgetItem(f"X{j+1}") item1.setBackground(QtGui.QColor(37, 40, 80)) item1.setForeground(QtGui.QColor(255, 255, 255)) self.tablaRestricciones.setHorizontalHeaderItem(j, item1) for i in range(self.numVariables, self.numVariables + 2): item = QTableWidgetItem(" ") self.tablaRestricciones.insertColumn(i) item.setBackground(QtGui.QColor(37, 40, 80)) item.setForeground(QtGui.QColor(255, 255, 255)) self.tablaRestricciones.setHorizontalHeaderItem(i, item) fila = 0 colum = self.numVariables for j in range(self.numRestricciones): self.cmbSigno = QComboBox() self.cmbSigno.addItem("<=") self.tablaRestricciones.setCellWidget(fila, colum, self.cmbSigno) fila += 1
def pintarPivote(self): fila = self.variableSalida() # ubicacion de la variable de salida col = self.variableEntrada() # ubicacion de la variable de entrada pivote = self.tablaU.item(fila, col).text() item = QTableWidgetItem(str(pivote)) item.setBackground(QtGui.QColor(244, 67, 54)) self.tablaU.setItem(fila, col, item)
def llenarTablaRestr(self): self.tablaRestricciones.clear() self.tablaRestricciones.setRowCount(self.numRestricciones) self.tablaRestricciones.setColumnCount(self.numVariables) for j in range(self.numVariables): item1 = QTableWidgetItem(f"X{j+1}") item1.setBackground(QtGui.QColor(0, 153, 153)) self.tablaRestricciones.setHorizontalHeaderItem(j, item1) for i in range(self.numVariables, self.numVariables + 2): item = QTableWidgetItem(" ") self.tablaRestricciones.insertColumn(i) item.setBackground(QtGui.QColor(0, 153, 153)) self.tablaRestricciones.setHorizontalHeaderItem(i, item) fila = 0 colum = self.numVariables cmbMeth = self.comboMetodo for j in range(self.numRestricciones): self.cmbSigno = QComboBox() self.cmbSigno.addItem("<=") if cmbMeth.currentIndex() == 1: self.cmbSigno.addItem(">=") self.cmbSigno.addItem("=") self.tablaRestricciones.setCellWidget(fila, colum, self.cmbSigno) fila += 1
def getProblems(self): self.remindLabel.setVisible(False) self.recommendLabel.setVisible(False) self.newrecord.setVisible(False) self.table.setVisible(True) self.aboutcontent.setVisible(False) print('heregetproblem') self.connection = sqlite3.connect("database/oj.db") Data = self.connection.execute( "SELECT id,name,level,tags,AC,ACrate FROM problem Order By id") self.connection.commit() Data = Data.fetchall() row = len(Data) #取得记录个数,用于设置表格的行数 vol = len(Data[0]) #取得字段数,用于设置表格的列数 print(row) print(vol) self.table.setRowCount(row) self.table.setColumnCount(vol) self.table.setHorizontalHeaderLabels( ['编号', '题目名字', '题目等级', '题目标签', 'AC人数', 'AC率']) self.table.verticalHeader().setVisible(False) # self.table.horizontalHeader().setVisible(False) self.table.horizontalHeader().setFixedHeight(25) for index in range(self.table.columnCount()): headItem = self.table.horizontalHeaderItem(index) # headItem.setBackground(QBrush(QColor(28, 28, 28))) headItem.setFont(QFont("song", 9, QFont.Bold)) headItem.setForeground(QBrush(QColor(137, 199, 161))) headItem.setTextAlignment(Qt.AlignLeft | Qt.AlignVCenter) self.table.setEditTriggers(QAbstractItemView.NoEditTriggers) self.table.setColumnWidth(0, 40) self.table.setColumnWidth(1, 80) self.table.setColumnWidth(2, 90) self.table.setColumnWidth(3, 230) self.table.setColumnWidth(4, 50) self.table.setColumnWidth(5, 85) self.table.setRowHeight(0, 30) self.table.setRowHeight(1, 30) self.table.setRowHeight(2, 30) self.table.setRowHeight(3, 30) self.table.setRowHeight(4, 30) self.table.setRowHeight(5, 30) self.table.setRowHeight(6, 30) self.table.setRowHeight(7, 30) self.table.setRowHeight(8, 30) self.table.setRowHeight(9, 30) for i in range(row): if i % 2 == 0: for j in range(vol): temp_data = Data[i][j] #临时记录,不能直接插入表格 data = QTableWidgetItem(str(temp_data)) #转换后可插入表格 data.setBackground(QBrush(QColor(245, 245, 244))) self.table.setItem(i, j, data) else: for j in range(vol): temp_data = Data[i][j] #临时记录,不能直接插入表格 data = QTableWidgetItem(str(temp_data)) #转换后可插入表格 data.setBackground(QBrush(QColor(254, 254, 254))) self.table.setItem(i, j, data)
def llenarTablaVar(self): self.tablaVariables.clear() self.tablaVariables.setRowCount(1) self.tablaVariables.setColumnCount(self.numVariables) for i in range(self.numVariables): item1 = QTableWidgetItem(f"X{i+1}") item1.setBackground(QtGui.QColor(0, 153, 153)) self.tablaVariables.setHorizontalHeaderItem(i, item1)
def addbutton(self): self.connection = sqlite3.connect("database/oj.db") f = open(r'database/username.txt') username = f.read() f.close() topTen = self.connection.execute( "SELECT user1,user2,user3,user4,user5,user6,user7,user8,user9,user10 FROM secondrecommend WHERE username = '******'" % username) # print(topTen) self.connection.commit() # print(Data) topTen = topTen.fetchall() self.table.setRowCount(10) self.table.setColumnCount(6) self.table.setHorizontalHeaderLabels( ['编号', '题目名字', '题目等级', '题目标签', 'AC率', 'AC人数']) self.table.verticalHeader().setVisible(False) self.table.horizontalHeader().setFixedHeight(25) for index in range(self.table.columnCount()): headItem = self.table.horizontalHeaderItem(index) headItem.setFont(QFont("song", 9, QFont.Bold)) headItem.setForeground(QBrush(QColor(137, 199, 161))) headItem.setTextAlignment(Qt.AlignLeft | Qt.AlignVCenter) self.table.setEditTriggers(QAbstractItemView.NoEditTriggers) self.table.setColumnWidth(0, 40) self.table.setColumnWidth(1, 120) self.table.setColumnWidth(2, 90) self.table.setColumnWidth(3, 186) self.table.setColumnWidth(4, 98) self.table.setColumnWidth(5, 60) self.table.setRowHeight(0, 38) self.table.setRowHeight(1, 38) self.table.setRowHeight(2, 38) self.table.setRowHeight(3, 38) self.table.setRowHeight(4, 38) self.table.setRowHeight(5, 38) self.table.setRowHeight(6, 38) self.table.setRowHeight(7, 38) self.table.setRowHeight(8, 38) self.table.setRowHeight(9, 38) for i in range(10): Data = self.connection.execute( "SELECT id,name,level,tags,ACrate,AC FROM problem where id = '%s'" % topTen[0][i]) Data = Data.fetchall() if i % 2 == 0: for j in range(6): temp_data = Data[0][j] #临时记录,不能直接插入表格 data = QTableWidgetItem(str(temp_data)) #转换后可插入表格 data.setBackground(QBrush(QColor(245, 245, 244))) self.table.setItem(i, j, data) else: for j in range(6): temp_data = Data[0][j] #临时记录,不能直接插入表格 data = QTableWidgetItem(str(temp_data)) #转换后可插入表格 data.setBackground(QBrush(QColor(254, 254, 254))) self.table.setItem(i, j, data)
def addGroupe (self,groupe_name,type_alert): item_name =QTableWidgetItem(groupe_name) item_type =QTableWidgetItem(type_alert) if item_type == "delete": item_name.setBackground(QBrush("red")) item_type.setBackground(QBrush("red")) elif item_type == "new": item_name.setBackground(QBrush("green")) item_type.setBackground(QBrush("green")) self.list_modified_groupes.insertRow(0) self.list_modified_groupes.setItem(0,0,item_name) self.list_modified_groupes.setItem(0,1,item_type)
def getRecord(self): self.remindLabel.setVisible(False) self.recommendLabel.setVisible(False) self.newrecord.setVisible(False) self.table.setVisible(True) self.aboutcontent.setVisible(False) print('heregetrecord') f = open(r'database/username.txt') username = f.read() f.close() self.connection = sqlite3.connect("database/oj.db") Data = self.connection.execute( "SELECT id,proname,runmodel,time FROM userhistory WHERE username = '******'" % username) self.connection.commit() Data = Data.fetchall() if Data != []: row = len(Data) #取得记录个数,用于设置表格的行数 vol = len(Data[0]) #取得字段数,用于设置表格的列数 print(row) print(vol) self.table.setRowCount(row) self.table.setColumnCount(vol) self.table.setHorizontalHeaderLabels( ['编号', '题目名字', '测评结果', '提交时间']) self.table.verticalHeader().setVisible(False) # self.table.horizontalHeader().setVisible(False) self.table.horizontalHeader().setFixedHeight(25) for index in range(self.table.columnCount()): headItem = self.table.horizontalHeaderItem(index) headItem.setFont(QFont("song", 9, QFont.Bold)) headItem.setForeground(QBrush(QColor(137, 199, 161))) headItem.setTextAlignment(Qt.AlignLeft | Qt.AlignVCenter) self.table.setEditTriggers(QAbstractItemView.NoEditTriggers) self.table.setColumnWidth(0, 55) self.table.setColumnWidth(1, 175) self.table.setColumnWidth(2, 185) self.table.setColumnWidth(3, 160) self.table.setRowHeight(0, 30) self.table.setRowHeight(1, 30) self.table.setRowHeight(2, 30) self.table.setRowHeight(3, 30) self.table.setRowHeight(4, 30) self.table.setRowHeight(5, 30) self.table.setRowHeight(6, 30) self.table.setRowHeight(7, 30) self.table.setRowHeight(8, 30) self.table.setRowHeight(9, 30) for i in range(row): if i % 2 == 0: for j in range(vol): temp_data = Data[i][j] #临时记录,不能直接插入表格 data = QTableWidgetItem(str(temp_data)) #转换后可插入表格 data.setBackground(QBrush(QColor(245, 245, 244))) self.table.setItem(i, j, data) else: for j in range(vol): temp_data = Data[i][j] #临时记录,不能直接插入表格 data = QTableWidgetItem(str(temp_data)) #转换后可插入表格 data.setBackground(QBrush(QColor(254, 254, 254))) self.table.setItem(i, j, data) else: self.recommendLabel.setVisible(False) self.newrecord.setVisible(False) self.table.setVisible(False) self.remindLabel.setVisible(True)
def getRecommend(self): self.remindLabel.setVisible(False) self.recommendLabel.setVisible(True) self.aboutcontent.setVisible(False) self.connection = sqlite3.connect("database/oj.db") f = open(r'database/username.txt') username = f.read() f.close() Data2 = self.connection.execute( "SELECT id,proname,level,tags,round(acrate,9) FROM newrecord where username= '******'" % username) topTen = self.connection.execute( "SELECT user1,user2,user3,user4,user5,user6,user7,user8,user9,user10 FROM firstrecommend WHERE username = '******'" % username) topTen = topTen.fetchall() print(topTen) if topTen != []: self.connection.commit() # print(Data) self.table.setRowCount(10) self.table.setColumnCount(6) self.table.setHorizontalHeaderLabels( ['编号', '题目名字', '题目等级', '题目标签', 'AC率', 'AC人数']) self.table.verticalHeader().setVisible(False) # self.table.horizontalHeader().setVisible(False) self.table.horizontalHeader().setFixedHeight(25) for index in range(self.table.columnCount()): headItem = self.table.horizontalHeaderItem(index) headItem.setFont(QFont("song", 9, QFont.Bold)) headItem.setForeground(QBrush(QColor(137, 199, 161))) headItem.setTextAlignment(Qt.AlignLeft | Qt.AlignVCenter) self.table.setEditTriggers(QAbstractItemView.NoEditTriggers) self.table.setColumnWidth(0, 40) self.table.setColumnWidth(1, 120) self.table.setColumnWidth(2, 90) self.table.setColumnWidth(3, 186) self.table.setColumnWidth(4, 98) self.table.setColumnWidth(5, 60) self.table.setRowHeight(0, 38) self.table.setRowHeight(1, 38) self.table.setRowHeight(2, 38) self.table.setRowHeight(3, 38) self.table.setRowHeight(4, 38) self.table.setRowHeight(5, 38) self.table.setRowHeight(6, 38) self.table.setRowHeight(7, 38) self.table.setRowHeight(8, 38) self.table.setRowHeight(9, 38) for i in range(10): Data = self.connection.execute( "SELECT id,name,level,tags,ACrate,AC FROM problem where id = '%s'" % topTen[0][i]) Data = Data.fetchall() if i % 2 == 0: for j in range(6): temp_data = Data[0][j] #临时记录,不能直接插入表格 data = QTableWidgetItem(str(temp_data)) #转换后可插入表格 data.setBackground(QBrush(QColor(245, 245, 244))) self.table.setItem(i, j, data) else: for j in range(6): temp_data = Data[0][j] #临时记录,不能直接插入表格 data = QTableWidgetItem(str(temp_data)) #转换后可插入表格 data.setBackground(QBrush(QColor(254, 254, 254))) self.table.setItem(i, j, data) Data2 = Data2.fetchall() row = len(Data2) #取得记录个数,用于设置表格的行数 vol = len(Data2[0]) + 1 #取得字段数,用于设置表格的列数 # print(row) # print(vol) self.newrecord.setRowCount(row) self.newrecord.setColumnCount(vol) self.newrecord.setHorizontalHeaderLabels( ['编号', '题目名字', '题目等级', '标签', 'AC率', '是否提交']) self.newrecord.verticalHeader().setVisible(False) self.newrecord.horizontalHeader().setVisible(False) # self.table.horizontalHeader().setVisible(False) self.newrecord.horizontalHeader().setFixedHeight(40) for index in range(self.newrecord.columnCount()): headItem = self.newrecord.horizontalHeaderItem(index) headItem.setFont(QFont("song", 9, QFont.Bold)) headItem.setForeground(QBrush(QColor(137, 199, 161))) headItem.setTextAlignment(Qt.AlignLeft | Qt.AlignVCenter) self.newrecord.setEditTriggers(QAbstractItemView.NoEditTriggers) self.newrecord.setColumnWidth(0, 40) self.newrecord.setColumnWidth(1, 120) self.newrecord.setColumnWidth(2, 90) self.newrecord.setColumnWidth(3, 186) self.newrecord.setColumnWidth(4, 98) self.newrecord.setColumnWidth(5, 60) self.newrecord.setRowHeight(0, 43) #设置i行的高度 for i in range(row): for j in range(vol - 1): if j < vol: temp_data = Data2[i][j] #临时记录,不能直接插入表格 print(temp_data) data2 = QTableWidgetItem(str(temp_data)) #转换后可插入表格 data2.setBackground(QBrush(QColor(250, 250, 250))) self.newrecord.setItem(i, j, data2) else: data2 = QTableWidgetItem(str(0)) #转换后可插入表格 self.newrecord.setItem(i, j, data2) self.addButton = QtWidgets.QPushButton() self.addButton.setStyleSheet( "background: rgb( 137,199,161);\n" "color: white;\n" "border-bottom: 2px solid rgb( 137,199,161);\n" "border-radius: 2px;" "font:bold;") self.addButton.setObjectName("pushButton1") self.addButton.setText("提交") self.addButton.clicked.connect(self.addbutton) self.newrecord.setCellWidget(0, 5, self.addButton) self.newrecord.setVisible(True) self.table.setVisible(True) self.aboutcontent.setVisible(False) else: self.table.setRowCount(10) self.table.setColumnCount(6) self.table.setHorizontalHeaderLabels( ['编号', '题目名字', '题目等级', '题目标签', 'AC率', 'AC人数']) self.table.verticalHeader().setVisible(False) # self.table.horizontalHeader().setVisible(False) self.table.horizontalHeader().setFixedHeight(25) for index in range(self.table.columnCount()): headItem = self.table.horizontalHeaderItem(index) headItem.setFont(QFont("song", 9, QFont.Bold)) headItem.setForeground(QBrush(QColor(137, 199, 161))) headItem.setTextAlignment(Qt.AlignLeft | Qt.AlignVCenter) self.table.setEditTriggers(QAbstractItemView.NoEditTriggers) self.table.setColumnWidth(0, 40) self.table.setColumnWidth(1, 120) self.table.setColumnWidth(2, 90) self.table.setColumnWidth(3, 186) self.table.setColumnWidth(4, 98) self.table.setColumnWidth(5, 60) self.table.setRowHeight(0, 38) self.table.setRowHeight(1, 38) self.table.setRowHeight(2, 38) self.table.setRowHeight(3, 38) self.table.setRowHeight(4, 38) self.table.setRowHeight(5, 38) self.table.setRowHeight(6, 38) self.table.setRowHeight(7, 38) self.table.setRowHeight(8, 38) self.table.setRowHeight(9, 38) for i in range(10): Data = self.connection.execute( "SELECT id,name,level,tags,ACrate,AC FROM begin;") Data = Data.fetchall() print(Data) if i % 2 == 0: for j in range(6): temp_data = Data[i][j] #临时记录,不能直接插入表格 data = QTableWidgetItem(str(temp_data)) #转换后可插入表格 data.setBackground(QBrush(QColor(245, 245, 244))) self.table.setItem(i, j, data) else: for j in range(6): temp_data = Data[i][j] #临时记录,不能直接插入表格 data = QTableWidgetItem(str(temp_data)) #转换后可插入表格 data.setBackground(QBrush(QColor(254, 254, 254))) self.table.setItem(i, j, data) self.newrecord.setVisible(False) self.table.setVisible(True) self.aboutcontent.setVisible(False)