From 8535a8dc29e96bb2e22d14ab6d63b8651cc3dcb0 Mon Sep 17 00:00:00 2001 From: iridiumR Date: Sun, 4 Jun 2023 14:38:20 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=94=B6=E5=85=A5=E6=94=AF=E5=87=BA?= =?UTF-8?q?=E5=88=86=E5=88=AB=E7=94=BB=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/budget/_stat.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/budget/_stat.py b/src/budget/_stat.py index 1dd765b..faeed34 100644 --- a/src/budget/_stat.py +++ b/src/budget/_stat.py @@ -11,11 +11,14 @@ class StatTab(TabPage): super().__init__() self.initUI() self.pg = parent.pg + self.mode = 'out' def initUI(self): # 按钮 self.outButton = QPushButton('Expense') self.inButton = QPushButton('Income') + self.outButton.clicked.connect(self.onOutButtonClicked) + self.inButton.clicked.connect(self.onInButtonClicked) buttonLayout = QHBoxLayout() buttonLayout.addWidget(self.outButton) buttonLayout.addWidget(self.inButton) @@ -47,15 +50,19 @@ class StatTab(TabPage): statLayout.addLayout(calenderLayout) self.setLayout(statLayout) - + def onOutButtonClicked(self): + self.mode = 'out' + self.selected() + + def onInButtonClicked(self): + self.mode = 'in' + self.selected() def onCalendarClicked(self, date): pass def onCalendarPageChanged(self, year, month): - print(year, month) - # 合计分类的交易量 self.pg.execute("SELECT c_id, sum(amount)::numeric::float8 FROM transaction WHERE c_id IS NOT NULL and \ time BETWEEN %s AND %s GROUP BY c_id ORDER BY c_id", \ @@ -64,7 +71,7 @@ class StatTab(TabPage): print(self.statData) # 获取此月所有交易类别 - self.pg.execute("SELECT c_id, meta->>'name' FROM category \ + self.pg.execute("SELECT c_id, meta->>'type', meta->>'name' FROM category \ WHERE c_id in (SELECT c_id FROM transaction WHERE time between %s and %s GROUP BY c_id) \ ORDER BY c_id", \ (datetime.date(year, month, 1), datetime.date(year, month+1, 1),)) @@ -74,8 +81,10 @@ class StatTab(TabPage): # 填充饼状图 self.chart.removeAllSeries() series = QPieSeries() + for i in range(len(self.statData)): - series.append(self.categoryData[i][1], self.statData[i][1]) + if (self.categoryData[i][1] == self.mode): + series.append(self.categoryData[i][2], self.statData[i][1]) self.chart.addSeries(series) def selected(self):