def setup_web_view(self) -> None: """ The web view itself, with a fixed size. """ self.web_view = QWebEngineView() self.layout.addWidget(self.web_view)
def __init__(self, parent=None): super(MainWindow, self).__init__(parent) path = os.path.abspath(os.path.join(os.path.abspath(__file__), "..")) file = path + '/ui/mainwindow.ui' loadUi(file, self) self.mgr = LogicMgr() logger_utils.signal = self.mgr.signal self.init_base_info() #self.init_menu() self.init_toolbar() #self.init_frames() self.view = QWebEngineView() webview_layout = self.webview_layout webview_layout.addWidget(self.view) self.view.setEnabled(True) self.view.setUrl(QtCore.QUrl("http://www.ailabx.com")) frame = FrameResult(logic=self.mgr) self.vl_results.addWidget(frame) frame_bkt = FrameBacktest(logic=self.mgr) self.vl_top_left.addWidget(frame_bkt) frame_stras = FrameStrategies(logic=self.mgr) self.vl_top_right.addWidget(frame_stras)
def __init__(self, *args, **kwargs): super(AladinLiteQtWidget, self).__init__(*args, **kwargs) web = QWebEngineView() web.setHtml(ALADIN_LITE_HTML) layout = QVBoxLayout() self.setLayout(layout) layout.addWidget(web) self.page = web.page()
class MainWindow(QtWidgets.QMainWindow): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) path = os.path.abspath(os.path.join(os.path.abspath(__file__), "..")) file = path + '/ui/mainwindow.ui' loadUi(file, self) self.mgr = LogicMgr() logger_utils.signal = self.mgr.signal self.init_base_info() #self.init_menu() self.init_toolbar() #self.init_frames() self.view = QWebEngineView() webview_layout = self.webview_layout webview_layout.addWidget(self.view) self.view.setEnabled(True) self.view.setUrl(QtCore.QUrl("http://www.ailabx.com")) frame = FrameResult(logic=self.mgr) self.vl_results.addWidget(frame) frame_bkt = FrameBacktest(logic=self.mgr) self.vl_top_left.addWidget(frame_bkt) frame_stras = FrameStrategies(logic=self.mgr) self.vl_top_right.addWidget(frame_stras) def init_frames(self): frame_trade = FrameTrade(logic=self.mgr) self.vl_trade.addWidget(frame_trade) def init_base_info(self): self.setWindowTitle('智能量化系统 - ailabx智能量化实验室') self.setWindowIcon(QtGui.QIcon('images/logo.png')) def init_menu(self): self.menu = self.menuBar() file_menu = self.menu.addMenu('&文件') tool_menu = self.menu.addMenu('&工具') about_menu = self.menu.addMenu('&关于') def init_toolbar(self): # 工具栏 setting_action = QtWidgets.QAction(QtGui.QIcon('images/logo.png'), '设置', self) # setting_action.setShortcut('Ctrl+Q') setting_action.triggered.connect(self.show_setting) setting = self.addToolBar('设置') setting.addAction(setting_action) def show_setting(self): self.setting = FormSetting() self.setting.show()
def __init__(self, parent): QWebEngineView.__init__(self, parent) self.zoom_factor = 1. self.zoom_out_action = create_action(self, _("Zoom out"), icon=ima.icon('zoom_out'), triggered=self.zoom_out) self.zoom_in_action = create_action(self, _("Zoom in"), icon=ima.icon('zoom_in'), triggered=self.zoom_in)
def generateCharts(text): # Extract bible verse references useLiteVerseParsing = config.useLiteVerseParsing config.useLiteVerseParsing = False parser = BibleVerseParser(config.parserStandarisation) verses = parser.extractAllReferences(text, False) config.useLiteVerseParsing = useLiteVerseParsing if verses: # Sort by Books counts = countVersesByBook(verses) # Formulate Table Data data = [] for bookNo in sorted(counts): bookName = parser.standardFullBookName[str(bookNo)] references = [] for bcv in sorted(counts[bookNo]): reference = parser.bcvToVerseReference(*bcv) if len(bcv) == 3: references.append( '<ref onclick="bcv({0},{1},{2})">{3}</ref>'.format( *bcv, reference)) else: references.append( '<ref onclick="bcv({0},{1},{2},{3},{4})">{5}</ref>'. format(*bcv, reference)) data.append( " <tr><td>{0}</td><td>{1}</td><td>{2}</td></tr>".format( bookName, "; ".join(references), len(references))) # Display a Table config.mainWindow.studyView.currentWidget().openPopover( html=getTableHtml("\n".join(data), str(len(verses)))) # Formulate Charts Data data = [ " ['{0}', {1}]".format(parser.standardAbbreviation[str(bookNo)], len(counts[bookNo])) for bookNo in sorted(counts) ] # Display a Bar Chart html = getBarChartHtml(",\n".join(data), str(len(verses)), len(counts.keys())) html = config.mainWindow.wrapHtml(html) config.mainWindow.barChart = QWebEngineView() config.mainWindow.barChart.setHtml(html, config.baseUrl) config.mainWindow.barChart.setMinimumSize(900, 550) config.mainWindow.barChart.show() # Display a Pie Chart html = getPieChartHtml(",\n".join(data), str(len(verses))) html = config.mainWindow.wrapHtml(html) config.mainWindow.pieChart = QWebEngineView() config.mainWindow.pieChart.setHtml(html, config.baseUrl) config.mainWindow.pieChart.setMinimumSize(700, 380) config.mainWindow.pieChart.show() else: config.mainWindow.displayMessage( config.thisTranslation["message_noReference"])
def __init__(self, parent): QWebEngineView.__init__(self, parent) self.zoom_factor = 1. self.zoom_out_action = create_action(self, _("Zoom out"), icon=ima.icon('zoom_out'), triggered=self.zoom_out) self.zoom_in_action = create_action(self, _("Zoom in"), icon=ima.icon('zoom_in'), triggered=self.zoom_in) if WEBENGINE: web_page = WebPage(self) self.setPage(web_page)
def initUi(self): print('Initializing GUI...') w, h = 1000, 1000 self.find = ZhuNoteFind(self) # self as parent self.tree = ZhuNoteTree() self.form = ZhuNoteForm(self.path) self.wbrs = QWebEngineView() splitter1 = QSplitter(Qt.Horizontal) splitter1.addWidget(self.form) splitter1.addWidget(self.wbrs) splitter1.setSizes([w / 2, w / 2]) splitter = QSplitter(Qt.Vertical) splitter.addWidget(self.tree) splitter.addWidget(splitter1) splitter.setStretchFactor(0, 1) splitter.setStretchFactor(1, 2) vbox = QVBoxLayout() vbox.addWidget(self.find) vbox.addWidget(splitter) self.setLayout(vbox) self.wbrs.setHtml(self.html_hi) self.tree.sigViewItem.connect(self.form.viewDict) self.tree.sigViewItem.connect(self.viewHtml) self.find.sigClear.connect(self.clear) self.find.sigString.connect(self.search) self.find.sigUpdateMaster.connect(self.updateMaster) self.find.sigFont.connect(self.setFont) self.setWindowTitle('Main - ZhuNote') #self.setGeometry(x, y, w, h) #self.move(x, y) self.resize(w, h) #self.show() #self.tree.show() #self.form.show() styleName = 'Cleanlooks' # QStyleFactory.keys() # ['Windows', 'Motif', 'CDE', 'Plastique', 'GTK+', 'Cleanlooks'] QApplication.setStyle(QStyleFactory.create(styleName)) self.find.txtSearch.setFocus() # not work yet self.actExit = QAction('Exit', self) self.actExit.setShortcut('Ctrl+Q') self.actExit.triggered.connect(self.closeAllWindows) self.addAction(self.actExit)
def CreatWebTab(self):#穿件一个TAB 用于网络 现在占时定义为百度 if self.webTabFlag == False: self.BaiduView = QWebEngineView(self.centralwidget) self.BaiduView.setMinimumSize(QtCore.QSize(500, 400)) self.BaiduView.setUrl(QtCore.QUrl("https://www.baidu.com/")) self.BaiduView.setObjectName("search") self.WebTab=self.GraphTab.addTab(self.BaiduView,'百度 view') self.setPlanEditor('打开web 信息') self.webTabFlag = True elif self.webTabFlag == True: self.WebTab=self.GraphTab.removeTab(1) self.setPlanEditor('关闭web 信息') self.webTabFlag = False
def __init__(self, parent=None): super(WWTQtWidget, self).__init__(parent=parent) self.web = QWebEngineView() self.page = WWTQWebEnginePage() self.page.setView(self.web) self.web.setPage(self.page) self.web.setHtml(WWT_HTML) layout = QtWidgets.QVBoxLayout() self.setLayout(layout) layout.addWidget(self.web) self.imagery_layers = get_imagery_layers() self.markers = WWTMarkersHelper(self) self._wwt_ready = False self._js_queue = "" self.page.wwt_ready.connect(self._on_wwt_ready) self._opacity = 50
def __init__(self, parent, handle_links=True): QWebEngineView.__init__(self, parent) self.zoom_factor = 1. self.zoom_out_action = create_action(self, _("Zoom out"), icon=ima.icon('zoom_out'), triggered=self.zoom_out) self.zoom_in_action = create_action(self, _("Zoom in"), icon=ima.icon('zoom_in'), triggered=self.zoom_in) if WEBENGINE: if handle_links: web_page = WebPage(self) else: web_page = QWebEnginePage(self) self.setPage(web_page) self.source_text = ''
def __init__(self, parent=None): super(CoreWWTQtWidget, self).__init__(parent=parent) self.web = QWebEngineView() self.page = WWTQWebEnginePage() self.page.setView(self.web) self.web.setPage(self.page) self.web.setHtml(WWT_HTML) layout = QtWidgets.QVBoxLayout() self.setLayout(layout) layout.addWidget(self.web) self._wwt_ready = False self._js_queue = "" self.page.wwt_ready.connect(self._on_wwt_ready)
class WebBrowser(QWidget): """ This widget contains a QWebEngineView and other simple controls. """ def __init__(self, *args) -> None: super().__init__(*args) self.layout = QVBoxLayout(self) self.setup_controls() self.setup_web_view() def setup_web_view(self) -> None: """ The web view itself, with a fixed size. """ self.web_view = QWebEngineView() self.layout.addWidget(self.web_view) def setup_controls(self) -> None: """ The web view controls for now are just a button to go back. """ self.go_back_button = QPushButton("← Go back") self.go_back_button.setFont(Fonts.mediumbutton) self.layout.addWidget(self.go_back_button) @property def url(self) -> str: """ Returns the web view's browser as a string. The first url() returns a QUrl and the second the string with the URL. """ return self.web_view.url().url() @url.setter def url(self, url: str) -> None: """ Sets the web view's URL to `url`. """ self.web_view.setUrl(QUrl(url))
def __init__(self, parent, handle_links=True, class_parent=None): class_parent = parent if class_parent is None else class_parent if PYQT5: super().__init__(parent, class_parent=class_parent) else: QWebEngineView.__init__(self, parent) SpyderWidgetMixin.__init__(self, class_parent=class_parent) self.zoom_factor = 1. self.context_menu = None if WEBENGINE: if handle_links: web_page = WebPage(self) else: web_page = QWebEnginePage(self) self.setPage(web_page) self.source_text = ''
class CoreWWTQtWidget(QtWidgets.QWidget): def __init__(self, parent=None): super(CoreWWTQtWidget, self).__init__(parent=parent) self.web = QWebEngineView() self.page = WWTQWebEnginePage() self.page.setView(self.web) self.web.setPage(self.page) self.web.setHtml(WWT_HTML) layout = QtWidgets.QVBoxLayout() layout.setContentsMargins(0, 0, 0, 0) self.setLayout(layout) layout.addWidget(self.web) self._wwt_ready = False self._js_queue = "" self.page.wwt_ready.connect(self._on_wwt_ready) def send_msg(self, **kwargs): msg = json.dumps(kwargs) return self._run_js("wwt_apply_json_message(wwt, {0})".format(msg)) def _on_wwt_ready(self): self._run_js(WWT_JSON) self._wwt_ready = True self._run_js(self._js_queue, async=True) self._js_queue = "" def _run_js(self, js, async=True): if not js: return if self._wwt_ready: logger.debug('Running javascript: %s' % js) return self.page.runJavaScript(js, async=async) else: logger.debug('Caching javascript: %s' % js) self._js_queue += js + '\n'
def setupUi(self, Form): Form.setObjectName("Form") Form.resize(442, 824) Form.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) Form.setWindowFlags(QtCore.Qt.CustomizeWindowHint) self.commandLinkButton = QtWidgets.QCommandLinkButton(Form) self.commandLinkButton.setGeometry(QtCore.QRect(300, 754, 142, 70)) self.commandLinkButton.setObjectName("commandLinkButton") self.commandLinkButton.setStyleSheet("background-color: rgb(209, 175, 222);\n""color: rgb(64, 0, 64);") self.commandLinkButton1 = QtWidgets.QCommandLinkButton(Form) self.commandLinkButton1.setGeometry(QtCore.QRect(0, 754, 142, 70)) self.commandLinkButton1.setObjectName("commandLinkButton") self.commandLinkButton1.setStyleSheet("background-color: rgb(209, 175, 222);\n""color: rgb(64, 0, 64);") self.commandLinkButton.clicked.connect(self.select) self.commandLinkButton1.clicked.connect(self.analy) self.combobox = QtWidgets.QComboBox(Form) self.combobox.setGeometry(QtCore.QRect(146, 754, 140, 35)) self.combobox.addItems(["AQI散点","AQI热图","分时AQI"]) #self.combobox.currentIndexChanged.connect(self.analy) self.combobox.show() self.combobox1 = QtWidgets.QComboBox(Form) self.combobox1.setGeometry(QtCore.QRect(146, 794, 140, 35)) self.combobox1.addItems(["逃脱路线","推荐城市"]) self.combobox1.show() self.webView = QWebEngineView(Form) self.webView.setGeometry(0,0,440,750) self.webView.load(QUrl("file:///D:/源代码/aqi.html")) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form)
def _on_link(self, url): su = url.toString(QtCore.QUrl.RemoveQuery) if "/spectra/" in su: view = QWebEngineView(self.ui) wp = QWebEnginePage() am = self.view.page().networkAccessManager() wp.setNetworkAccessManager(am) view.setPage(wp) request = self._make_request(url) response = am.get(request) def resp_finished(): html = response.readAll() matches = re_dl_url.findall(html) if matches: self.download(matches[0].decode('ascii')) response.deleteLater() response.finished.connect(resp_finished) else: self.view.load(url)
def _build_layout(self): """Build the main layout""" tlist = TransformList() # TODO: Use some max based on largest object in list size tlist.setMinimumWidth(150) tlist.setMaximumWidth(200) self.addWidget(tlist) # Connect change handlers for the transform list tlist.builtin_list.selectionModel().currentChanged.connect( self._handle_changed) tlist.builtin_list.selectionModel().currentChanged.connect( self._reload_pipeline) # Document Viewer if self.show_docs: self.docview = QWebEngineView(self) self.addWidget(self.docview) # PipeWindow self.pipe_stack = QtWidgets.QStackedWidget(parent=self) self.addWidget(self.pipe_stack)
def contextMenuEvent(self, event): """ Handle context menu events. This overrides WebView.contextMenuEvent() in order to add the actions in `self.actions` and remove the Back and Forward actions which have no meaning for the notebook widget. If Shift is pressed, then instead display the standard Qt context menu, per gh:spyder-ide/spyder-notebook#279 Parameters ---------- event : QContextMenuEvent The context menu event that needs to be handled. """ if QApplication.keyboardModifiers() & Qt.ShiftModifier: return QWebEngineView.contextMenuEvent(self, event) if self.actions is None: actions = [] else: actions = self.actions + [None] actions += [ self.pageAction(QWebEnginePage.SelectAll), self.pageAction(QWebEnginePage.Copy), None, self.zoom_in_action, self.zoom_out_action] if not WEBENGINE: settings = self.page().settings() settings.setAttribute(QWebEngineSettings.DeveloperExtrasEnabled, True) actions += [None, self.pageAction(QWebEnginePage.InspectElement)] menu = QMenu(self) add_actions(menu, actions) menu.popup(event.globalPos()) event.accept()
def default(self): if self.window is None: self.window = ExToolWindow(self.ui) self.window.setWindowTitle("EELSDB") vbox = QtWidgets.QVBoxLayout() self.window.setLayout(vbox) view = QWebEngineView(self.ui) self.view = view vbox.addWidget(view) self.window.resize(self.view.sizeHint()) # Load spectra browser browse_url = QtCore.QUrl("https://eelsdb.eu/spectra") self.load_blocking(self.view, browse_url) if not WEBENGINE: self.view.page().setLinkDelegationPolicy( QWebEnginePage.DelegateAllLinks) try: # TODO: downloading spectra is currently broken self.view.linkClicked.connect(self._on_link) except AttributeError: pass self.window.show()
def createTAB(self): self.webView = QWebEngineView(self.centralwidget) self.webView.setMinimumSize(QtCore.QSize(500, 400)) self.webView.setUrl(QtCore.QUrl("about:blank")) self.webView.setObjectName("webView") self.WebTab=self.GraphTab.addTab(self.webView,'Web view')
def setup_ui(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(1800, 1600) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") # self.widget.setGeometry(QtCore.QRect(10, 10, 258, 451)) # self.widget.setObjectName("widget") self.gridLayout = QtWidgets.QGridLayout(self.centralwidget) self.gridLayout.setContentsMargins(15, 15, 15, 15) self.gridLayout.setObjectName("gridLayout") self.splitter_0 = QtWidgets.QSplitter(self.centralwidget) self.splitter_0.setOrientation(QtCore.Qt.Horizontal) self.splitter_0.setObjectName("splitter_0") self.weibo_id_label = QtWidgets.QLabel(self.splitter_0) self.weibo_id_label.setObjectName("Weibo ID Label") self.weibo_id_label.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignVCenter) self.search_edit_text = QtWidgets.QLineEdit(self.splitter_0) self.search_edit_text.setObjectName("lineEdit") # self.search_edit_text.setFixedSize(QtCore.QSize(60, 30)) self.stock_option_combobox = QtWidgets.QComboBox(self.splitter_0) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.stock_option_combobox.sizePolicy().hasHeightForWidth()) self.stock_option_combobox.setSizePolicy(sizePolicy) self.stock_option_combobox.setObjectName("stock_option_combobox") self.stock_option_combobox.addItems( ["K线", "复权", "分笔数据", "历史分钟", "十大股东"]) self.gridLayout.addWidget(self.splitter_0, 0, 0, 1, 2) self.start_date_label = QtWidgets.QLabel(self.centralwidget) self.start_date_label.setObjectName("Start Date") self.gridLayout.addWidget(self.start_date_label, 2, 0, 1, 1) self.end_date_label = QtWidgets.QLabel(self.centralwidget) self.end_date_label.setObjectName("End Date") self.gridLayout.addWidget(self.end_date_label, 2, 1, 1, 1) self.splitter_2 = QtWidgets.QSplitter(self.centralwidget) self.splitter_2.setOrientation(QtCore.Qt.Horizontal) self.splitter_2.setObjectName("splitter_2") self.start_date_edit = QtWidgets.QDateEdit(self.splitter_2) self.start_date_edit.setObjectName("StartDateEdit") self.end_date_edit = QtWidgets.QDateEdit(self.splitter_2) self.end_date_edit.setObjectName("EndDateEdit") self.gridLayout.addWidget(self.splitter_2, 3, 0, 1, 2) self.splitter_1 = QtWidgets.QSplitter(self.centralwidget) self.splitter_1.setOrientation(QtCore.Qt.Horizontal) self.splitter_1.setObjectName("splitter_1") self.interval_combobox = QtWidgets.QComboBox(self.splitter_1) self.interval_combobox.setObjectName("IntervalComboBox") self.interval_combobox.addItems(["D", "W", "M", "5", "15", "30", "60"]) # self.stock_combobox = QtWidgets.QComboBox(self.splitter_1) # sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) # sizePolicy.setHorizontalStretch(0) # sizePolicy.setVerticalStretch(0) # sizePolicy.setHeightForWidth(self.stock_combobox.sizePolicy().hasHeightForWidth()) # self.stock_combobox.setSizePolicy(sizePolicy) # self.stock_combobox.setObjectName("stock_combobox") # self.stock_combobox.addItems(["K线", "复权", "分笔数据", "历史分钟", "十大股东"]) self.search_btn = QtWidgets.QPushButton(self.splitter_1) self.search_btn.setObjectName("SearchButton") self.gridLayout.addWidget(self.splitter_1, 4, 0, 1, 2) self.stocks_tree = QtWidgets.QTreeWidget(self.centralwidget) self.stocks_tree.setObjectName("Stocks") self.stocks_tree.headerItem().setText(0, "Stocks") self.gridLayout.addWidget(self.stocks_tree, 5, 0, 1, 2) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 80, 12)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.webView = QWebEngineView(self.centralwidget) self.webView.setEnabled(True) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.webView.sizePolicy().hasHeightForWidth()) self.webView.setSizePolicy(sizePolicy) self.webView.setMinimumSize(QtCore.QSize(200, 200)) self.webView.setMaximumSize(QtCore.QSize(800, 16777215)) self.webView.setUrl(QtCore.QUrl("about:blank")) self.webView.setObjectName("webView") self.gridLayout.addWidget(self.webView, 0, 2, 9, 1) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QToolBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 90, 23)) self.menubar.setObjectName(_fromUtf8("menubar")) MainWindow.addToolBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName(_fromUtf8("statusbar")) MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow)
class Ui_Main_Window(object): def setup_ui(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(1800, 1600) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.widget = QtWidgets.QWidget(self.centralwidget) # self.widget.setGeometry(QtCore.QRect(10, 10, 258, 451)) # self.widget.setObjectName("widget") self.gridLayout = QtWidgets.QGridLayout(self.widget) self.gridLayout.setContentsMargins(15, 15, 15, 15) self.gridLayout.setObjectName("gridLayout") self.weibo_id_label = QtWidgets.QLabel(self.widget) self.weibo_id_label.setObjectName("Weibo ID Label") self.gridLayout.addWidget(self.weibo_id_label, 0, 0, 1, 1) self.search_edit_text = QtWidgets.QLineEdit(self.widget) self.search_edit_text.setObjectName("lineEdit") self.gridLayout.addWidget(self.search_edit_text, 1, 0, 1, 2) # self.pushButton_2 = QtWidgets.QPushButton(self.widget) # self.pushButton_2.setObjectName("Search Weibo") # self.gridLayout.addWidget(self.pushButton_2, 0, 1, 1, 2) # self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.pushButton_2) self.start_date_label = QtWidgets.QLabel(self.widget) self.start_date_label.setObjectName("Start Date") self.gridLayout.addWidget(self.start_date_label, 2, 0, 1, 1) self.end_date_label = QtWidgets.QLabel(self.widget) self.end_date_label.setObjectName("End Date") self.gridLayout.addWidget(self.end_date_label, 2, 1, 1, 1) self.splitter_2 = QtWidgets.QSplitter(self.widget) self.splitter_2.setOrientation(QtCore.Qt.Horizontal) self.splitter_2.setObjectName("splitter_2") self.start_date_edit = QtWidgets.QDateEdit(self.splitter_2) self.start_date_edit.setObjectName("StartDateEdit") self.end_date_edit = QtWidgets.QDateEdit(self.splitter_2) self.end_date_edit.setObjectName("EndDateEdit") self.gridLayout.addWidget(self.splitter_2, 3, 0, 1, 2) self.splitter = QtWidgets.QSplitter(self.widget) self.splitter.setOrientation(QtCore.Qt.Horizontal) self.splitter.setObjectName("splitter") self.comboBox = QtWidgets.QComboBox(self.splitter) self.comboBox.setObjectName("comboBox") self.comboBox.addItems(["D", "W", "M", "5", "15", "30", "60"]) self.search_btn= QtWidgets.QPushButton(self.splitter) self.search_btn.setObjectName("SearchButton") self.gridLayout.addWidget(self.splitter, 4, 0, 1, 2) self.stocks_tree = QtWidgets.QTreeWidget(self.widget) self.stocks_tree.setObjectName("Stocks") self.stocks_tree.headerItem().setText(0, "Stocks") self.gridLayout.addWidget(self.stocks_tree, 5, 0, 1, 2) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 80, 12)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.webView = QWebEngineView(self.centralwidget) self.webView.setEnabled(True) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.webView.sizePolicy().hasHeightForWidth()) self.webView.setSizePolicy(sizePolicy) self.webView.setMinimumSize(QtCore.QSize(200, 200)) self.webView.setMaximumSize(QtCore.QSize(800, 16777215)) self.webView.setUrl(QtCore.QUrl("about:blank")) self.webView.setObjectName("webView") self.gridLayout.addWidget(self.webView, 0, 2, 9, 1) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QToolBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 90, 23)) self.menubar.setObjectName(_fromUtf8("menubar")) MainWindow.addToolBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName(_fromUtf8("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")) self.weibo_id_label.setText(_translate("MainWindow", "Weibo ID")) self.start_date_label.setText(_translate("MainWindow", "Start Date")) self.end_date_label.setText(_translate("MainWindow", "End Date")) self.search_btn.setText(_translate("MainWindow", "Search")) self.comboBox.setItemText(0, _translate("MainWindow", "D", "by date")) self.comboBox.setItemText(1, _translate("MainWindow", "W", None)) self.comboBox.setItemText(2, _translate("MainWindow", "M", None)) self.comboBox.setItemText(3, _translate("MainWindow", "5", None)) self.comboBox.setItemText(4, _translate("MainWindow", "15", None)) self.comboBox.setItemText(5, _translate("MainWindow", "30", None)) self.comboBox.setItemText(6, _translate("MainWindow", "60", None))
def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(1350, 700) #主窗口大小 self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.gridLayout = QtWidgets.QGridLayout(self.centralwidget) self.gridLayout.setObjectName("gridLayout") self.horizontalLayout_3 = QtWidgets.QHBoxLayout() self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.combobox = QtWidgets.QComboBox(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(1) sizePolicy.setHeightForWidth( self.combobox.sizePolicy().hasHeightForWidth()) self.combobox.setSizePolicy(sizePolicy) self.combobox.setObjectName("combobox") self.combobox.setStyleSheet("\n" "font: 85 13pt \"微软雅黑\";\n") self.combobox.addItems( ["回测分析系统", "分析十大股东", "获取历史K线", "获取复权数据", "获取分笔数据", "获取历史分钟数据"]) self.horizontalLayout_3.addWidget(self.combobox) #左侧选着窗口大小 spacerItem = QtWidgets.QSpacerItem(210, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_3.addItem(spacerItem) self.gridLayout.addLayout(self.horizontalLayout_3, 0, 0, 1, 1) #k线下选框 self.horizontalLayout_5 = QtWidgets.QHBoxLayout() self.horizontalLayout_5.setObjectName("horizontalLayout_5") self.init_category_btn = QtWidgets.QPushButton(self.centralwidget) self.init_category_btn.setMinimumSize(QtCore.QSize(150, 0)) #分类显示摁钮 self.init_category_btn.setMaximumSize(QtCore.QSize(190, 16777215)) self.init_category_btn.setObjectName("init_category_btn") self.horizontalLayout_5.addWidget(self.init_category_btn) self.init_code_btn = QtWidgets.QPushButton(self.centralwidget) self.init_code_btn.setMinimumSize(QtCore.QSize(150, 0)) #按编号显示股票 摁钮 self.init_code_btn.setMaximumSize(QtCore.QSize(190, 16777215)) self.init_code_btn.setObjectName("init_code_btn") self.horizontalLayout_5.addWidget(self.init_code_btn) self.gridLayout.addLayout(self.horizontalLayout_5, 2, 0, 1, 1) self.horizontalLayout_8 = QtWidgets.QHBoxLayout() self.horizontalLayout_8.setObjectName("horizontalLayout_8") self.interval_label = QtWidgets.QLabel(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.interval_label.sizePolicy().hasHeightForWidth()) self.interval_label.setSizePolicy(sizePolicy) self.interval_label.setMinimumSize(QtCore.QSize(100, 0)) #每条线时间间隔lable self.interval_label.setMaximumSize(QtCore.QSize(150, 16777215)) self.interval_label.setObjectName("interval_label") self.horizontalLayout_8.addWidget(self.interval_label) self.comboBox = QtWidgets.QComboBox(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.comboBox.sizePolicy().hasHeightForWidth()) self.comboBox.setSizePolicy(sizePolicy) self.comboBox.setMaximumSize(QtCore.QSize(180, 16777215)) #时间间隔下拉框 self.comboBox.setObjectName("comboBox") self.horizontalLayout_8.addWidget(self.comboBox) self.gridLayout.addLayout(self.horizontalLayout_8, 4, 0, 1, 1) self.horizontalLayout_2 = QtWidgets.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.dateEdit = QtWidgets.QDateEdit(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.dateEdit.sizePolicy().hasHeightForWidth()) self.dateEdit.setSizePolicy(sizePolicy) self.dateEdit.setMinimumSize(QtCore.QSize(140, 0)) #时间1 self.dateEdit.setMaximumSize(QtCore.QSize(150, 16777215)) self.dateEdit.setObjectName("dateEdit") self.horizontalLayout_2.addWidget(self.dateEdit) self.dateEdit_2 = QtWidgets.QDateEdit(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.dateEdit_2.sizePolicy().hasHeightForWidth()) self.dateEdit_2.setSizePolicy(sizePolicy) self.dateEdit_2.setMinimumSize(QtCore.QSize(140, 0)) #时间2 self.dateEdit_2.setMaximumSize(QtCore.QSize(150, 16777215)) self.dateEdit_2.setObjectName("dateEdit_2") self.horizontalLayout_2.addWidget(self.dateEdit_2) self.gridLayout.addLayout(self.horizontalLayout_2, 6, 0, 1, 1) self.treeWidget = QtWidgets.QTreeWidget(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.treeWidget.sizePolicy().hasHeightForWidth()) self.treeWidget.setSizePolicy(sizePolicy) self.treeWidget.setMinimumSize(QtCore.QSize(160, 0)) self.treeWidget.setMaximumSize(QtCore.QSize(400, 16777215)) self.treeWidget.setObjectName("treeWidget") self.treeWidget.headerItem().setText(0, "历史数据---右键菜单选择") self.gridLayout.addWidget(self.treeWidget, 3, 0, 1, 1) self.horizontalLayout = QtWidgets.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") self.label_4 = QtWidgets.QLabel(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.label_4.sizePolicy().hasHeightForWidth()) self.label_4.setSizePolicy(sizePolicy) self.label_4.setMaximumSize(QtCore.QSize(150, 16777215)) #搜索label大小 self.label_4.setObjectName("label_4") self.horizontalLayout.addWidget(self.label_4) self.search_lineEdit = QtWidgets.QLineEdit(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.search_lineEdit.sizePolicy().hasHeightForWidth()) self.search_lineEdit.setSizePolicy(sizePolicy) self.search_lineEdit.setMinimumSize(QtCore.QSize(100, 0)) #搜索框 self.search_lineEdit.setMaximumSize(QtCore.QSize(150, 16777215)) self.search_lineEdit.setMaxLength(20) self.search_lineEdit.setObjectName("search_lineEdit") self.horizontalLayout.addWidget(self.search_lineEdit) self.search_btn = QtWidgets.QPushButton(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.search_btn.sizePolicy().hasHeightForWidth()) self.search_btn.setSizePolicy(sizePolicy) self.search_btn.setMinimumSize(QtCore.QSize(40, 0)) #搜索框摁钮 self.search_btn.setMaximumSize(QtCore.QSize(30, 16777215)) self.search_btn.setObjectName("search_btn") self.horizontalLayout.addWidget(self.search_btn) self.log_btn = QtWidgets.QPushButton(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.log_btn.sizePolicy().hasHeightForWidth()) self.log_btn.setSizePolicy(sizePolicy) self.log_btn.setMinimumSize(QtCore.QSize(140, 0)) #log框摁钮 self.log_btn.setMaximumSize(QtCore.QSize(30, 16777215)) self.log_btn.setObjectName("log_btn") self.horizontalLayout.addWidget(self.log_btn) self.gridLayout.addLayout(self.horizontalLayout, 1, 0, 1, 1) self.horizontalLayout_4 = QtWidgets.QHBoxLayout() self.horizontalLayout_4.setObjectName("horizontalLayout_4") self.staDate_label = QtWidgets.QLabel(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.staDate_label.sizePolicy().hasHeightForWidth()) self.staDate_label.setSizePolicy(sizePolicy) self.staDate_label.setMinimumSize(QtCore.QSize(80, 0)) self.staDate_label.setMaximumSize(QtCore.QSize(90, 16777215)) self.staDate_label.setObjectName("staDate_label") self.horizontalLayout_4.addWidget(self.staDate_label) self.label_2 = QtWidgets.QLabel(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.label_2.sizePolicy().hasHeightForWidth()) self.label_2.setSizePolicy(sizePolicy) self.label_2.setMinimumSize(QtCore.QSize(80, 0)) self.label_2.setMaximumSize(QtCore.QSize(90, 16777215)) self.label_2.setObjectName("label_2") self.horizontalLayout_4.addWidget(self.label_2) self.gridLayout.addLayout(self.horizontalLayout_4, 5, 0, 1, 1) self.treeWidget_2 = QtWidgets.QTreeWidget(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.treeWidget_2.sizePolicy().hasHeightForWidth()) self.treeWidget_2.setSizePolicy(sizePolicy) self.treeWidget_2.setMinimumSize(QtCore.QSize(160, 0)) self.treeWidget_2.setMaximumSize(QtCore.QSize(400, 16777215)) self.treeWidget_2.setObjectName("treeWidget_2") font = QtGui.QFont("Times", 12, QtGui.QFont.Bold) self.treeWidget_2.setFont(font) self.gridLayout.addWidget(self.treeWidget_2, 8, 0, 1, 1) self.commandLinkButton = QtWidgets.QCommandLinkButton( self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.commandLinkButton.sizePolicy().hasHeightForWidth()) self.commandLinkButton.setSizePolicy(sizePolicy) self.commandLinkButton.setMaximumSize(QtCore.QSize(110, 16777215)) font = QtGui.QFont() font.setFamily("Segoe UI") font.setPointSize(11) self.commandLinkButton.setFont(font) self.commandLinkButton.setObjectName("commandLinkButton") self.gridLayout.addWidget(self.commandLinkButton, 7, 0, 1, 1) self.webView = QWebEngineView(self.centralwidget) self.webView.setEnabled(True) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.webView.sizePolicy().hasHeightForWidth()) self.webView.setSizePolicy(sizePolicy) self.webView.setMinimumSize(QtCore.QSize(700, 400)) self.webView.setUrl(QtCore.QUrl("about:blank")) self.webView.setObjectName("webView") self.gridLayout.addWidget(self.webView, 0, 1, 9, 1) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 1105, 23)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.action123 = QtWidgets.QAction(MainWindow) self.action123.setObjectName("action123") MainWindow.setWindowTitle("金融数据获取分析系统") self.init_category_btn.setText("分类显示股票") self.init_code_btn.setText("按编号显示股票") self.interval_label.setText("每条线时间间隔") self.label_4.setText("搜索股票") self.search_btn.setText("搜索") self.log_btn.setText("个人中心") self.log_btn.setStyleSheet("background-color: rgb(209, 175, 222);\n" "color: rgb(255, 255, 255);") self.staDate_label.setText("开始时间") self.label_2.setText("结束时间") self.treeWidget_2.headerItem().setText(0, "列表") self.commandLinkButton.setText("开始") self.action123.setText("123")
class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName(_fromUtf8("MainWindow")) MainWindow.resize(1350, 750) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( MainWindow.sizePolicy().hasHeightForWidth()) MainWindow.setSizePolicy(sizePolicy) self.create_kline_page(MainWindow) #self.stacked_layout = QtWidgets.QStackedLayout() #self.stacked_layout.addWidget(self.create_kline_page(MainWindow)) @LOG.debug_fun def create_kline_page(self, MainWindow): self.centralwidget = QtWidgets.QWidget(MainWindow) #主框 self.centralwidget.setEnabled(True) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) #main window self.mainLayout = QtWidgets.QGridLayout(self.centralwidget) self.mainLayout.setObjectName(_fromUtf8("mainLayout")) self.topLayout(self.mainLayout, 0, 0) self.bottomLayout = QtWidgets.QHBoxLayout( ) # 底层layout 设置 框 包括gridLayout self.bottomLayout.setObjectName(_fromUtf8("bottomLayout")) self.mainLayout.addLayout(self.bottomLayout, 1, 0) self.gridLayout = QtWidgets.QGridLayout() #左侧区域 self.gridLayout.setContentsMargins( -1, -1, -1, 0) # I have no idea how layouts work self.gridLayout.setHorizontalSpacing(0) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.dateEdit_2 = QtWidgets.QDateEdit(self.centralwidget) #End Date sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.dateEdit_2.sizePolicy().hasHeightForWidth()) self.dateEdit_2.setSizePolicy(sizePolicy) self.dateEdit_2.setObjectName(_fromUtf8("dateEdit_2")) self.gridLayout.addWidget(self.dateEdit_2, 4, 1, 1, 1) self.label = QtWidgets.QLabel(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.label.sizePolicy().hasHeightForWidth()) self.label.setSizePolicy(sizePolicy) self.label.setObjectName(_fromUtf8("label")) self.gridLayout.addWidget(self.label, 3, 0, 1, 1) self.dateEdit = QtWidgets.QDateEdit(self.centralwidget) #Start date sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.dateEdit.sizePolicy().hasHeightForWidth()) self.dateEdit.setSizePolicy(sizePolicy) self.dateEdit.setObjectName(_fromUtf8("dateEdit")) self.gridLayout.addWidget(self.dateEdit, 4, 0, 1, 1) self.label_2 = QtWidgets.QLabel(self.centralwidget) #Shows "enddate" sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.label_2.sizePolicy().hasHeightForWidth()) self.label_2.setSizePolicy(sizePolicy) self.label_2.setObjectName(_fromUtf8("label_2")) self.gridLayout.addWidget(self.label_2, 3, 1, 1, 1) self.verticalLayout_3 = QtWidgets.QVBoxLayout() self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3")) self.treeWidget = QtWidgets.QTreeWidget( self.centralwidget) #Displays stock according to business type sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(2) sizePolicy.setHeightForWidth( self.treeWidget.sizePolicy().hasHeightForWidth()) self.treeWidget.setSizePolicy(sizePolicy) self.treeWidget.setObjectName(_fromUtf8("treeWidget")) self.treeWidget.headerItem().setText(0, _fromUtf8("历史数据")) self.verticalLayout_3.addWidget(self.treeWidget) self.gridLayout.addLayout(self.verticalLayout_3, 1, 0, 1, 3) ''' 设置日期按钮 ''' self.DateLinkButton = QtWidgets.QPushButton(self.centralwidget) self.DateButtonATT() self.gridLayout.addWidget(self.DateLinkButton, 4, 2, 1, 1) self.comboBox = QtWidgets.QComboBox( self.centralwidget) #Combobox for Selecting type of graph sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.comboBox.sizePolicy().hasHeightForWidth()) self.comboBox.setSizePolicy(sizePolicy) self.comboBox.setObjectName(_fromUtf8("comboBox")) self.gridLayout.addWidget(self.comboBox, 3, 2, 1, 1) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Maximum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(1) ''' 废弃 左下角 标签 self.treeWidget_2 = QtWidgets.QTreeWidget(self.centralwidget) sizePolicy.setHeightForWidth(self.treeWidget_2.sizePolicy().hasHeightForWidth()) self.treeWidget_2.setSizePolicy(sizePolicy)#Shows what graphs are selected self.treeWidget_2.setObjectName(_fromUtf8("treeWidget_2")) self.treeWidget_2.headerItem().setText(0, _fromUtf8("绘图项")) #self.gridLayout.addWidget(self.treeWidget_2, 5, 0, 1, 3)# 左侧列表 绘图项 #self.treeWidget_2_structure() ''' ''' 左下角 Tab ''' self.TabPart = QtWidgets.QTabWidget(self.centralwidget) sizePolicy.setHeightForWidth( self.TabPart.sizePolicy().hasHeightForWidth()) self.TabPart.setObjectName(_fromUtf8("tabpart")) self.gridLayout.addWidget(self.TabPart, 5, 0, 1, 3) self.TabPartLayout() self.gridLayout.setColumnStretch(0, 60) self.gridLayout.setColumnStretch(1, 20) self.gridLayout.setColumnStretch(2, 20) self.bottomLayout.addLayout(self.gridLayout) ''' 设置绘图区 ''' #self.verticalLayout = QtWidgets.QGridLayout()# #self.verticalLayout.setObjectName(_fromUtf8("grph")) self.GraphTab = QtWidgets.QTabWidget(self.centralwidget) self.GraphTab.setObjectName(_fromUtf8("Graph Tab")) #self.verticalLayout.addWidget(self.GraphTab) self.widget = QtWidgets.QGraphicsView(self.centralwidget) #设置输入图画 sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(1) sizePolicy.setVerticalStretch(1) sizePolicy.setHeightForWidth( self.widget.sizePolicy().hasHeightForWidth()) self.widget.setSizePolicy(sizePolicy) self.widget.setObjectName(_fromUtf8("widget")) #设置第二页 #self.IndexLink=self.GraphTab.addTab(self.widget,'Index Link') self.webView = QWebEngineView(self.centralwidget) self.webView.setMinimumSize(QtCore.QSize(500, 400)) self.webView.setUrl(QtCore.QUrl("about:blank")) self.webView.setObjectName("webView") self.WebTab = self.GraphTab.addTab(self.webView, 'top10') #self.widget = Action_main.PlotCanvas(self,width=5,hegit=4) #This is for displaying html content generated by pyecharts # self.widget = QWebEngineView()#This is for displaying html content generated by pyecharts #self.verticalLayout.addWidget(self.widget) #self.bottomLayout.addLayout(self.verticalLayout) self.bottomLayout.addWidget(self.GraphTab) self.bottomLayout.setStretch(0, 1) self.bottomLayout.setStretch(1, 15) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QToolBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 900, 23)) self.menubar.setObjectName(_fromUtf8("menubar")) #self.menubar.setNativeMenuBar(False) self.combobox = QtWidgets.QComboBox() self.menubar.addWidget(self.combobox) self.combobox.addItems(["K线", "复权", "分笔数据", "历史分钟", "十大股东"]) self.comboBox.setFixedSize(55, 40) MainWindow.addToolBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName(_fromUtf8("statusbar")) MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) #顶层 layout ''' 设置日期按钮属性定义 ''' def DateButtonATT(self): self.DateLinkButton.setObjectName(_fromUtf8("SetDate")) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.DateLinkButton.sizePolicy().hasHeightForWidth()) self.DateLinkButton.setSizePolicy(sizePolicy) self.DateLinkButton.setText(_fromUtf8("")) self.DateLinkButton.setIcon( QtGui.QIcon(QtGui.QPixmap('scr/ico/date_r.ico'))) self.DateLinkButton.setFlat(True) self.DateLinkButton.setIconSize(QtCore.QSize(20, 20)) #self.DateLinkButton.released.connect(self.DateLinkButton.setIcon(QtGui.QIcon(QtGui.QPixmap('scr/ico/date_r.ico')))) def topLayout(self, layout, x=0, y=0): self.topGrid = QtWidgets.QGridLayout() self.topGrid.setObjectName(_fromUtf8("topGrid")) layout.addLayout(self.topGrid, x, y) self.topGrid.setColumnStretch(0, 20) self.topGrid.setColumnStretch(1, 20) self.topGrid.setColumnStretch(2, 20) self.topGrid.setColumnStretch(3, 60) self.topGrid.setColumnStretch(4, 20) self.topGrid.setColumnStretch(5, 20) self.topGrid.setColumnStretch(6, 20) self.clockui() self.topGrid.setSpacing(2) self.topGrid.addWidget(self.lcd, 0, 6) #输入栏 self.code_line = self.code_layout('code') self.topGrid.addLayout(self.code_line, 0, 3) #self.startButton=QtWidgets.QPushButton('Run') #self.topGrid.addWidget(self.startButton,0,0) self.codelabel = QtWidgets.QLabel(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.codelabel.sizePolicy().hasHeightForWidth()) self.codelabel.setSizePolicy(sizePolicy) self.codelabel.setObjectName(_fromUtf8("label")) self.codelabel.setText(_translate("MainWindow", "上海", None)) self.topGrid.addWidget(self.codelabel, 0, 1) #进程 self.pbar = QtWidgets.QProgressBar() self.topGrid.addWidget(self.pbar, 0, 5) self.ProgressBarLayout() def TabPartLayout(self): self.TabPart.setStyleSheet("background: lightgray") self.Funtab = self.TabPart.addTab(QtWidgets.QWidget(), 'Function') self.FDTtab = self.TabPart.addTab(QtWidgets.QWidget(), 'Fundamentals') self.PFTtab = self.TabPart.addTab(QtWidgets.QWidget(), 'Profit') #self.TabFun return ''' def treeWidget_2_structure(self): self.Tree2CYQ=QtWidgets.QTreeWidgetItem(self.treeWidget_2) self.Tree2CYQ.setText(0,'CYQ') self.Tree2CYQ.checkState(0) ''' def code_layout(self, name): lineGrid = QtWidgets.QGridLayout() self.code_edit = QtWidgets.QLineEdit() self.code_edit.setPlaceholderText('输入code') self.code_edit.setAlignment(QtCore.Qt.AlignCenter) lineGrid.addWidget(self.code_edit, 0, 0) self.searchButton = QtWidgets.QPushButton() self.searchButton.setIcon( QtGui.QIcon(QtGui.QPixmap('scr/ico/search_r.ico'))) self.searchButton.setFlat(True) self.searchButton.setIconSize(QtCore.QSize(20, 20)) #self.searchButton.setStyleSheet("border: 0px") lineGrid.addWidget(self.searchButton, 0, 1) return lineGrid def ProgressBarLayout(self): self.pbar.reset() self.pbar.setRange(0, 100) ''' 进度条步进 ''' def ProgressBarStep(self): if self.step >= 100: self.timer.stop() self.btn.setText('Finished') return self.step = self.step + 1 self.pbar.setValue(self.step) #设置时钟UI def clockui(self): self.lcd = QtWidgets.QLCDNumber() self.lcd.setDigitCount(10) self.lcd.setMode(self.lcd.Dec) self.lcd.display(time.strftime("%X", time.localtime())) self.timer = QtCore.QTimer() self.timer.setInterval(1000) self.timer.start() self.timer.timeout.connect(self.onTimerOut) #LED aydispl def onTimerOut(self): self.lcd.display(time.strftime("%X", time.localtime())) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(_translate("Tuchart", "Tuchart", None)) self.label.setText(_translate("MainWindow", "Start", None)) self.label_2.setText(_translate("MainWindow", "End", None))
class ZhuNote(QWidget): html_hi = '<html> <body> <p> HTML Viewer </p> </body> </html>' html_no = '<html> <body> <p> No HTML </p> </body> </html>' def __init__(self, path=None): QWidget.__init__(self) self.setPath(path) self.initUi() self.setFont() self.loadMaster() def setPath(self, path): if path is None: self.path = os.getcwd() else: self.path = path print('Working directory:', self.path) def initUi(self): print('Initializing GUI...') w, h = 1000, 1000 self.find = ZhuNoteFind(self) # self as parent self.tree = ZhuNoteTree() self.form = ZhuNoteForm(self.path) self.wbrs = QWebEngineView() splitter1 = QSplitter(Qt.Horizontal) splitter1.addWidget(self.form) splitter1.addWidget(self.wbrs) splitter1.setSizes([w / 2, w / 2]) splitter = QSplitter(Qt.Vertical) splitter.addWidget(self.tree) splitter.addWidget(splitter1) splitter.setStretchFactor(0, 1) splitter.setStretchFactor(1, 2) vbox = QVBoxLayout() vbox.addWidget(self.find) vbox.addWidget(splitter) self.setLayout(vbox) self.wbrs.setHtml(self.html_hi) self.tree.sigViewItem.connect(self.form.viewDict) self.tree.sigViewItem.connect(self.viewHtml) self.find.sigClear.connect(self.clear) self.find.sigString.connect(self.search) self.find.sigUpdateMaster.connect(self.updateMaster) self.find.sigFont.connect(self.setFont) self.setWindowTitle('Main - ZhuNote') #self.setGeometry(x, y, w, h) #self.move(x, y) self.resize(w, h) #self.show() #self.tree.show() #self.form.show() styleName = 'Cleanlooks' # QStyleFactory.keys() # ['Windows', 'Motif', 'CDE', 'Plastique', 'GTK+', 'Cleanlooks'] QApplication.setStyle(QStyleFactory.create(styleName)) self.find.txtSearch.setFocus() # not work yet self.actExit = QAction('Exit', self) self.actExit.setShortcut('Ctrl+Q') self.actExit.triggered.connect(self.closeAllWindows) self.addAction(self.actExit) def viewHtml(self, dictNote): htmlfn = dictNote['HTML'] fn = os.path.join(self.path, htmlfn) if os.path.isfile(fn): url = QUrl.fromLocalFile(fn) self.wbrs.load(url) else: #self.wbrs.setHtml('') # blank page self.wbrs.setHtml(self.html_no) def setFont(self, font=None): if font is None: font = QFont() # default font font.setFamily('Courier New') font.setPointSize(11) self.find.txtSearch.setFont(font) self.tree.setFont(font) self.form.setFont(font) def closeAllWindows(self): app = QApplication.instance() app.closeAllWindows() def loadMaster(self): fn = 'notemaster.pickle' self.masterfn = os.path.join(self.path, fn) if os.path.isfile(self.masterfn): print('Loading database:', self.masterfn) with open(self.masterfn, 'rb') as f: self.dod = pickle.load(f) def clear(self): self.find.txtSearch.clear() self.tree.clear() self.form.clear() self.wbrs.setHtml(self.html_hi) def search(self, string): self.tree.clear() # clear tree before a new search self.tree.lod = [] # used in tree class # break string to words by space stringLC = string.lower() words = stringLC.split() for key in self.dod: dictNote = self.dod[key] keyword = dictNote['Keyword'] title = dictNote['Title'] sstring = title + ' ' + keyword # string to be searched sstring = sstring.lower() if any(word in sstring for word in words): # weak search #if all(word in kw for word in words): # strong search self.tree.addItem(dictNote) self.tree.sortItems(0, Qt.AscendingOrder) def updateMaster(self): """ i self.path : string, path o file : write pickle file (list of dictionaries) In path, each pkl file contains one dictionary. This method merges all the dictionaries to a list for search. """ print('Number of entries old =', len(self.dod)) mt_master = os.path.getmtime(self.masterfn) for fn in os.listdir(self.path): if fn.endswith(".pkl"): ffn = os.path.join(self.path, fn) mt_entry = os.path.getmtime(ffn) if mt_entry >= mt_master: # if True: with open(ffn, 'rb') as f: dictNote = pickle.load(f) title = dictNote['Title'] if title in self.dod: print("Modify existing entry:", ffn) else: print("Add new entry:", ffn) self.dod[title] = dictNote with open(self.masterfn, 'wb') as f: pickle.dump(self.dod, f, -1) print('Merged file is', self.masterfn) print('Number of entries new =', len(self.dod))
def create_kline_page(self, MainWindow): self.centralwidget = QtWidgets.QWidget(MainWindow) #主框 self.centralwidget.setEnabled(True) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) #main window self.mainLayout = QtWidgets.QGridLayout(self.centralwidget) self.mainLayout.setObjectName(_fromUtf8("mainLayout")) self.topLayout(self.mainLayout, 0, 0) self.bottomLayout = QtWidgets.QHBoxLayout( ) # 底层layout 设置 框 包括gridLayout self.bottomLayout.setObjectName(_fromUtf8("bottomLayout")) self.mainLayout.addLayout(self.bottomLayout, 1, 0) self.gridLayout = QtWidgets.QGridLayout() #左侧区域 self.gridLayout.setContentsMargins( -1, -1, -1, 0) # I have no idea how layouts work self.gridLayout.setHorizontalSpacing(0) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.dateEdit_2 = QtWidgets.QDateEdit(self.centralwidget) #End Date sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.dateEdit_2.sizePolicy().hasHeightForWidth()) self.dateEdit_2.setSizePolicy(sizePolicy) self.dateEdit_2.setObjectName(_fromUtf8("dateEdit_2")) self.gridLayout.addWidget(self.dateEdit_2, 4, 1, 1, 1) self.label = QtWidgets.QLabel(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.label.sizePolicy().hasHeightForWidth()) self.label.setSizePolicy(sizePolicy) self.label.setObjectName(_fromUtf8("label")) self.gridLayout.addWidget(self.label, 3, 0, 1, 1) self.dateEdit = QtWidgets.QDateEdit(self.centralwidget) #Start date sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.dateEdit.sizePolicy().hasHeightForWidth()) self.dateEdit.setSizePolicy(sizePolicy) self.dateEdit.setObjectName(_fromUtf8("dateEdit")) self.gridLayout.addWidget(self.dateEdit, 4, 0, 1, 1) self.label_2 = QtWidgets.QLabel(self.centralwidget) #Shows "enddate" sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.label_2.sizePolicy().hasHeightForWidth()) self.label_2.setSizePolicy(sizePolicy) self.label_2.setObjectName(_fromUtf8("label_2")) self.gridLayout.addWidget(self.label_2, 3, 1, 1, 1) self.verticalLayout_3 = QtWidgets.QVBoxLayout() self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3")) self.treeWidget = QtWidgets.QTreeWidget( self.centralwidget) #Displays stock according to business type sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(2) sizePolicy.setHeightForWidth( self.treeWidget.sizePolicy().hasHeightForWidth()) self.treeWidget.setSizePolicy(sizePolicy) self.treeWidget.setObjectName(_fromUtf8("treeWidget")) self.treeWidget.headerItem().setText(0, _fromUtf8("历史数据")) self.verticalLayout_3.addWidget(self.treeWidget) self.gridLayout.addLayout(self.verticalLayout_3, 1, 0, 1, 3) ''' 设置日期按钮 ''' self.DateLinkButton = QtWidgets.QPushButton(self.centralwidget) self.DateButtonATT() self.gridLayout.addWidget(self.DateLinkButton, 4, 2, 1, 1) self.comboBox = QtWidgets.QComboBox( self.centralwidget) #Combobox for Selecting type of graph sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.comboBox.sizePolicy().hasHeightForWidth()) self.comboBox.setSizePolicy(sizePolicy) self.comboBox.setObjectName(_fromUtf8("comboBox")) self.gridLayout.addWidget(self.comboBox, 3, 2, 1, 1) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Maximum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(1) ''' 废弃 左下角 标签 self.treeWidget_2 = QtWidgets.QTreeWidget(self.centralwidget) sizePolicy.setHeightForWidth(self.treeWidget_2.sizePolicy().hasHeightForWidth()) self.treeWidget_2.setSizePolicy(sizePolicy)#Shows what graphs are selected self.treeWidget_2.setObjectName(_fromUtf8("treeWidget_2")) self.treeWidget_2.headerItem().setText(0, _fromUtf8("绘图项")) #self.gridLayout.addWidget(self.treeWidget_2, 5, 0, 1, 3)# 左侧列表 绘图项 #self.treeWidget_2_structure() ''' ''' 左下角 Tab ''' self.TabPart = QtWidgets.QTabWidget(self.centralwidget) sizePolicy.setHeightForWidth( self.TabPart.sizePolicy().hasHeightForWidth()) self.TabPart.setObjectName(_fromUtf8("tabpart")) self.gridLayout.addWidget(self.TabPart, 5, 0, 1, 3) self.TabPartLayout() self.gridLayout.setColumnStretch(0, 60) self.gridLayout.setColumnStretch(1, 20) self.gridLayout.setColumnStretch(2, 20) self.bottomLayout.addLayout(self.gridLayout) ''' 设置绘图区 ''' #self.verticalLayout = QtWidgets.QGridLayout()# #self.verticalLayout.setObjectName(_fromUtf8("grph")) self.GraphTab = QtWidgets.QTabWidget(self.centralwidget) self.GraphTab.setObjectName(_fromUtf8("Graph Tab")) #self.verticalLayout.addWidget(self.GraphTab) self.widget = QtWidgets.QGraphicsView(self.centralwidget) #设置输入图画 sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(1) sizePolicy.setVerticalStretch(1) sizePolicy.setHeightForWidth( self.widget.sizePolicy().hasHeightForWidth()) self.widget.setSizePolicy(sizePolicy) self.widget.setObjectName(_fromUtf8("widget")) #设置第二页 #self.IndexLink=self.GraphTab.addTab(self.widget,'Index Link') self.webView = QWebEngineView(self.centralwidget) self.webView.setMinimumSize(QtCore.QSize(500, 400)) self.webView.setUrl(QtCore.QUrl("about:blank")) self.webView.setObjectName("webView") self.WebTab = self.GraphTab.addTab(self.webView, 'top10') #self.widget = Action_main.PlotCanvas(self,width=5,hegit=4) #This is for displaying html content generated by pyecharts # self.widget = QWebEngineView()#This is for displaying html content generated by pyecharts #self.verticalLayout.addWidget(self.widget) #self.bottomLayout.addLayout(self.verticalLayout) self.bottomLayout.addWidget(self.GraphTab) self.bottomLayout.setStretch(0, 1) self.bottomLayout.setStretch(1, 15) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QToolBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 900, 23)) self.menubar.setObjectName(_fromUtf8("menubar")) #self.menubar.setNativeMenuBar(False) self.combobox = QtWidgets.QComboBox() self.menubar.addWidget(self.combobox) self.combobox.addItems(["K线", "复权", "分笔数据", "历史分钟", "十大股东"]) self.comboBox.setFixedSize(55, 40) MainWindow.addToolBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName(_fromUtf8("statusbar")) MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow)
def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(1105, 583) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.gridLayout = QtWidgets.QGridLayout(self.centralwidget) self.gridLayout.setObjectName("gridLayout") self.horizontalLayout_3 = QtWidgets.QHBoxLayout() self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.combobox = QtWidgets.QComboBox(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.combobox.sizePolicy().hasHeightForWidth()) self.combobox.setSizePolicy(sizePolicy) self.combobox.setObjectName("combobox") self.combobox.addItems(["K线", "复权", "分笔数据", "历史分钟", "十大股东"]) self.horizontalLayout_3.addWidget(self.combobox) spacerItem = QtWidgets.QSpacerItem(110, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_3.addItem(spacerItem) self.gridLayout.addLayout(self.horizontalLayout_3, 0, 0, 1, 1) self.horizontalLayout_5 = QtWidgets.QHBoxLayout() self.horizontalLayout_5.setObjectName("horizontalLayout_5") self.init_category_btn = QtWidgets.QPushButton(self.centralwidget) self.init_category_btn.setMaximumSize(QtCore.QSize(90, 16777215)) self.init_category_btn.setObjectName("init_category_btn") self.horizontalLayout_5.addWidget(self.init_category_btn) self.init_code_btn = QtWidgets.QPushButton(self.centralwidget) self.init_code_btn.setMinimumSize(QtCore.QSize(90, 0)) self.init_code_btn.setMaximumSize(QtCore.QSize(90, 16777215)) self.init_code_btn.setObjectName("init_code_btn") self.horizontalLayout_5.addWidget(self.init_code_btn) self.gridLayout.addLayout(self.horizontalLayout_5, 2, 0, 1, 1) self.horizontalLayout_8 = QtWidgets.QHBoxLayout() self.horizontalLayout_8.setObjectName("horizontalLayout_8") self.interval_label = QtWidgets.QLabel(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.interval_label.sizePolicy().hasHeightForWidth()) self.interval_label.setSizePolicy(sizePolicy) self.interval_label.setMinimumSize(QtCore.QSize(0, 0)) self.interval_label.setMaximumSize(QtCore.QSize(100, 16777215)) self.interval_label.setObjectName("interval_label") self.horizontalLayout_8.addWidget(self.interval_label) self.comboBox = QtWidgets.QComboBox(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.comboBox.sizePolicy().hasHeightForWidth()) self.comboBox.setSizePolicy(sizePolicy) self.comboBox.setMaximumSize(QtCore.QSize(80, 16777215)) self.comboBox.setObjectName("comboBox") self.horizontalLayout_8.addWidget(self.comboBox) self.gridLayout.addLayout(self.horizontalLayout_8, 4, 0, 1, 1) self.horizontalLayout_2 = QtWidgets.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.dateEdit = QtWidgets.QDateEdit(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.dateEdit.sizePolicy().hasHeightForWidth()) self.dateEdit.setSizePolicy(sizePolicy) self.dateEdit.setMinimumSize(QtCore.QSize(80, 0)) self.dateEdit.setMaximumSize(QtCore.QSize(90, 16777215)) self.dateEdit.setObjectName("dateEdit") self.horizontalLayout_2.addWidget(self.dateEdit) self.dateEdit_2 = QtWidgets.QDateEdit(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.dateEdit_2.sizePolicy().hasHeightForWidth()) self.dateEdit_2.setSizePolicy(sizePolicy) self.dateEdit_2.setMinimumSize(QtCore.QSize(85, 0)) self.dateEdit_2.setMaximumSize(QtCore.QSize(90, 16777215)) self.dateEdit_2.setObjectName("dateEdit_2") self.horizontalLayout_2.addWidget(self.dateEdit_2) self.gridLayout.addLayout(self.horizontalLayout_2, 6, 0, 1, 1) self.treeWidget = QtWidgets.QTreeWidget(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.treeWidget.sizePolicy().hasHeightForWidth()) self.treeWidget.setSizePolicy(sizePolicy) self.treeWidget.setMinimumSize(QtCore.QSize(160, 0)) self.treeWidget.setMaximumSize(QtCore.QSize(200, 16777215)) self.treeWidget.setObjectName("treeWidget") self.treeWidget.headerItem().setText(0, "历史数据---右键菜单选择") self.gridLayout.addWidget(self.treeWidget, 3, 0, 1, 1) self.horizontalLayout = QtWidgets.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") self.label_4 = QtWidgets.QLabel(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.label_4.sizePolicy().hasHeightForWidth()) self.label_4.setSizePolicy(sizePolicy) self.label_4.setMaximumSize(QtCore.QSize(48, 16777215)) self.label_4.setObjectName("label_4") self.horizontalLayout.addWidget(self.label_4) self.search_lineEdit = QtWidgets.QLineEdit(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.search_lineEdit.sizePolicy().hasHeightForWidth()) self.search_lineEdit.setSizePolicy(sizePolicy) self.search_lineEdit.setMinimumSize(QtCore.QSize(75, 0)) self.search_lineEdit.setMaximumSize(QtCore.QSize(90, 16777215)) self.search_lineEdit.setMaxLength(20) self.search_lineEdit.setObjectName("search_lineEdit") self.horizontalLayout.addWidget(self.search_lineEdit) self.search_btn = QtWidgets.QPushButton(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.search_btn.sizePolicy().hasHeightForWidth()) self.search_btn.setSizePolicy(sizePolicy) self.search_btn.setMinimumSize(QtCore.QSize(40, 0)) self.search_btn.setMaximumSize(QtCore.QSize(30, 16777215)) self.search_btn.setObjectName("search_btn") self.horizontalLayout.addWidget(self.search_btn) self.gridLayout.addLayout(self.horizontalLayout, 1, 0, 1, 1) self.horizontalLayout_4 = QtWidgets.QHBoxLayout() self.horizontalLayout_4.setObjectName("horizontalLayout_4") self.staDate_label = QtWidgets.QLabel(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.staDate_label.sizePolicy().hasHeightForWidth()) self.staDate_label.setSizePolicy(sizePolicy) self.staDate_label.setMinimumSize(QtCore.QSize(80, 0)) self.staDate_label.setMaximumSize(QtCore.QSize(90, 16777215)) self.staDate_label.setObjectName("staDate_label") self.horizontalLayout_4.addWidget(self.staDate_label) self.label_2 = QtWidgets.QLabel(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth()) self.label_2.setSizePolicy(sizePolicy) self.label_2.setMinimumSize(QtCore.QSize(80, 0)) self.label_2.setMaximumSize(QtCore.QSize(90, 16777215)) self.label_2.setObjectName("label_2") self.horizontalLayout_4.addWidget(self.label_2) self.gridLayout.addLayout(self.horizontalLayout_4, 5, 0, 1, 1) self.treeWidget_2 = QtWidgets.QTreeWidget(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.treeWidget_2.sizePolicy().hasHeightForWidth()) self.treeWidget_2.setSizePolicy(sizePolicy) self.treeWidget_2.setMinimumSize(QtCore.QSize(160, 0)) self.treeWidget_2.setMaximumSize(QtCore.QSize(200, 16777215)) self.treeWidget_2.setObjectName("treeWidget_2") font = QtGui.QFont("Times", 12, QtGui.QFont.Bold) self.treeWidget_2.setFont(font) self.gridLayout.addWidget(self.treeWidget_2, 8, 0, 1, 1) self.commandLinkButton = QtWidgets.QCommandLinkButton(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.commandLinkButton.sizePolicy().hasHeightForWidth()) self.commandLinkButton.setSizePolicy(sizePolicy) self.commandLinkButton.setMaximumSize(QtCore.QSize(110, 16777215)) font = QtGui.QFont() font.setFamily("Segoe UI") font.setPointSize(11) self.commandLinkButton.setFont(font) self.commandLinkButton.setObjectName("commandLinkButton") self.gridLayout.addWidget(self.commandLinkButton, 7, 0, 1, 1) self.webView = QWebEngineView(self.centralwidget) self.webView.setEnabled(True) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.webView.sizePolicy().hasHeightForWidth()) self.webView.setSizePolicy(sizePolicy) self.webView.setMinimumSize(QtCore.QSize(500, 400)) self.webView.setUrl(QtCore.QUrl("about:blank")) self.webView.setObjectName("webView") self.gridLayout.addWidget(self.webView, 0, 1, 9, 1) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 1105, 23)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.action123 = QtWidgets.QAction(MainWindow) self.action123.setObjectName("action123") MainWindow.setWindowTitle("Tuchart") self.init_category_btn.setText("分类显示股票") self.init_code_btn.setText("按编号显示股票") self.interval_label.setText("每条线时间间隔") self.label_4.setText("搜索股票") self.search_btn.setText("搜索") self.staDate_label.setText("开始时间") self.label_2.setText("结束时间") self.treeWidget_2.headerItem().setText(0,"绘图项") self.commandLinkButton.setText("开始绘图") self.action123.setText("123")
class Ui_Form(object): def setupUi(self, Form): Form.setObjectName("Form") Form.resize(442, 824) Form.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) Form.setWindowFlags(QtCore.Qt.CustomizeWindowHint) self.commandLinkButton = QtWidgets.QCommandLinkButton(Form) self.commandLinkButton.setGeometry(QtCore.QRect(300, 754, 142, 70)) self.commandLinkButton.setObjectName("commandLinkButton") self.commandLinkButton.setStyleSheet("background-color: rgb(209, 175, 222);\n""color: rgb(64, 0, 64);") self.commandLinkButton1 = QtWidgets.QCommandLinkButton(Form) self.commandLinkButton1.setGeometry(QtCore.QRect(0, 754, 142, 70)) self.commandLinkButton1.setObjectName("commandLinkButton") self.commandLinkButton1.setStyleSheet("background-color: rgb(209, 175, 222);\n""color: rgb(64, 0, 64);") self.commandLinkButton.clicked.connect(self.select) self.commandLinkButton1.clicked.connect(self.analy) self.combobox = QtWidgets.QComboBox(Form) self.combobox.setGeometry(QtCore.QRect(146, 754, 140, 35)) self.combobox.addItems(["AQI散点","AQI热图","分时AQI"]) #self.combobox.currentIndexChanged.connect(self.analy) self.combobox.show() self.combobox1 = QtWidgets.QComboBox(Form) self.combobox1.setGeometry(QtCore.QRect(146, 794, 140, 35)) self.combobox1.addItems(["逃脱路线","推荐城市"]) self.combobox1.show() self.webView = QWebEngineView(Form) self.webView.setGeometry(0,0,440,750) self.webView.load(QUrl("file:///D:/源代码/aqi.html")) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): _translate = QtCore.QCoreApplication.translate Form.setWindowTitle(_translate("Form", "逃离阴霾")) self.commandLinkButton.setText(_translate("Form", "\n获取AQI")) self.commandLinkButton1.setText(_translate("Form", "\n计划逃跑")) def analy(self,lastcity): if self.combobox1.currentText()==u"推荐城市": print('查看更多信息') self.best() if self.combobox1.currentText()==u"逃脱路线": print('逃脱') self.escape() #self.combobox.hide() #self.combobox.clear() def select(self): if self.combobox.currentText()==u"分时AQI": self.draw_city_aqi(nowTime) if self.combobox.currentText()==u"AQI散点": self.draw1(nowTime) #self.combobox.show() if self.combobox.currentText()==u"AQI热图": self.draw(nowTime) #if self.combobox1.currentText()==u"逃脱路线": #def draw2(self,time = None): def draw_city_aqi(self, time = None): #from opendatatools import aqi line = Line("长沙当日AQI", width=425, height=730) data_dict = {} city=local print("getting data for %s" % city) #df_aqi = aqi.get_daily_aqi_onecity(city) aqi_hour=pd.read_csv('daylocal.csv') #print(df_aqi) #print(aqi_hour) aqi_hour.set_index('time', inplace=True) aqi_hour.sort_index(ascending=True, inplace=True) if time is not None: aqi_hour = aqi_hour[aqi_hour.index <= time] data_dict[city] = aqi_hour axis_x = aqi_hour.index axis_y = aqi_hour['aqi'] line.add("%s" % (city), axis_x, axis_y, mark_point=["max","min"]) line.render('aqi.html') #return line self.webView.load(QUrl("file:///D:/源代码/aqi.html")) # self.webView.reload() self.webView.repaint() self.webView.update() def draw1(self,time = None): global local # some city cannot by process by echart echart_unsupported_city = [ "菏泽市", "襄阳市", "恩施州", "湘西州","阿坝州", "延边州", "甘孜州", "凉山州", "黔西南州", "黔东南州", "黔南州", "普洱市", "楚雄州", "红河州", "文山州", "西双版纳州", "大理州", "德宏州", "怒江州", "迪庆州", "昌都市", "山南市", "林芝市", "临夏州", "甘南州", "海北州", "黄南州", "海南州", "果洛州", "玉树州", "海西州", "昌吉州", "博州", "克州", "伊犁哈萨克州"] if time is None and len(df_aqi) > 0: time = df_aqi['time'][0] data = [] for index, row in df_aqi.iterrows(): city = row['city'] aqi = row['aqi'] if city=='长沙市': print(city) localAQI=aqi if city in echart_unsupported_city: continue data.append( (city, aqi) ) #lcaqi=''.join(localAQI) #print(lcaqi) if localAQI<70: geo = Geo("全国最新主要城市空气质量(AQI) \n 当前城市:长沙 AQI:%s \n \n您在的城市不错,不开心的话,也出去走走吧" % localAQI, "数据来源于环保部网站", title_color="#fff", title_pos="center", width=425, height=730, background_color='#404a59') else: geo = Geo("全国最新主要城市空气质量(AQI) \n 当前城市:长沙 AQI:%s \n \n环境很差!!出去走走吧,已经为您规划路线" % localAQI, "数据来源于环保部网站", title_color="#fff", title_pos="center", width=425, height=730, background_color='#404a59') attr, value = geo.cast(data) geo.add("", attr, value, visual_range=[0, 150], maptype='china',visual_text_color="#fff", symbol_size=10, is_visualmap=True, label_formatter='{b}', # 指定 label 只显示城市名 tooltip_formatter='{c}', # 格式:经度、纬度、值 label_emphasis_textsize=15, # 指定标签选中高亮时字体大小 label_emphasis_pos='right' # 指定标签选中高亮时字体位置 ) #print(data) geo.render('aqi.html') self.webView.load(QUrl("file:///D:/源代码/aqi.html")) #self.webView.reload() self.webView.repaint() self.webView.update() #return geo def draw(self,time = None): # some city cannot by process by echart echart_unsupported_city = [ "菏泽市", "襄阳市", "恩施州", "湘西州","阿坝州", "延边州", "甘孜州", "凉山州", "黔西南州", "黔东南州", "黔南州", "普洱市", "楚雄州", "红河州", "文山州", "西双版纳州", "大理州", "德宏州", "怒江州", "迪庆州", "昌都市", "山南市", "林芝市", "临夏州", "甘南州", "海北州", "黄南州", "海南州", "果洛州", "玉树州", "海西州", "昌吉州", "博州", "克州", "伊犁哈萨克州"] if time is None and len(df_aqi) > 0: time = df_aqi['time'][0] data = [] for index, row in df_aqi.iterrows(): city = row['city'] aqi = row['aqi'] if city=='长沙市': print(city) localAQI=aqi if city in echart_unsupported_city: continue data.append( (city, aqi) ) if localAQI<70: geo = Geo("全国最新主要城市空气质量(AQI) \n 当前城市:长沙 AQI:%s \n \n您在的城市不错,不开心的话,也出去走走吧" % localAQI, "数据来源于环保部网站", title_color="#fff", title_pos="center", width=425, height=730, background_color='#404a59') else: geo = Geo("全国最新主要城市空气质量(AQI) \n 当前城市:长沙 AQI:%s \n \n环境很差!!出去走走吧,已经为您规划路线" % localAQI, "数据来源于环保部网站", title_color="#fff", title_pos="center", width=425, height=730, background_color='#404a59') attr, value = geo.cast(data) geo.add("", attr, value, type="heatmap", is_visualmap=True, visual_range=[0, 600], visual_text_color='#fff') #print(data) geo.render('aqi.html') self.webView.load(QUrl("file:///D:/源代码/aqi.html")) #self.webView.reload() self.webView.repaint() self.webView.update() #return geo def escape(self): echart_unsupported_city = [ "菏泽市", "襄阳市", "恩施州", "湘西州","阿坝州", "延边州", "甘孜州", "凉山州", "黔西南州", "黔东南州", "黔南州", "普洱市", "楚雄州", "红河州", "文山州", "西双版纳州", "大理州", "德宏州", "怒江州", "迪庆州", "昌都市", "山南市", "林芝市", "临夏州", "甘南州", "海北州", "黄南州", "海南州", "果洛州", "玉树州", "海西州", "昌吉州", "博州", "克州", "伊犁哈萨克州"] data = [] for index, row in df_aqi.iterrows(): city = row['city'] aqi = row['aqi'] if city=='长沙市': print(city) localAQI=aqi if city in echart_unsupported_city: continue for index, row in df_aqi.iterrows(): city = row['city'] aqi = row['aqi'] if city in echart_unsupported_city: continue if aqi < localAQI and aqi<20 : data.append( ['长沙',city] ) global lastcity lastcity=city style = Style( title_top="#fff", title_pos = "center", title_color="#fff", width=425, height=730, background_color="#404a59" ) style_geo = style.add( is_label_show=True, line_curve=0.2,#线条曲度 line_opacity=0.6, legend_text_color="#fff",#图例文字颜色 legend_pos="right",#图例位置 geo_effect_symbol="plane",#特效形状 geo_effect_symbolsize=15,#特效大小 label_color=['#a6c84c', '#ffa022', '#46bee9'], label_pos="right", label_formatter="{b}",#//标签内容格式器 label_text_color="#fff", ) print(data) print(lastcity) geolines = GeoLines("逃离路线", **style.init_style) geolines.add("出发", data, **style_geo) geolines.render('aqi.html') self.webView.load(QUrl("file:///D:/源代码/aqi.html")) #self.webView.reload() self.webView.repaint() self.webView.update() def best(self): global lastcity url='https://m.baidu.com/s?from=1019146b&bd_page_type=1&word='+lastcity print(url) self.webView.load(QUrl(url)) #self.webView.reload() self.webView.repaint() self.webView.update()
@Slot(str) def linkHovered(hoveredLink): print(hoveredLink) # alternatively, run an alert box # page.runJavaScript("alert(\""+hoveredLink+"\")") def urlChanged(qulr): print("url changed to: ") print(qulr) app = QApplication([]) view = QWebEngineView() page = view.page() view.loadStarted.connect(print("loadStarted")) view.loadProgress.connect(print("loadProgress")) view.loadFinished.connect(finishLoading) view.titleChanged.connect(titleChanged) page.selectionChanged.connect(selectionChanged) page.linkHovered.connect(linkHovered) page.urlChanged.connect(urlChanged) # content in unicode html format - Content larger than 2 MB cannot be displayed html = "<h1>Heading</h1><p>paragraph</p><p><a href=\"https://marvel.bible\"><img src='marvel.png' alt='Marvel.Bible icon'></a></p>" # External objects, such as stylesheets or images referenced in the HTML document, are located RELATIVE TO baseUrl .
class MainWindow_UI(object): def __init__(self): self.WindowStyle="""background-color:rgba(0, 0, 0, 0); border-width: 1px; border-style: solid solid solid solid; border-color: white black black white; border-radius: 4px; """ self.WingetStyle=""" background:white; border-width: 0.5px; border-style: solid solid solid solid; border-color: black; border-radius: 2px; """ self.LogText ="""2018-3-8 15:09:18 开始奔跑,good luck!/n""" def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(1350,750) MainWindow.setWindowTitle('GUI 界面') sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth()) MainWindow.setSizePolicy(sizePolicy) self.create_window(MainWindow) self.p=PatientLoginWindow() #按钮的动作 self.webButtonAction() self.PatientButtonAction() def create_window(self,MainWindow): self.centralwidget = QtWidgets.QWidget(MainWindow) #主框 self.centralwidget.setStyleSheet(self.WindowStyle) MainWindow.setCentralWidget(self.centralwidget) self.centralwidget.setEnabled(True) self.centralwidget.setObjectName("centralwidget") self.createLeftGroupBox() self.createGraphBox() self.createRightGroupBox() self.creatFormGroupBox() mainLayout = QtWidgets.QVBoxLayout(self.centralwidget) hboxLayout = QtWidgets.QHBoxLayout() #hboxLayout.addStretch() hboxLayout.addWidget(self.LeftGroupBox) hboxLayout.addWidget(self.GraphTab) hboxLayout.addWidget(self.RightGroupBox) hboxLayout.setSpacing(10) #设置间隔信息 hboxLayout.setStretch(0,5) hboxLayout.setStretch(1,400) hboxLayout.setStretch(2,60) mainLayout.addLayout(hboxLayout) mainLayout.addWidget(self.formGroupBox) mainLayout.setStretch(0, 90) mainLayout.setStretch(1, 10) #self.setLayout(mainLayout) def createGraphBox(self): self.GraphTab=QtWidgets.QTabWidget() self.GraphTab.setStyleSheet(self.WingetStyle) self.GraphTab.setObjectName("Graph Tab") self.createTAB() def createTAB(self): self.webView = QWebEngineView(self.centralwidget) self.webView.setMinimumSize(QtCore.QSize(500, 400)) self.webView.setUrl(QtCore.QUrl("about:blank")) self.webView.setObjectName("webView") self.WebTab=self.GraphTab.addTab(self.webView,'Web view') #self.GraphBox=QtWidgets.QWidget() #self.GraphTab=self.GraphTab.addTab(self.GraphBox,'graph view') def setQbutton(self,QButton,pixPATH,name): self.ButtonStyle=""" background:rgba(0, 0, 0, 0); border-width: 0.5px; border-style: none; border-color: black; border-radius: 2px; icon-size:50px 5px; """ QButton.setText(name) QButton.setIcon(QtGui.QIcon(QtGui.QPixmap(pixPATH))) QButton.setFixedSize(68,68)#设置按钮大小 QButton.setStyleSheet(self.ButtonStyle) QButton.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)#设置文字在图标面 #QButton.setIconSize(150,150) def createLeftGroupBox(self): self.LeftGroupBox = QtWidgets.QGroupBox("Grid layout") self.LeftGroupBox.setStyleSheet(self.WingetStyle) #self.LeftGroupBox.setFixedSize(200,600) layout = QtWidgets.QGridLayout() ''' 创建按钮 ''' self.DatasButton=QtWidgets.QToolButton()#数据按钮 self.GraphButton=QtWidgets.QToolButton()#绘图 self.ContactsButton=QtWidgets.QToolButton()#联系人 self.PatientButton=QtWidgets.QToolButton()#病人信息 self.FileButton=QtWidgets.QToolButton()#文件 self.WebButton=QtWidgets.QToolButton()#网络 self.CloudButton=QtWidgets.QToolButton() self.ScanButton=QtWidgets.QToolButton() ''' 设置按钮的外观 ''' self.setQbutton(self.DatasButton,'ICON\\pie.ico',"Date") self.setQbutton(self.GraphButton,'ICON\\bar.ico',"Graph") self.setQbutton(self.ContactsButton,'ICON\\contacts.ico',"contacts") self.setQbutton(self.PatientButton,'ICON\\patient.ico',"patient") self.setQbutton(self.FileButton,'ICON\\file.ico',"File") self.setQbutton(self.WebButton,'ICON\\baidu.ico',"Web") self.setQbutton(self.CloudButton,'ICON\\Cloud.ico',"Cloud") self.setQbutton(self.ScanButton,'ICON\\Scan.png',"Scan") ''' 设置按钮位置信息 ''' layout.setSpacing(2) layout.addWidget(self.DatasButton,0,0) layout.addWidget(self.GraphButton,1,0) layout.addWidget(self.ContactsButton,0,1) layout.addWidget(self.PatientButton,1,1) layout.addWidget(self.FileButton,2,0) layout.addWidget(self.WebButton,2,1) layout.addWidget(self.CloudButton,3,0) layout.addWidget(self.ScanButton,4,0) self.LeftGroupBox.setLayout(layout) def createRightGroupBox(self): self.RightGroupBox = QtWidgets.QGroupBox("Vbox layout") self.RightGroupBox.setStyleSheet(self.WingetStyle) layout = QtWidgets.QGridLayout() bigEditor = QtWidgets.QTextEdit() bigEditor.setPlainText("搭载了空间冷原子钟等14项应用载荷,以及失重心血管研究等航天医学实验设备 " "开展空间科学及技术试验.") layout.addWidget(bigEditor) self.RightGroupBox.setLayout(layout) def creatFormGroupBox(self): self.formGroupBox = QtWidgets.QGroupBox("Form layout") self.formGroupBox.setStyleSheet(self.WingetStyle) layout = QtWidgets.QFormLayout() performanceLabel = QtWidgets.QLabel("Console:") performanceEditor = QtWidgets.QLineEdit("目前显示的都是<信息>") planLabel = QtWidgets.QLabel("History Log:") self.planEditor = QtWidgets.QTextEdit() self.planEditor.setPlainText(self.LogText) layout.addRow(performanceLabel,performanceEditor) layout.addRow(planLabel,self.planEditor) self.formGroupBox.setLayout(layout) def setPlanEditor(self,msg): self.LogText =self.LogText + msg+ "\n" self.planEditor.setPlainText(self.LogText) def CreatWebTab(self):#穿件一个TAB 用于网络 现在占时定义为百度 if self.webTabFlag == False: self.BaiduView = QWebEngineView(self.centralwidget) self.BaiduView.setMinimumSize(QtCore.QSize(500, 400)) self.BaiduView.setUrl(QtCore.QUrl("https://www.baidu.com/")) self.BaiduView.setObjectName("search") self.WebTab=self.GraphTab.addTab(self.BaiduView,'百度 view') self.setPlanEditor('打开web 信息') self.webTabFlag = True elif self.webTabFlag == True: self.WebTab=self.GraphTab.removeTab(1) self.setPlanEditor('关闭web 信息') self.webTabFlag = False def webButtonAction(self): # 百度按钮的 动作 self.webTabFlag=False self.WebButton.clicked.connect(self.CreatWebTab) def PatientButtonAction(self): self.PatientButton.clicked.connect(self.p.handle_click) self.setPlanEditor('打开Patient 信息')