コード例 #1
0
class Ui_StatisticForm(QWidget):
    def __init__(self, parent):
        super(Ui_StatisticForm, self).__init__(parent)
        self.parent = parent
        self.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.Window)
        self.setupUi(self)
        self.show()

    def setupUi(self, StatisticForm):
        StatisticForm.setObjectName("StatisticForm")
        StatisticForm.setFixedSize(725, 575)
        self.graphicsView = PlotWidget(StatisticForm)
        self.graphicsView.setGeometry(QtCore.QRect(35, 10, 680, 480))
        self.graphicsView.setObjectName("graphicsView")
        self.ResetStatistic_pushButton = QtWidgets.QPushButton(StatisticForm)
        self.ResetStatistic_pushButton.setGeometry(
            QtCore.QRect(535, 510, 180, 25))
        self.ResetStatistic_pushButton.setObjectName(
            "ResetStatistic_pushButton")
        self.retranslateUi(StatisticForm)
        QtCore.QMetaObject.connectSlotsByName(StatisticForm)
        self.ResetStatistic_pushButton.clicked.connect(self.reset_statistic)
        con = sqlite3.connect(self.parent.DataBaseName)
        cur = con.cursor()
        all_results = cur.execute(
            'select all_results from players where id = ?',
            (self.parent.currentPlayer, )).fetchone()[0].split(' ')
        con.commit()
        con.close()
        all_results = list(map(lambda x: int(x), all_results))
        self.graphicsView.plot([i for i in range(1,
                                                 len(all_results) + 1)],
                               all_results)

    def paintEvent(self, event):
        qp = QtGui.QPainter(self)
        Font = qp.font()
        Font.setPointSize(Font.pointSize() * 2)
        qp.setFont(Font)
        qp.setPen(QtCore.Qt.black)
        qp.translate(25, 475)
        qp.rotate(-90)
        qp.drawText(-10, 0, "Результат")
        qp.rotate(90)
        qp.drawText(25, 35, "Номер игры")
        qp.end()

    def reset_statistic(self):
        valid = QtWidgets.QMessageBox.question(
            self, 'Внимание', "Действительно сбросить статистику?",
            QtWidgets.QMessageBox.Yes, QtWidgets.QMessageBox.No)
        if valid == QtWidgets.QMessageBox.Yes:
            con = sqlite3.connect(self.parent.DataBaseName)
            cur = con.cursor()
            cur.execute('update players set all_results = "" where id = ?',
                        (self.parent.currentPlayer, ))
            cur.execute('update players set best_result = 0 where id = ?',
                        (self.parent.currentPlayer, ))
            con.commit()
            con.close()
            self.graphicsView.plot([0], [0])
            self.graphicsView.clear()
            self.graphicsView.scale(1.0, 1.0)
            self.parent.load_leaders_board()
            self.parent.BestScore_LineEdit.setText('0')
            self.setFocusPolicy(QtCore.Qt.StrongFocus)

    def retranslateUi(self, StatisticForm):
        _translate = QtCore.QCoreApplication.translate
        StatisticForm.setWindowTitle(_translate("StatisticForm", "Статистика"))
        self.ResetStatistic_pushButton.setText(
            _translate("StatisticForm", "Сбросить статистику"))