class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(800, 600) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.qwebengine = QWebEngineView(self.centralwidget) self.qwebengine.setGeometry(QtCore.QRect(10, 30, 451, 321)) self.qwebengine.setAutoFillBackground(False) self.qwebengine.setStyleSheet("background-color: rgb(170, 170, 127);") self.qwebengine.setObjectName("qwebengine") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 23)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
def __init__(self): super().__init__() self.setGeometry(0, 0, 1024, 768) #self.setStyleSheet("background:black") chart = QWebEngineView(self) chart.page().setBackgroundColor(Qt.red) #button = QPushButton("Test",self) #button.resize(50, 50) #self.col = QColor(0, 0, 0) chart.resize(self.size()) chart.setAutoFillBackground(True) """ button.setAutoFillBackground(True) pa = QPalette() #br = pa.dark() pa.setColor(QPalette.Window, Qt.red) pa.setColor(QPalette.WindowText, Qt.red) button.setPalette(pa) button.setAutoFillBackground(True) """ self.center() self.show()
class Ui_MainWindow(QMainWindow): def setupUi(self, MainWindow): self.setWindowIcon(QtGui.QIcon('starbucks_icon.jpg')) self.menubar = QtWidgets.QMenuBar(self) self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 23)) self.menubar.setObjectName("menubar") self.menu = QtWidgets.QMenu(self.menubar) self.menu.setObjectName("menu") self.menu_2 = QtWidgets.QMenu(self.menubar) self.menu_2.setObjectName("menu_2") self.menu_3 = QtWidgets.QMenu(self.menubar) self.menu_3.setObjectName("menu_3") self.setMenuBar(self.menubar) self.shiqu = QtWidgets.QAction(self) self.shiqu.setObjectName("shiqu") self.shiquerji = QtWidgets.QAction(self) self.shiquerji.setObjectName("shiquerji") self.zhuzhuang = QtWidgets.QAction(self) self.zhuzhuang.setObjectName("zhuzhuang") self.bingtu = QtWidgets.QAction(self) self.bingtu.setObjectName("bingtu") self.fenbu = QtWidgets.QAction(self) self.fenbu.setObjectName("fenbu") self.shiqufenbu = QtWidgets.QAction(self) self.shiqufenbu.setObjectName("shiqufenbu") self.guojiajianbian = QtWidgets.QAction(self) self.guojiajianbian.setObjectName("guojiajianbian") self.menu.addAction(self.shiqu) self.menu.addAction(self.shiquerji) self.menu_2.addAction(self.zhuzhuang) self.menu_2.addAction(self.bingtu) self.menu_3.addAction(self.fenbu) self.menu_3.addAction(self.shiqufenbu) self.menu_3.addAction(self.guojiajianbian) self.menubar.addAction(self.menu.menuAction()) self.menubar.addAction(self.menu_2.menuAction()) self.menubar.addAction(self.menu_3.menuAction()) self.listWidget = QtWidgets.QListWidget() self.listWidget.setFixedSize(200, 500) self.listWidget.setObjectName("listView") self.listWidget.close() self.set_topk() self.set_topr() self.set_score() self.set_webwindow() vbox = QtWidgets.QGridLayout() self.two = QtWidgets.QWidget() hbox = QtWidgets.QHBoxLayout() hbox.addWidget(self.topk) hbox.addWidget(self.topr) hbox.addWidget(self.score) self.two.setLayout(hbox) self.three = QtWidgets.QWidget() hbox_three = QtWidgets.QHBoxLayout() hbox_three.addWidget(self.web) hbox_three.addWidget(self.listWidget) self.listWidget.close() self.three.setLayout(hbox_three) vbox.addWidget(self.two) vbox.addWidget(self.three) self.main = QtWidgets.QWidget() self.resize(1600, 700) self.main.setLayout(vbox) self.setCentralWidget(self.main) self.retranslateUi(MainWindow) self.search_k.clicked.connect(self.search_kfun) self.shiqu.triggered.connect(self.shiqufun) self.shiquerji.triggered.connect(self.shiquerjifun) self.zhuzhuang.triggered.connect(self.zhuzhuangfun) self.bingtu.triggered.connect(self.bingtufun) self.guojiajianbian.triggered.connect(self.guojiajianbianfun) self.fenbu.triggered.connect(self.fenbufun) self.shiqufenbu.triggered.connect(self.shiqufenbufun) self.time_analysis.clicked.connect(self.time_analysisfun) self.search_r.clicked.connect(self.search_rfun) QtCore.QMetaObject.connectSlotsByName(MainWindow) MainWindow.show() self.listWidget.close() def set_topk(self): self.topk = QtWidgets.QGroupBox("关键词检索") self.topk.setObjectName("topk") hbox = QtWidgets.QHBoxLayout() self.key = QtWidgets.QComboBox(self.topk) self.key.setObjectName("key") self.key.addItem("") self.key.addItem("Brand") self.key.addItem("Store Number") self.key.addItem("Store Name") self.key.addItem("Ownership Type") self.key.addItem("Street Address") self.key.addItem("City") self.key.addItem("State/Province") self.key.addItem("Country") self.key.addItem("Postcode") self.key.addItem("Phone Number") self.key.addItem("Timezone") self.keyword_text = "" self.key.activated[str].connect(self.keyword_onActivated) self.keyword = QtWidgets.QLineEdit(self.topk) self.keyword.setObjectName("keyword") self.keyword.setFixedWidth(60) self.label_k = QtWidgets.QLabel(self.topk) self.label_k.setObjectName("label_k") self.input_k = QtWidgets.QLineEdit(self.topk) self.input_k.setObjectName("input_k") self.label_lonk = QtWidgets.QLabel(self.topk) self.label_lonk.setObjectName("label") self.label_latk = QtWidgets.QLabel(self.topk) self.label_latk.setObjectName("label_latk") self.search_k = QtWidgets.QPushButton(self.topk) self.search_k.setObjectName("search_k") self.search_k.setFixedWidth(60) self.input_lat = QtWidgets.QLineEdit(self.topk) self.input_lat.setObjectName("input_lat") self.input_lat.setFixedWidth(50) self.input_lon = QtWidgets.QLineEdit(self.topk) self.input_lon.setObjectName("input_lon") self.input_lon.setFixedWidth(50) self.time_analysis = QtWidgets.QPushButton(self.topk) self.time_analysis.setObjectName("time_analysis") self.time_analysis.setFixedWidth(100) hbox.addWidget(self.key) hbox.addWidget(self.keyword) hbox.addWidget(self.label_lonk) hbox.addWidget(self.input_lon) hbox.addWidget(self.label_latk) hbox.addWidget(self.input_lat) hbox.addWidget(self.label_k) hbox.addWidget(self.input_k) hbox.addWidget(self.search_k) hbox.addWidget(self.time_analysis) self.topk.setLayout(hbox) def set_topr(self): hbox_r = QtWidgets.QHBoxLayout() self.topr = QtWidgets.QGroupBox("距离范围检索") self.topr.setObjectName("topr") self.label_lonr = QtWidgets.QLabel(self.topr) self.label_lonr.setObjectName("lonr") self.label_latr = QtWidgets.QLabel(self.topr) self.label_latr.setObjectName("label_latr") self.search_r = QtWidgets.QPushButton(self.topr) self.search_r.setObjectName("search_r") self.input_lat_r = QtWidgets.QLineEdit(self.topr) self.input_lat_r.setObjectName("input_lat_r") self.input_lat_r.setFixedWidth(50) self.input_lon_r = QtWidgets.QLineEdit(self.topr) self.input_lon_r.setObjectName("input_lon_r") self.input_lon_r.setFixedWidth(50) self.input_r = QtWidgets.QLineEdit(self.topr) self.input_r.setObjectName("input_r") self.rsearch = QtWidgets.QLabel(self.topr) self.rsearch.setObjectName("rsearch") hbox_r.addWidget(self.label_lonr) hbox_r.addWidget(self.input_lon_r) hbox_r.addWidget(self.label_latr) hbox_r.addWidget(self.input_lat_r) hbox_r.addWidget(self.rsearch) hbox_r.addWidget(self.input_r) hbox_r.addWidget(self.search_r) self.topr.setLayout(hbox_r) def set_score(self): hbox_s = QtWidgets.QHBoxLayout() self.score = QtWidgets.QGroupBox("评分") self.score.setObjectName("score") self.label_score = QtWidgets.QLabel(self.score) self.label_score.setObjectName("label_score") self.countSpineBox = QtWidgets.QSpinBox() self.countSpineBox.setRange(0, 10) self.countSpineBox.setEnabled(False) self.in_score = QtWidgets.QPushButton(self.score) self.in_score.setObjectName("in_score") self.in_score.setEnabled(False) hbox_s.addWidget(self.label_score) hbox_s.addWidget(self.countSpineBox) hbox_s.addWidget(self.in_score) self.score.setLayout(hbox_s) def set_webwindow(self): self.web = QtWidgets.QGroupBox("显示结果") hbox_web = QtWidgets.QHBoxLayout() self.webwindow = QWebEngineView() self.webwindow.setAutoFillBackground(True) self.webwindow.setObjectName("webwindow") hbox_web.addWidget(self.webwindow) self.web.setLayout(hbox_web) def search_kfun(self): input_attr = self.keyword.text() input_lon = float(self.input_lon.text()) input_lat = float(self.input_lat.text()) input_k = int(self.input_k.text()) starbucks_df = read_data() start = time.time() df_find = find_same(starbucks_df, self.keyword_text.decode(encoding="utf-8"), input_attr) df_find = preprocessing(df_find) df_temp = topk(df_find, input_lon, input_lat, input_k) end = time.time() run_time = end - start self.statusBar().showMessage('查询时间为: ' + str(run_time)) draw_map(df_temp, "simtopk.html") k_analysis = topk_k_analysis(df_find, input_lon, input_lat) bar_time = Bar("该经纬度下topk计算时间随k变化") bar_pic(bar_time, k_analysis, 'k', 'time', 'k时间顺序') bar_time.render(r'time_analysis.html') path = os.getcwd() url = pathname2url(path) url = 'file:' + url + '/simtopk.html' self.webwindow.load(QtCore.QUrl(url)) self.webwindow.show() self.listWidget.clear() for i in range(df_temp.shape[0]): item = QtWidgets.QListWidgetItem(df_temp['Store Name'][i]) self.listWidget.addItem(item) self.listWidget.show() self.listWidget.itemClicked['QListWidgetItem*'].connect(self.dia) def dia(self): self.countSpineBox.setEnabled(True) self.in_score.setEnabled(True) self.in_score.clicked.connect(self.pingfen) def pingfen(self): score_var = int(self.countSpineBox.text()) starbucks_df = read_data() starbucks_df = input_score(starbucks_df, score_var, self.listWidget.currentItem().text()) starbucks_df.to_csv('starbucks.csv', encoding="utf_8_sig", index=False) def keyword_onActivated(self, text): self.keyword_text = text.encode("utf-8") def search_rfun(self): lon_r_text = float(self.input_lon_r.text()) lat_r_text = float(self.input_lat_r.text()) r_text = int(self.input_r.text()) starbucks_df = read_data() df_find = preprocessing(starbucks_df) df_temp = r_cal(df_find, lon_r_text, lat_r_text, r_text) df_temp = df_temp.reset_index(drop=False) draw_map(df_temp, "range.html") path = os.getcwd() url = pathname2url(path) url = 'file:' + url + '/range.html' self.webwindow.load(QtCore.QUrl(url)) self.webwindow.show() self.listWidget.clear() for i in range(df_temp.shape[0]): item = QtWidgets.QListWidgetItem(df_temp['Store Name'][i]) self.listWidget.addItem(item) self.listWidget.show() self.listWidget.itemClicked['QListWidgetItem*'].connect(self.dia) def time_analysisfun(self): path = os.getcwd() url = pathname2url(path) url = 'file:' + url + '/time_analysis.html' self.webwindow.load(QtCore.QUrl(url)) self.webwindow.show() self.listWidget.close() def shiqufun(self): # 时区图 path = os.getcwd() url = pathname2url(path) url = 'file:' + url + '/Amout_in_Each_Timezone_Pie.html' self.webwindow.load(QtCore.QUrl(url)) self.webwindow.show() self.listWidget.close() def shiquerjifun(self): # 时区二级图 path = os.getcwd() url = pathname2url(path) url = 'file:' + url + '/Amount_of_Country_in_Timezone_Pie.html' self.webwindow.load(QtCore.QUrl(url)) # self.setCentralWidget(self.webwindow) self.webwindow.show() self.listWidget.close() def shiqujianbianfun(self): path = os.getcwd() url = pathname2url(path) url = 'file:' + url + '/map_time.html' self.webwindow.load(QtCore.QUrl(url)) self.webwindow.show() self.listWidget.close() def zhuzhuangfun(self): # 柱状图 path = os.getcwd() url = pathname2url(path) url = 'file:' + url + '/Amount_Each_Country_Bar.html' self.webwindow.load(QtCore.QUrl(url)) self.webwindow.show() self.listWidget.close() def bingtufun(self): # 饼状图 path = os.getcwd() url = pathname2url(path) url = 'file:' + url + '/Amount_Each_Country_Pie.html' self.webwindow.load(QtCore.QUrl(url)) self.webwindow.show() self.listWidget.close() def fenbufun(self): # 店铺分布图 path = os.getcwd() url = pathname2url(path) url = 'file:' + url + '/fenbutu.html' self.webwindow.load(QtCore.QUrl(url)) self.webwindow.show() self.listWidget.close() def shiqufenbufun(self): # 店铺时区分布图 path = os.getcwd() url = pathname2url(path) url = 'file:' + url + '/map_time.html' self.webwindow.load(QtCore.QUrl(url)) self.webwindow.show() self.listWidget.close() def guojiajianbianfun(self): path = os.getcwd() url = pathname2url(path) url = 'file:' + url + '/distribution_map_country.html' self.webwindow.load(QtCore.QUrl(url)) self.webwindow.show() self.listWidget.close() def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) self.label_k.setText(_translate("MainWindow", "结果数:")) self.label_lonk.setText(_translate("MainWindow", "经度:")) self.label_latk.setText(_translate("MainWindow", "纬度:")) self.search_k.setText(_translate("MainWindow", "查询")) self.time_analysis.setText(_translate("MainWindow", "查询时间分析")) self.label_lonr.setText(_translate("MainWindow", "经度:")) self.label_latr.setText(_translate("MainWindow", "纬度:")) self.search_r.setText(_translate("MainWindow", "查询")) self.rsearch.setText(_translate("MainWindow", "距离范围(米):")) self.label_score.setText(_translate("MainWindow", "输入分数(1-10):")) self.in_score.setText(_translate("MainWindow", "评分")) self.menu.setTitle(_translate("MainWindow", "按时区数据统计")) self.menu_2.setTitle(_translate("MainWindow", "按国家数据统计")) self.menu_3.setTitle(_translate("MainWindow", "分布地图")) self.shiqu.setText(_translate("MainWindow", "各时区店铺数量统计饼图")) self.shiquerji.setText(_translate("MainWindow", "各时区店铺数量统计饼图(详细)")) self.zhuzhuang.setText(_translate("MainWindow", "柱状图")) self.bingtu.setText(_translate("MainWindow", "饼图")) self.guojiajianbian.setText(_translate("MainWindow", "各国家店铺数量渐变图")) self.fenbu.setText(_translate("MainWindow", "店铺分布图")) self.shiqufenbu.setText(_translate("MainWindow", "时区店铺分布图"))
class Ui_Dialog(object): def setupUi(self, Dialog, exchange: str, ticker: str): #récupération du chemin self.mypath = os.path.dirname(__file__) self.exchange = exchange self.ticker = ticker graphics.chart(self.exchange, self.ticker, '1h', self.mypath) Dialog.setObjectName("Dialog") Dialog.resize(1355, 706) Dialog.setStyleSheet("background-color: rgb(189, 255, 231);\n" "") self.graphTo1h = QtWidgets.QPushButton(Dialog) self.graphTo1h.setGeometry(QtCore.QRect(1140, 60, 141, 23)) self.graphTo1h.setWhatsThis("") self.graphTo1h.setStyleSheet("background-color: rgb(255, 255, 255);") self.graphTo1h.setObjectName("graphTo1h") self.graphTo1h.clicked.connect(self.GraphTo1h) self.graphTo24h = QtWidgets.QPushButton(Dialog) self.graphTo24h.setGeometry(QtCore.QRect(1140, 110, 141, 23)) self.graphTo24h.setWhatsThis("") self.graphTo24h.setStyleSheet("background-color: rgb(255, 255, 255);") self.graphTo24h.setObjectName("graphTo24h") self.graphTo24h.clicked.connect(self.GraphTo24h) self.graphTo7d = QtWidgets.QPushButton(Dialog) self.graphTo7d.setGeometry(QtCore.QRect(1140, 160, 141, 23)) self.graphTo7d.setWhatsThis("") self.graphTo7d.setStyleSheet("background-color: rgb(255, 255, 255);") self.graphTo7d.setObjectName("graphTo7d") self.graphTo7d.clicked.connect(self.GraphTo7d) self.BUY_SELL = QtWidgets.QPushButton(Dialog) self.BUY_SELL.setGeometry(QtCore.QRect(1160, 440, 171, 31)) self.BUY_SELL.setStyleSheet("background-color: rgb(255, 255, 255);") self.BUY_SELL.setObjectName("BUY_SELL") self.BUY_SELL.clicked.connect(self.openBuySell) self.Htmlreader_graph = QWebEngineView(Dialog) self.Htmlreader_graph.setGeometry(QtCore.QRect(10, 10, 1051, 661)) self.Htmlreader_graph.setCursor(QtGui.QCursor(QtCore.Qt.CrossCursor)) self.Htmlreader_graph.setWhatsThis("") self.Htmlreader_graph.setAutoFillBackground(False) #récupération du chemin self.Htmlreader_graph.setUrl(QtCore.QUrl("file:/plotlyGraph.html")) self.Htmlreader_graph.setObjectName("Htmlreader_graph") self.Timeframe = QtWidgets.QLabel(Dialog) self.Timeframe.setGeometry(QtCore.QRect(1150, 20, 111, 31)) font = QtGui.QFont() font.setFamily("MS Sans Serif") font.setPointSize(15) font.setBold(True) font.setItalic(True) font.setWeight(75) self.Timeframe.setFont(font) self.Timeframe.setObjectName("Timeframe") self.retranslateUi(Dialog) QtCore.QMetaObject.connectSlotsByName(Dialog) #fonction pour changer le timeframe du graph: #1h def GraphTo1h(Ui_Dialog): graphics.chart(Ui_Dialog.exchange, Ui_Dialog.ticker, '1h', Ui_Dialog.mypath) Ui_Dialog.Htmlreader_graph.reload() #24h def GraphTo24h(Ui_Dialog): graphics.chart(Ui_Dialog.exchange, Ui_Dialog.ticker, '1d', Ui_Dialog.mypath) Ui_Dialog.Htmlreader_graph.reload() #7d def GraphTo7d(Ui_Dialog): graphics.chart(Ui_Dialog.exchange, Ui_Dialog.ticker, '7d', Ui_Dialog.mypath) Ui_Dialog.Htmlreader_graph.reload() #•ouvre la fenetre BUY/SELL def openBuySell(self): self.window = QtWidgets.QMainWindow() self.ui = BuysellWindow.Ui_Dialog() self.ui.setupUi(self.window, self.exchange, self.ticker) self.window.show() def retranslateUi(self, Dialog): _translate = QtCore.QCoreApplication.translate Dialog.setWindowTitle(_translate("Dialog", "Dialog")) self.graphTo1h.setText(_translate("Dialog", "1 hour")) self.graphTo24h.setText(_translate("Dialog", "24 hours")) self.graphTo7d.setText(_translate("Dialog", "7 days")) self.BUY_SELL.setText(_translate("Dialog", "Buy/Sell")) self.Timeframe.setText(_translate("Dialog", "Timeframe:"))