Esempio n. 1
0
    def setup_web_view(self) -> None:
        """
        The web view itself, with a fixed size.
        """

        self.web_view = QWebEngineView()
        self.layout.addWidget(self.web_view)
Esempio n. 2
0
    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)
Esempio n. 3
0
 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()
Esempio n. 4
0
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()
Esempio n. 5
0
 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)
Esempio n. 6
0
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"])
Esempio n. 7
0
 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)
Esempio n. 8
0
 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)
Esempio n. 9
0
 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)
Esempio n. 10
0
    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)
Esempio n. 11
0
 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
Esempio n. 12
0
 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
Esempio n. 13
0
 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 = ''
Esempio n. 14
0
    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)
Esempio n. 15
0
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))
Esempio n. 16
0
    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 = ''
Esempio n. 17
0
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'
Esempio n. 18
0
    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)
Esempio n. 19
0
    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)
Esempio n. 20
0
    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)
Esempio n. 21
0
    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()
Esempio n. 22
0
 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()
Esempio n. 23
0
 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')
Esempio n. 24
0
 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")
Esempio n. 27
0
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))
Esempio n. 28
0
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))
Esempio n. 29
0
    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)
Esempio n. 30
0
    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")
Esempio n. 31
0
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()
Esempio n. 32
0
@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 .
Esempio n. 33
0
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 信息')