# -*- coding: utf-8 -*-
"""
Created on Thu Sep 17 14:14:15 2020
@author: 19749
"""
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import pandas as pd
df = pd.DataFrame({'': [],
'基金简称': [],
'基金代码': []})
class pandasModel(QAbstractTableModel):
def __init__(self, data):
QAbstractTableModel.__init__(self)
self._data = data
def rowCount(self, parent=None):
return self._data.shape[0]
def columnCount(self, parnet=None):
return self._data.shape[1]
def data(self, index, role=Qt.DisplayRole):
if index.isValid():
if role == Qt.DisplayRole:
return str(self._data.iloc[index.row(), index.column()])
return None
def headerData(self, col, orientation, role):
if orientation == Qt.Horizontal and role == Qt.DisplayRole:
return self._data.columns[col]
return None
class data:
def data11(self):
a = pd.read_csv('指数股票型.csv', encoding = "gb2312").T.reset_index(drop=False)
a.insert(2, '类别', '指数股票型')
a.columns = ['基金代码', '基金简称', '类别']
return a
def data12(self):
a = pd.read_csv('主动股票开放型.csv', encoding = "gb2312").T.reset_index(drop=False)
a.insert(2, '类别', '主动股票开放型')
a.columns = ['基金代码', '基金简称', '类别']
return a
def data21(self):
a = pd.read_csv('主动混合封闭型.csv', encoding = "gb2312").T.reset_index(drop=False)
a.insert(2, '类别', '主动混合封闭型')
a.columns = ['基金代码', '基金简称', '类别']
return a
def data22(self):
a = pd.read_csv('主动混合开放型.csv', encoding = "gb2312").T.reset_index(drop=False)
a.insert(2, '类别', '主动混合开放型')
a.columns = ['基金代码', '基金简称', '类别']
return a
def data31(self):
a = pd.read_csv('指数债券型.csv', encoding = "gb2312").T.reset_index(drop=False)
a.insert(2, '类别', '指数债券型')
a.columns = ['基金代码', '基金简称', '类别']
return a
def data32(self):
a = pd.read_csv('主动债券封闭型.csv', encoding = "gb2312").T.reset_index(drop=False)
a.insert(2, '类别', '主动债券封闭型')
a.columns = ['基金代码', '基金简称', '类别']
return a
def data33(self):
a = pd.read_csv('主动债券开放型.csv', encoding = "gb18030").T.reset_index(drop=False)
a.insert(2, '类别', '主动债券开放型')
a.columns = ['基金代码', '基金简称', '类别']
return a
def data_all(self):
a = pd.DataFrame({'基金代码': [], '基金简称': [], '类别': []})
for i in range(1,4):
for j in range(1,4):
try:
exec('global b\nb = self.data' + str(i) + str(j) + '()')
a = pd.concat([a, b])
except:
pass
return a
#指标树
l_f_1 = ['单位净值', '收益率', '换手率']
l_f_2 = ['最大回撤', '持仓行业']
l_f = [l_f_1, l_f_2]
class window2(QWidget):
def __init__(self):
super(window2,self).__init__()
self.setWindowTitle("同业分析")
self.resize(1700, 900)
self.vlt0 = QVBoxLayout(self)
self.top()
self.mainWindow()
def top(self):
self.hlt0 = QHBoxLayout()
self.vlt0.addLayout(self.hlt0)
self.btn01 = QPushButton('宏观经济指标')
self.btn01.setStyleSheet("background-color: rgb(222,211,140)")
self.btn01.setMaximumWidth(140)
self.btn02 = QPushButton('同业分析')
self.btn02.setStyleSheet("background-color: rgb(137,190,178)")
self.btn02.setMaximumWidth(180)
self.btn03 = QPushButton('第三页面')
self.btn03.setStyleSheet("background-color: rgb(222,211,140)")
self.btn03.setMaximumWidth(100)
self.hlt0.addWidget(self.btn01)
self.hlt0.addWidget(self.btn02)
self.hlt0.addWidget(self.btn03)
self.hlt0.addStretch()
def mainWindow(self):
self.hlt_main = QHBoxLayout()
self.vlt0.addLayout(self.hlt_main)
self.leftBar()
self.tableView()
def leftBar(self):
self.spl_left = QSplitter(Qt.Vertical)
self.spl_left.setMaximumWidth(370)
self.spl_left.setMinimumWidth(300)
self.hlt_main.addWidget(self.spl_left)
self.featureBox()
self.fundBox()
def featureBox(self):
pass
def fundBox(self):
pass
def tableView(self):
self.model = pandasModel(df)
self.view = QTableView()
self.view.setModel(self.model)
self.view.setSelectionBehavior(QTableView.SelectRows)
self.view.setSelectionMode(QTableView.ExtendedSelection)
self.hlt_main.addWidget(self.view)
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
w2 = window2()
w2.show()
sys.exit(app.exec_())
08-12
08-12