def __init__(self): QMainWindow.__init__(self) self.view = QWebEngineView(self) self.view.load(QUrl("https://cges30901.github.io/test/vert2")) self.setCentralWidget(self.view)
def __init__(self, parent=None): super().__init__(parent) self.port = None view = QWebEngineView() self._settings = webenginesettings.WebEngineSettings(view.settings()) self._set_widget(view)
from PyQt5.QtCore import QUrl from MySharedObject import MySharedObject from PyQt5.QtWebChannel import QWebChannel import sys # 创建一个 application实例 app = QApplication(sys.argv) win = QWidget() win.setWindowTitle('Web页面中的JavaScript与 QWebEngineView交互例子') # 创建一个垂直布局器 layout = QVBoxLayout() win.setLayout(layout) # 创建一个 QWebEngineView 对象 view = QWebEngineView() htmlUrl = 'http://127.0.0.1:8020/web/index.html' view.load(QUrl(htmlUrl)) # 创建一个 QWebChannel对象,用来传递pyqt参数到JavaScript channel = QWebChannel() myObj = MySharedObject() channel.registerObject("bridge", myObj) view.page().setWebChannel(channel) # 把QWebView和button加载到layout布局中 layout.addWidget(view) # 显示窗口和运行app win.show() sys.exit(app.exec_())
def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(724, 665) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(".\\ico/vw.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off) MainWindow.setWindowIcon(icon) MainWindow.setIconSize(QtCore.QSize(32, 32)) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.centralwidget) self.verticalLayout_3.setObjectName("verticalLayout_3") self.horizontalLayout_3 = QtWidgets.QHBoxLayout() self.horizontalLayout_3.setContentsMargins(-1, -1, -1, 0) self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.txt_Find = QtWidgets.QLineEdit(self.centralwidget) self.txt_Find.setObjectName("txt_Find") self.horizontalLayout_3.addWidget(self.txt_Find) self.btn_Find = QtWidgets.QPushButton(self.centralwidget) self.btn_Find.setObjectName("btn_Find") self.horizontalLayout_3.addWidget(self.btn_Find) self.verticalLayout_3.addLayout(self.horizontalLayout_3) self.splitter_2 = QtWidgets.QSplitter(self.centralwidget) self.splitter_2.setAutoFillBackground(True) self.splitter_2.setOrientation(QtCore.Qt.Horizontal) self.splitter_2.setObjectName("splitter_2") self.splitter = QtWidgets.QSplitter(self.splitter_2) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.splitter.sizePolicy().hasHeightForWidth()) self.splitter.setSizePolicy(sizePolicy) self.splitter.setOrientation(QtCore.Qt.Vertical) self.splitter.setObjectName("splitter") self.verticalLayoutWidget_2 = QtWidgets.QWidget(self.splitter) self.verticalLayoutWidget_2.setObjectName("verticalLayoutWidget_2") self.verticalLayout_2 = QtWidgets.QVBoxLayout( self.verticalLayoutWidget_2) self.verticalLayout_2.setContentsMargins(0, 0, 0, 0) self.verticalLayout_2.setObjectName("verticalLayout_2") self.midleft = QtWidgets.QTreeWidget(self.verticalLayoutWidget_2) self.midleft.setObjectName("midleft") self.midleft.headerItem().setText(0, "1") self.midleft.header().setHighlightSections(True) self.verticalLayout_2.addWidget(self.midleft) self.horizontalLayout = QtWidgets.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") self.cb_Tabelle = QtWidgets.QCheckBox(self.verticalLayoutWidget_2) font = QtGui.QFont() font.setPointSize(14) self.cb_Tabelle.setFont(font) self.cb_Tabelle.setLayoutDirection(QtCore.Qt.LeftToRight) self.cb_Tabelle.setCheckable(True) self.cb_Tabelle.setChecked(False) self.cb_Tabelle.setTristate(False) self.cb_Tabelle.setObjectName("cb_Tabelle") self.horizontalLayout.addWidget(self.cb_Tabelle) spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.btn_Update_Tree = QtWidgets.QPushButton( self.verticalLayoutWidget_2) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.btn_Update_Tree.sizePolicy().hasHeightForWidth()) self.btn_Update_Tree.setSizePolicy(sizePolicy) self.btn_Update_Tree.setText("") icon1 = QtGui.QIcon() icon1.addPixmap(QtGui.QPixmap(".\\ico/ARROW6A.ICO"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.btn_Update_Tree.setIcon(icon1) self.btn_Update_Tree.setIconSize(QtCore.QSize(32, 32)) self.btn_Update_Tree.setObjectName("btn_Update_Tree") self.horizontalLayout.addWidget(self.btn_Update_Tree) self.verticalLayout_2.addLayout(self.horizontalLayout) self.verticalLayoutWidget = QtWidgets.QWidget(self.splitter) self.verticalLayoutWidget.setObjectName("verticalLayoutWidget") self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget) self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.verticalLayout.setObjectName("verticalLayout") self.botleft = QtWidgets.QTreeWidget(self.verticalLayoutWidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(2) sizePolicy.setHeightForWidth( self.botleft.sizePolicy().hasHeightForWidth()) self.botleft.setSizePolicy(sizePolicy) self.botleft.setObjectName("botleft") self.botleft.headerItem().setText(0, "1") self.verticalLayout.addWidget(self.botleft) self.horizontalLayout_2 = QtWidgets.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.cb_PR = QtWidgets.QCheckBox(self.verticalLayoutWidget) font = QtGui.QFont() font.setPointSize(14) self.cb_PR.setFont(font) self.cb_PR.setObjectName("cb_PR") self.horizontalLayout_2.addWidget(self.cb_PR) spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_2.addItem(spacerItem1) self.btn_Dump_pr = QtWidgets.QPushButton(self.verticalLayoutWidget) self.btn_Dump_pr.setText("") icon2 = QtGui.QIcon() icon2.addPixmap(QtGui.QPixmap(".\\ico/ARROW6C.ICO"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.btn_Dump_pr.setIcon(icon2) self.btn_Dump_pr.setIconSize(QtCore.QSize(32, 32)) self.btn_Dump_pr.setObjectName("btn_Dump_pr") self.horizontalLayout_2.addWidget(self.btn_Dump_pr) self.btn_Inject_pr = QtWidgets.QPushButton(self.verticalLayoutWidget) self.btn_Inject_pr.setText("") icon3 = QtGui.QIcon() icon3.addPixmap(QtGui.QPixmap(".\\ico/ARROW6D.ICO"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.btn_Inject_pr.setIcon(icon3) self.btn_Inject_pr.setIconSize(QtCore.QSize(32, 32)) self.btn_Inject_pr.setObjectName("btn_Inject_pr") self.horizontalLayout_2.addWidget(self.btn_Inject_pr) self.btn_Update_PrNr = QtWidgets.QPushButton(self.verticalLayoutWidget) self.btn_Update_PrNr.setText("") self.btn_Update_PrNr.setIcon(icon1) self.btn_Update_PrNr.setIconSize(QtCore.QSize(32, 32)) self.btn_Update_PrNr.setObjectName("btn_Update_PrNr") self.horizontalLayout_2.addWidget(self.btn_Update_PrNr) self.verticalLayout.addLayout(self.horizontalLayout_2) self.textEdit = QtWidgets.QTextEdit(self.verticalLayoutWidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.textEdit.sizePolicy().hasHeightForWidth()) self.textEdit.setSizePolicy(sizePolicy) self.textEdit.setObjectName("textEdit") self.verticalLayout.addWidget(self.textEdit) self.topright = QWebEngineView(self.splitter_2) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(2) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.topright.sizePolicy().hasHeightForWidth()) self.topright.setSizePolicy(sizePolicy) self.topright.setObjectName("topright") self.verticalLayout_3.addWidget(self.splitter_2) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 724, 23)) self.menubar.setObjectName("menubar") self.menu = QtWidgets.QMenu(self.menubar) self.menu.setObjectName("menu") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.openMenu = QtWidgets.QAction(MainWindow) self.openMenu.setObjectName("openMenu") self.menu.addAction(self.openMenu) self.menubar.addAction(self.menu.menuAction()) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow)
def visibility_changed(self, visible): if visible and self.view is None: self.view = QWebEngineView(self.view_to_debug) self.view_to_debug.page().setDevToolsPage(self.view.page()) self.layout.addWidget(self.view)
</body> </html> ''' # The next two lines are a workaround to fix an issue with QWebEngineView (see https://github.com/ContinuumIO/anaconda-issues/issues/9199#issuecomment-383842265) import ctypes ctypes.CDLL("libGL.so.1", mode=ctypes.RTLD_GLOBAL) import sys from PyQt5.QtCore import * from PyQt5.QtWebEngineWidgets import QWebEngineView from PyQt5.QtWidgets import QApplication app = QApplication(sys.argv) # Setting "/" as the base_url may be a bad idea : JS script can access any (readable) file of the system... # It's probably much better to isolate external files in a dedicated directory (e.g. /tmp/...) as everybody do for webservers (/var/www/html) base_url = QUrl.fromLocalFile("/") web = QWebEngineView() web.setHtml(HTML, base_url) web.show() # The mainloop of the application. The event handling starts from this point. # The exec_() method has an underscore. It is because the exec is a Python keyword. And thus, exec_() was used instead. exit_code = app.exec_() # The sys.exit() method ensures a clean exit. # The environment will be informed, how the application ended. sys.exit(exit_code)
def __init__(self): super().__init__() self.shiPan = None self.setWindowTitle("大六壬") # Create mainold layout layout = QtWidgets.QHBoxLayout() mainWidget = QtWidgets.QWidget() mainWidget.setLayout(layout) self.setCentralWidget(mainWidget) self.textBrowser = QWebEngineView() layout.addWidget(self.textBrowser) # 设置右则面板 rightWidget = QtWidgets.QWidget() rightWidget.setFixedWidth(100) # layout.addWidget(rightWidget) scrollArea = QtWidgets.QScrollArea(self) scrollArea.setFixedWidth(120) scrollArea.setWidgetResizable(True) # scroll_bar = scrollArea.verticalScrollBar() scrollArea.setWidget(rightWidget) layout.addWidget(scrollArea) # 为右则面板使用水平布局 rightVBoxLayout = QtWidgets.QVBoxLayout() rightWidget.setLayout(rightVBoxLayout) # self.yearInput = QtWidgets.QLineEdit() self.yearInput.setPlaceholderText("年 1920-2050") self.yearInput.setValidator( QtGui.QIntValidator(1920, 2050, self.yearInput)) rightVBoxLayout.addWidget(self.yearInput) self.monthInput = QtWidgets.QLineEdit() self.monthInput.setPlaceholderText("月") self.monthInput.setValidator( QtGui.QIntValidator(1, 12, self.monthInput)) rightVBoxLayout.addWidget(self.monthInput) self.dayInput = QtWidgets.QLineEdit() self.dayInput.setPlaceholderText("日") self.dayInput.setValidator(QtGui.QIntValidator(1, 31, self.dayInput)) rightVBoxLayout.addWidget(self.dayInput) self.hourInput = QtWidgets.QLineEdit() self.hourInput.setPlaceholderText("时") self.hourInput.setValidator(QtGui.QIntValidator(0, 23, self.hourInput)) rightVBoxLayout.addWidget(self.hourInput) self.minutesInput = QtWidgets.QLineEdit() self.minutesInput.setPlaceholderText("分") self.minutesInput.setValidator( QtGui.QIntValidator(0, 59, self.minutesInput)) rightVBoxLayout.addWidget(self.minutesInput) self.secondInput = QtWidgets.QLineEdit() self.secondInput.setPlaceholderText("秒") self.secondInput.setValidator( QtGui.QIntValidator(0, 59, self.minutesInput)) rightVBoxLayout.addWidget(self.secondInput) timeNowButton = QtWidgets.QPushButton("当前时间") rightVBoxLayout.addWidget(timeNowButton) self.yueJiang = QtWidgets.QComboBox() self.yueJiang.addItems(DiZHiList) yueJiangHBoxLayout = QtWidgets.QHBoxLayout() yueJiangHBoxLayout.addWidget(QtWidgets.QLabel("月将")) yueJiangbutton = QtWidgets.QPushButton("计算") yueJiangHBoxLayout.addWidget(yueJiangbutton) rightVBoxLayout.addLayout(yueJiangHBoxLayout) rightVBoxLayout.addWidget(self.yueJiang) self.zhanShi = QtWidgets.QComboBox() self.zhanShi.addItems(DiZHiList) rightVBoxLayout.addWidget(QtWidgets.QLabel("占时")) rightVBoxLayout.addWidget(self.zhanShi) self.zhouZhan = QtWidgets.QComboBox() self.zhouZhan.addItems(["是", "否"]) rightVBoxLayout.addWidget(QtWidgets.QLabel("昼占/昼生人")) rightVBoxLayout.addWidget(self.zhouZhan) self.mingJu = QtWidgets.QComboBox() self.mingJu.addItems(["否", "是"]) rightVBoxLayout.addWidget(QtWidgets.QLabel("命局")) rightVBoxLayout.addWidget(self.mingJu) man = QtWidgets.QRadioButton("男") male = QtWidgets.QRadioButton("女") man.setChecked(True) self.sex = QtWidgets.QButtonGroup() self.sex.addButton(man, 0) self.sex.addButton(male, 1) sexLayout = QtWidgets.QHBoxLayout() sexLayout.addWidget(man) sexLayout.addWidget(male) rightVBoxLayout.addLayout(sexLayout) self.shengNianInput = QtWidgets.QLineEdit() self.shengNianInput.setPlaceholderText("生年") self.shengNianInput.setValidator( QtGui.QIntValidator(1920, 2050, self.shengNianInput)) rightVBoxLayout.addWidget(self.shengNianInput) rightVBoxLayout.addWidget(QtWidgets.QLabel("占测之事")) self.占测的事Input = QtWidgets.QLineEdit() rightVBoxLayout.addWidget(self.占测的事Input) button = QtWidgets.QPushButton("起六壬局") rightVBoxLayout.addWidget(button) shenShaButton = QtWidgets.QPushButton("神煞查询") rightVBoxLayout.addWidget(shenShaButton) helpButton = QtWidgets.QPushButton("帮助") rightVBoxLayout.addWidget(helpButton) rightVBoxLayout.addStretch() # 设置默认时间 self.timeNow() 月将 = GetLi(int(self.yearInput.text()), int(self.monthInput.text()), int(self.dayInput.text()), int(self.hourInput.text()), int(self.minutesInput.text()), int(self.secondInput.text()))[4] self.yueJiang.setCurrentIndex(月将.num - 1) button.clicked.connect(self.onclick) helpButton.clicked.connect(self.helpOnclick) yueJiangbutton.clicked.connect(self.yueJiangOnClick) shenShaButton.clicked.connect(self.shenShaOnclick) timeNowButton.clicked.connect(self.timeNowOnClick)
def m_video_url(self, url): print('add search log', time.time()) f = open('search_log.csv', 'w') f.write(url) print('verificate:'.format(url), time.time()) verification, title = utils.download_options(url) # 进入下载选项,否则打开网页 if verification == True: sub_title = self.conf['download']['auto-download-subtitle'] filepath = self.conf['download']['save-path'] print('begain download', time.time()) multi_download = multi_thread(url, sub_title, filepath) title = multi_download.start() system_time = QDateTime.currentDateTime() timeDisplay = system_time.toString("yyyy-MM-dd hh:mm:ss") self.temp.append([title, url, filepath, timeDisplay]) self.download_page = QWidget() video_info = QGridLayout() download_option = QHBoxLayout() re_load = QPushButton('重新加载') close_tab = QPushButton('关闭此页面') goto_webpage = QPushButton('打开网页') video_title = QLabel(title) back_mainpage = QPushButton('返回主页') upload_time = QLabel(timeDisplay) video_info.addWidget(back_mainpage, 0, 0, 1, 1) video_info.addWidget(close_tab, 0, 1, 1, 1) video_info.addWidget(re_load, 0, 3, 1, 1) video_info.addWidget(goto_webpage, 0, 4, 1, 1) video_info.addWidget(video_title, 1, 2, 2, 5) video_info.addWidget(upload_time, 2, 3, 1, 3) video_info.setAlignment(Qt.AlignTop) flv_720 = QPushButton('flv高清') mp4_1080 = QPushButton('mp4超清') mp4_720 = QPushButton('mp4高清') wav_720 = QPushButton('wav高清') download_option.addWidget(flv_720) download_option.addWidget(mp4_720) download_option.addWidget(mp4_1080) download_option.addWidget(wav_720) video_download = QVBoxLayout() video_download.addLayout(video_info) video_download.addLayout(download_option) self.download_page.setLayout(video_download) self.tabwidget.addTab(self.download_page, '{}'.format(title)) self.tab_num += 1 self.tabwidget.setCurrentWidget(self.download_page) re_load.pressed.connect(self.relaod) close_tab.pressed.connect(self.closetab) goto_webpage.pressed.connect(lambda: self.gotowebpage(url)) back_mainpage.pressed.connect(self.backmainpage) # self.signal_1(self.video_tabwidget_close) # self.temp_thread=self.temp_thread+1 # while True: # if self.max_thread == self.temp_thread-1: # self.timer=QTimer() # self.timer.start(5000) # else: # break # self.browser=QWebEngineView() # self.browser.load(url) print('method end', time.time()) f = open('searched_log.csv', 'w') # video_title=title # save_path=filepath # cur_time=time.strftime('%Y%m%d%H%M%S') f.write('{0}{1}{2}{3}'.format(title, url, filepath, timeDisplay)) else: self.browser_search = QWebEngineView() search_preview = 'https://www.youtube.com/results?search_query={}'.format( url) # search_preview ='www.bing.com' self.search_url = QUrl(search_preview) # self.browser_search.load(self.search_url) # self.browser=QWebEnginePage() # self.browser.load(self.search_url) # open system default browser open_system_browser = QDesktopServices() open_system_browser.openUrl(self.search_url)
def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(688, 622) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget) self.verticalLayout.setObjectName("verticalLayout") self.tabWidget = QtWidgets.QTabWidget(self.centralwidget) self.tabWidget.setObjectName("tabWidget") self.tab = QtWidgets.QWidget() self.tab.setObjectName("tab") self.horizontalLayout = QtWidgets.QHBoxLayout(self.tab) self.horizontalLayout.setObjectName("horizontalLayout") self.frame_2 = QtWidgets.QFrame(self.tab) self.frame_2.setFrameShape(QtWidgets.QFrame.StyledPanel) self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised) self.frame_2.setObjectName("frame_2") self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.frame_2) self.verticalLayout_3.setObjectName("verticalLayout_3") self.groupBox_6 = QtWidgets.QGroupBox(self.frame_2) self.groupBox_6.setObjectName("groupBox_6") self.verticalLayout_7 = QtWidgets.QVBoxLayout(self.groupBox_6) self.verticalLayout_7.setObjectName("verticalLayout_7") self.horizontalLayout_16 = QtWidgets.QHBoxLayout() self.horizontalLayout_16.setObjectName("horizontalLayout_16") self.excel_radioButton = QtWidgets.QRadioButton(self.groupBox_6) self.excel_radioButton.setChecked(True) self.excel_radioButton.setObjectName("excel_radioButton") self.horizontalLayout_16.addWidget(self.excel_radioButton) self.csv_radioButton = QtWidgets.QRadioButton(self.groupBox_6) self.csv_radioButton.setObjectName("csv_radioButton") self.horizontalLayout_16.addWidget(self.csv_radioButton) spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_16.addItem(spacerItem) self.load_pushButton = QtWidgets.QPushButton(self.groupBox_6) self.load_pushButton.setObjectName("load_pushButton") self.horizontalLayout_16.addWidget(self.load_pushButton) self.verticalLayout_7.addLayout(self.horizontalLayout_16) self.verticalLayout_3.addWidget(self.groupBox_6) self.groupBox = QtWidgets.QGroupBox(self.frame_2) self.groupBox.setEnabled(True) self.groupBox.setObjectName("groupBox") self.verticalLayout_18 = QtWidgets.QVBoxLayout(self.groupBox) self.verticalLayout_18.setObjectName("verticalLayout_18") self.groupBox_3 = QtWidgets.QGroupBox(self.groupBox) self.groupBox_3.setEnabled(True) self.groupBox_3.setObjectName("groupBox_3") self.horizontalLayout_15 = QtWidgets.QHBoxLayout(self.groupBox_3) self.horizontalLayout_15.setObjectName("horizontalLayout_15") self.horizontalLayout_3 = QtWidgets.QHBoxLayout() self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.label = QtWidgets.QLabel(self.groupBox_3) self.label.setObjectName("label") self.horizontalLayout_3.addWidget(self.label) self.systems_comboBox = QtWidgets.QComboBox(self.groupBox_3) self.systems_comboBox.setEnabled(True) self.systems_comboBox.setEditable(False) self.systems_comboBox.setCurrentText("") self.systems_comboBox.setObjectName("systems_comboBox") self.horizontalLayout_3.addWidget(self.systems_comboBox) self.horizontalLayout_3.setStretch(1, 1) self.horizontalLayout_15.addLayout(self.horizontalLayout_3) self.horizontalLayout_7 = QtWidgets.QHBoxLayout() self.horizontalLayout_7.setObjectName("horizontalLayout_7") self.label_2 = QtWidgets.QLabel(self.groupBox_3) self.label_2.setEnabled(True) self.label_2.setObjectName("label_2") self.horizontalLayout_7.addWidget(self.label_2) self.product_comboBox = QtWidgets.QComboBox(self.groupBox_3) self.product_comboBox.setEnabled(True) self.product_comboBox.setObjectName("product_comboBox") self.horizontalLayout_7.addWidget(self.product_comboBox) self.horizontalLayout_7.setStretch(1, 1) self.horizontalLayout_15.addLayout(self.horizontalLayout_7) self.verticalLayout_18.addWidget(self.groupBox_3) self.verticalLayout_3.addWidget(self.groupBox) self.groupBox_2 = QtWidgets.QGroupBox(self.frame_2) self.groupBox_2.setEnabled(True) self.groupBox_2.setObjectName("groupBox_2") self.horizontalLayout_17 = QtWidgets.QHBoxLayout(self.groupBox_2) self.horizontalLayout_17.setObjectName("horizontalLayout_17") self.xgboost_checkBox = QtWidgets.QCheckBox(self.groupBox_2) self.xgboost_checkBox.setChecked(True) self.xgboost_checkBox.setObjectName("xgboost_checkBox") self.horizontalLayout_17.addWidget(self.xgboost_checkBox) self.catboost_checkBox = QtWidgets.QCheckBox(self.groupBox_2) self.catboost_checkBox.setEnabled(False) self.catboost_checkBox.setObjectName("catboost_checkBox") self.horizontalLayout_17.addWidget(self.catboost_checkBox) self.verticalLayout_3.addWidget(self.groupBox_2) self.horizontalLayout_2 = QtWidgets.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_2.addItem(spacerItem1) self.pushButton_star_modeling = QtWidgets.QPushButton(self.frame_2) self.pushButton_star_modeling.setEnabled(True) self.pushButton_star_modeling.setObjectName("pushButton_star_modeling") self.horizontalLayout_2.addWidget(self.pushButton_star_modeling) self.verticalLayout_3.addLayout(self.horizontalLayout_2) self.verticalLayout_3.setStretch(1, 1) self.horizontalLayout.addWidget(self.frame_2) self.tabWidget.addTab(self.tab, "") self.tab_2 = QtWidgets.QWidget() self.tab_2.setObjectName("tab_2") self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.tab_2) self.verticalLayout_2.setObjectName("verticalLayout_2") self.tabWidget_2 = QtWidgets.QTabWidget(self.tab_2) self.tabWidget_2.setEnabled(True) self.tabWidget_2.setObjectName("tabWidget_2") self.tab_3 = QtWidgets.QWidget() self.tab_3.setObjectName("tab_3") self.verticalLayout_11 = QtWidgets.QVBoxLayout(self.tab_3) self.verticalLayout_11.setObjectName("verticalLayout_11") self.widget = QWebEngineView(self.tab_3) self.widget.setObjectName("widget") self.verticalLayout_11.addWidget(self.widget) self.groupBox_5 = QtWidgets.QGroupBox(self.tab_3) self.groupBox_5.setObjectName("groupBox_5") self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.groupBox_5) self.horizontalLayout_4.setObjectName("horizontalLayout_4") self.verticalLayout_5 = QtWidgets.QVBoxLayout() self.verticalLayout_5.setObjectName("verticalLayout_5") self.label_3 = QtWidgets.QLabel(self.groupBox_5) self.label_3.setObjectName("label_3") self.verticalLayout_5.addWidget(self.label_3) self.label_9 = QtWidgets.QLabel(self.groupBox_5) self.label_9.setObjectName("label_9") self.verticalLayout_5.addWidget(self.label_9) self.label_10 = QtWidgets.QLabel(self.groupBox_5) self.label_10.setObjectName("label_10") self.verticalLayout_5.addWidget(self.label_10) self.horizontalLayout_4.addLayout(self.verticalLayout_5) spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem2) self.verticalLayout_6 = QtWidgets.QVBoxLayout() self.verticalLayout_6.setObjectName("verticalLayout_6") self.label_4 = QtWidgets.QLabel(self.groupBox_5) self.label_4.setObjectName("label_4") self.verticalLayout_6.addWidget(self.label_4) self.product_spinBox = QtWidgets.QSpinBox(self.groupBox_5) self.product_spinBox.setEnabled(True) self.product_spinBox.setMaximumSize(QtCore.QSize(63, 20)) self.product_spinBox.setObjectName("product_spinBox") self.verticalLayout_6.addWidget(self.product_spinBox) self.product_spinBox_2 = QtWidgets.QSpinBox(self.groupBox_5) self.product_spinBox_2.setEnabled(True) self.product_spinBox_2.setMaximumSize(QtCore.QSize(63, 20)) self.product_spinBox_2.setProperty("value", 1) self.product_spinBox_2.setObjectName("product_spinBox_2") self.verticalLayout_6.addWidget(self.product_spinBox_2) self.horizontalLayout_4.addLayout(self.verticalLayout_6) spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem3) self.verticalLayout_8 = QtWidgets.QVBoxLayout() self.verticalLayout_8.setObjectName("verticalLayout_8") self.label_5 = QtWidgets.QLabel(self.groupBox_5) self.label_5.setObjectName("label_5") self.verticalLayout_8.addWidget(self.label_5) self.systems_spinBox = QtWidgets.QSpinBox(self.groupBox_5) self.systems_spinBox.setEnabled(True) self.systems_spinBox.setMaximumSize(QtCore.QSize(63, 20)) self.systems_spinBox.setObjectName("systems_spinBox") self.verticalLayout_8.addWidget(self.systems_spinBox) self.systems_spinBox_2 = QtWidgets.QSpinBox(self.groupBox_5) self.systems_spinBox_2.setEnabled(True) self.systems_spinBox_2.setMaximumSize(QtCore.QSize(63, 20)) self.systems_spinBox_2.setProperty("value", 1) self.systems_spinBox_2.setObjectName("systems_spinBox_2") self.verticalLayout_8.addWidget(self.systems_spinBox_2) self.horizontalLayout_4.addLayout(self.verticalLayout_8) spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem4) self.verticalLayout_9 = QtWidgets.QVBoxLayout() self.verticalLayout_9.setObjectName("verticalLayout_9") self.label_6 = QtWidgets.QLabel(self.groupBox_5) self.label_6.setObjectName("label_6") self.verticalLayout_9.addWidget(self.label_6) self.department_spinBox = QtWidgets.QSpinBox(self.groupBox_5) self.department_spinBox.setEnabled(True) self.department_spinBox.setMaximumSize(QtCore.QSize(63, 20)) self.department_spinBox.setObjectName("department_spinBox") self.verticalLayout_9.addWidget(self.department_spinBox) self.department_spinBox_2 = QtWidgets.QSpinBox(self.groupBox_5) self.department_spinBox_2.setEnabled(True) self.department_spinBox_2.setMaximumSize(QtCore.QSize(63, 20)) self.department_spinBox_2.setProperty("value", 1) self.department_spinBox_2.setObjectName("department_spinBox_2") self.verticalLayout_9.addWidget(self.department_spinBox_2) self.horizontalLayout_4.addLayout(self.verticalLayout_9) spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem5) self.verticalLayout_10 = QtWidgets.QVBoxLayout() self.verticalLayout_10.setObjectName("verticalLayout_10") self.label_7 = QtWidgets.QLabel(self.groupBox_5) self.label_7.setObjectName("label_7") self.verticalLayout_10.addWidget(self.label_7) self.priority_spinBox = QtWidgets.QSpinBox(self.groupBox_5) self.priority_spinBox.setEnabled(True) self.priority_spinBox.setMaximumSize(QtCore.QSize(63, 20)) self.priority_spinBox.setObjectName("priority_spinBox") self.verticalLayout_10.addWidget(self.priority_spinBox) self.priority_spinBox_2 = QtWidgets.QSpinBox(self.groupBox_5) self.priority_spinBox_2.setEnabled(True) self.priority_spinBox_2.setMaximumSize(QtCore.QSize(63, 20)) self.priority_spinBox_2.setProperty("value", 1) self.priority_spinBox_2.setObjectName("priority_spinBox_2") self.verticalLayout_10.addWidget(self.priority_spinBox_2) self.horizontalLayout_4.addLayout(self.verticalLayout_10) spacerItem6 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem6) self.pushButton_2 = QtWidgets.QPushButton(self.groupBox_5) self.pushButton_2.setObjectName("pushButton_2") self.horizontalLayout_4.addWidget(self.pushButton_2) self.horizontalLayout_4.setStretch(2, 1) self.horizontalLayout_4.setStretch(4, 1) self.horizontalLayout_4.setStretch(6, 1) self.horizontalLayout_4.setStretch(8, 1) self.verticalLayout_11.addWidget(self.groupBox_5) self.verticalLayout_11.setStretch(0, 1) self.tabWidget_2.addTab(self.tab_3, "") self.tab_4 = QtWidgets.QWidget() self.tab_4.setEnabled(False) self.tab_4.setObjectName("tab_4") self.tabWidget_2.addTab(self.tab_4, "") self.verticalLayout_2.addWidget(self.tabWidget_2) self.tabWidget.addTab(self.tab_2, "") self.verticalLayout.addWidget(self.tabWidget) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 688, 21)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) self.tabWidget.setCurrentIndex(1) self.tabWidget_2.setCurrentIndex(0) QtCore.QMetaObject.connectSlotsByName(MainWindow)
def __init__(self, *args, **kwargs): super(TrendPage, self).__init__(*args, **kwargs) layout = QHBoxLayout(self) layout.setContentsMargins(QMargins(0, 0, 0, 1)) layout.setSpacing(0) self.variety_folded = ScrollFoldedBox() self.variety_folded.left_mouse_clicked.connect(self.variety_clicked) layout.addWidget(self.variety_folded) # 右侧是QTableWidget用于显示数据表信息 # tableinfo_layout.addWidget(self.data_table) # layout.addLayout(tableinfo_layout) # 右侧是webView r_layout = QVBoxLayout(self) self.table_lib_btn = QPushButton("数据库", self, objectName='libBtn') self.table_lib_btn.setToolTip("点击查看当前品种数据表") self.table_lib_btn.setCursor(Qt.PointingHandCursor) self.table_lib_btn.hide() self.table_lib_btn.clicked.connect(self.reverse_charts_and_table) r_layout.addWidget(self.table_lib_btn, alignment=Qt.AlignLeft) self.charts_loader = QWebEngineView(self) r_layout.addWidget(self.charts_loader) self.data_table = DataTableWidget(self) r_layout.addWidget(self.data_table) self.data_table.hide() layout.addLayout(r_layout) self.setLayout(layout) # 设置折叠窗的样式 self.variety_folded.setFoldedStyleSheet(""" QScrollArea{ border: none; } #foldedBox{ border-right: 1px solid rgb(180, 180, 180); } #foldedHead{ background-color: rgb(145,202,182); border-bottom: 1px solid rgb(200,200,200); border-right: 1px solid rgb(180, 180, 180); max-height: 30px; } #headLabel{ padding:8px 5px; font-weight: bold; font-size: 15px; } #foldedBody{ background-color: rgb(240, 240, 240); border-right: 1px solid rgb(180, 180, 180); } /*折叠窗内滚动条样式*/ #foldedBox QScrollBar:vertical{ width: 5px; background: transparent; } #foldedBox QScrollBar::handle:vertical { background: rgba(0, 0, 0, 30); width: 5px; border-radius: 5px; border: none; } #foldedBox QScrollBar::handle:vertical:hover,QScrollBar::handle:horizontal:hover { background: rgba(0, 0, 0, 80); } """) self.setStyleSheet(""" #libBtn{border:1px solid rgb(200,200,200);border-left:none;color:rgb(254,255,255);background-color:rgb(255,87,87);padding:5px 10px;font-size:14px;font-weight:bold;border-bottom-right-radius:5px} #libBtn:hover{color:rgb(15,67,146);font-weight:bold;background-color:rgb(74,247,198)} """) self.charts_loader.load(QUrl(settings.SERVER_ADDR + 'trend/charts/'))
def initUi(self): self.hl = QHBoxLayout(self) self.widget = QWidget() self.gl = QGridLayout(self.widget) # ATTR1 label1 = QLabel(ATTR[0] + ':') self.gl.addWidget(label1, 1 - 1, 0, 1, 1) self.spinbox1 = QSpinBox() self.spinbox1.setSingleStep(100) self.spinbox1.setObjectName('spinbox') self.spinbox1.valueChanged.connect(self.set_options) self.spinbox1.setMaximum(1000) self.spinbox1.setValue(randint(0, 1000)) self.gl.addWidget(self.spinbox1, 1 - 1, 1, 1, 1) # ATTR2 label2 = QLabel(ATTR[1] + ':') self.gl.addWidget(label2, 2 - 1, 0, 1, 1) self.spinbox2 = QSpinBox() self.spinbox2.setSingleStep(100) self.spinbox2.setObjectName('spinbox') self.spinbox2.valueChanged.connect(self.set_options) self.spinbox2.setMaximum(1000) self.spinbox2.setValue(randint(0, 1000)) self.gl.addWidget(self.spinbox2, 2 - 1, 1, 1, 1) # ATTR3 label3 = QLabel(ATTR[2] + ':') self.gl.addWidget(label3, 3 - 1, 0, 1, 1) self.spinbox3 = QSpinBox() self.spinbox3.setSingleStep(100) self.spinbox3.setObjectName('spinbox') self.spinbox3.valueChanged.connect(self.set_options) self.spinbox3.setMaximum(1000) self.spinbox3.setValue(randint(0, 1000)) self.gl.addWidget(self.spinbox3, 3 - 1, 1, 1, 1) # ATTR4 label4 = QLabel(ATTR[3] + ':') self.gl.addWidget(label4, 4 - 1, 0, 1, 1) self.spinbox4 = QSpinBox() self.spinbox4.setSingleStep(100) self.spinbox4.setObjectName('spinbox') self.spinbox4.valueChanged.connect(self.set_options) self.spinbox4.setMaximum(1000) self.spinbox4.setValue(randint(0, 1000)) self.gl.addWidget(self.spinbox4, 4 - 1, 1, 1, 1) # ATTR5 label5 = QLabel(ATTR[4] + ':') self.gl.addWidget(label5, 5 - 1, 0, 1, 1) self.spinbox5 = QSpinBox() self.spinbox5.setSingleStep(100) self.spinbox5.setObjectName('spinbox') self.spinbox5.valueChanged.connect(self.set_options) self.spinbox5.setMaximum(1000) self.spinbox5.setValue(randint(0, 1000)) self.gl.addWidget(self.spinbox5, 5 - 1, 1, 1, 1) # ATTR6 label6 = QLabel(ATTR[5] + ':') self.gl.addWidget(label6, 6 - 1, 0, 1, 1) self.spinbox6 = QSpinBox() self.spinbox6.setSingleStep(100) self.spinbox6.setObjectName('spinbox') self.spinbox6.valueChanged.connect(self.set_options) self.spinbox6.setMaximum(1000) self.spinbox6.setValue(randint(0, 1000)) self.gl.addWidget(self.spinbox6, 6 - 1, 1, 1, 1) self.hl.addWidget(self.widget) vs = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.gl.addItem(vs, 6, 0, 1, 2) self.combobox_type = QComboBox() self.combobox_type.currentIndexChanged.connect(self.reload_canvas) self.combobox_type.addItems(['饼图', '柱状图', '折线图', '折线、柱状图']) self.gl.addWidget(self.combobox_type, 7, 0, 1, 2) self.combobox_theme = QComboBox() self.combobox_theme.currentTextChanged.connect(self.change_theme) self.combobox_theme.addItems(['light', 'dark']) self.gl.addWidget(self.combobox_theme, 8, 0, 1, 2) # 添加web view self.view = QWebEngineView() self.view.setContextMenuPolicy(Qt.NoContextMenu) self.hl.addWidget(self.view)
def initUI(self, windowType): self.setStyleSheet(""" #cmdLine, #bar, #bar > * { border: 0px; background: #070707; font-family: "Pro Font"; font-size: 10px; color: white; min-height: 17px } """) self.setWindowTitle('shower') self.setAttribute(Qt.WA_DeleteOnClose) vbox = QVBoxLayout() self.setLayout(vbox) vbox.setContentsMargins(0, 0, 0, 0) vbox.setSpacing(0) bar = QWidget() bar.setObjectName('bar') hbox = QHBoxLayout() hbox.setContentsMargins(2, 0, 0, 0) hbox.setSpacing(0) bar.setLayout(hbox) vbox.addWidget(bar) self.urlLabel = QLabel() self.urlLabel.setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Preferred) self.urlLabel.setTextFormat(Qt.RichText) hbox.addWidget(self.urlLabel) hbox.setStretch(0, 1) self.progressLabel = QLabel() self.progressLabel.setTextFormat(Qt.RichText) hbox.addWidget(self.progressLabel) self.cmdLine = QLineEdit() self.cmdLine.setObjectName('cmdLine') vbox.addWidget(self.cmdLine) self.webView = QWebEngineView() self.webView.setPage(BrowserPage(self)) vbox.addWidget(self.webView) self.cmdLine.returnPressed.connect(self.handleCommand) self.webView.page().linkHovered.connect(self.onLinkHovered) self.webView.page().urlChanged.connect(self.urlChanged) self.webView.page().titleChanged.connect(self.onTitleChanged) self.webView.page().loadProgress.connect(self.onLoadProgress) self.webView.page().loadStarted.connect(self.onLoadStarted) self.webView.page().loadFinished.connect(self.onLoadFinished) self.urlChanged.connect(self.onUrlChanged) self.addShortcut( "Alt+Left", lambda: self.webView.page().triggerAction(QWebEnginePage.Back)) self.addShortcut( "Alt+Right", lambda: self.webView.page().triggerAction(QWebEnginePage.Forward)) self.addShortcut( "Ctrl+R", lambda: self.webView.page().triggerAction(QWebEnginePage.Reload)) self.addShortcut( "Ctrl+Shift+R", lambda: self.webView.page().triggerAction( QWebEnginePage.ReloadAndBypassCache)) self.stopShortcut = self.addShortcut( "Esc", lambda: self.webView.page().triggerAction(QWebEnginePage.Stop)) self.addShortcut("Ctrl+W", lambda: self.close()) self.addShortcut("Ctrl+L", lambda: self.beginEnteringCommand(None)) self.addShortcut("Ctrl+K", lambda: self.beginEnteringCommand('? ')) self.addShortcut("Ctrl+/", lambda: self.beginEnteringCommand('/ ')) self.addShortcut("Ctrl+U", lambda: self.toggleSource())
def __init__(self): super(UI, self).__init__() self.setWindowTitle('Web browser') self.resize(1280, 960) self.setWindowIcon(QtGui.QIcon(BASE_DIR + '/static/imgs/sun.png')) self.main_toolbar = QtWidgets.QToolBar() self.main_toolbar.setIconSize(QtCore.QSize(16, 16)) self.addToolBar(self.main_toolbar) self.tabs = QtWidgets.QTabWidget() self.tabs.setDocumentMode(True) self.tabs.setTabsClosable(True) self.tabs_layout = QtWidgets.QGridLayout() self.tabs.setLayout(self.tabs_layout) self.url_edit = QtWidgets.QLineEdit() self.cwd = os.path.pardir + "/LocalWebTest/static/" self.favWebs = favWebs self.browser = QWebEngineView() # Url = 'https://www.baidu.com' # Url = 'https://www.bing.com' Url = defaultUrl self.browser.setUrl(QtCore.QUrl(Url)) self.tabs_layout.addWidget(self.browser) self.tabs.addTab(self.browser, '') self.browser.loadFinished.connect( lambda: self.tabs.setTabText(0, self.browser.page().title())) self.setCentralWidget(self.tabs) self.turn_button = QAction( QIcon(BASE_DIR + '/static/imgs/zhuandao.png'), 'Turn', self) self.back_button = QAction(QIcon(BASE_DIR + '/static/imgs/fanhui.png'), 'Back', self) self.next_button = QAction( QIcon(BASE_DIR + '/static/imgs/tiaozhuan.png'), 'Forward', self) self.stop_button = QAction(QIcon(BASE_DIR + '/static/imgs/close.png'), 'Stop', self) self.reload_button = QAction( QIcon(BASE_DIR + '/static/imgs/shuaxin.png'), 'Reload', self) self.add_button = QAction(QIcon(BASE_DIR + '/static/imgs/add.png'), 'Addpage', self) #DIY self.set_default_openPage_button = QAction( QIcon(BASE_DIR + '/static/imgs/lock.png'), 'SetDefault', self) self.set_data_button = QAction( QIcon(BASE_DIR + '/static/imgs/data.png'), 'AnalyzeData', self) self.set_test_button = QAction( QIcon(BASE_DIR + '/static/imgs/test.png'), 'TestButton', self) self.set_store_button = QAction( QIcon(BASE_DIR + '/static/imgs/storage.png'), 'storage', self) self.main_toolbar.addAction(self.back_button) self.main_toolbar.addAction(self.next_button) self.main_toolbar.addAction(self.stop_button) self.main_toolbar.addAction(self.reload_button) self.main_toolbar.addAction(self.add_button) self.main_toolbar.addWidget(self.url_edit) self.main_toolbar.addAction(self.turn_button) #DIY self.main_toolbar.addAction(self.set_default_openPage_button) self.main_toolbar.addAction(self.set_data_button) self.main_toolbar.addAction(self.set_store_button) #测试按钮 self.main_toolbar.addAction(self.set_test_button) self.back_button.triggered.connect(self.browser.back) self.next_button.triggered.connect(self.browser.forward) self.stop_button.triggered.connect(self.browser.close) self.reload_button.triggered.connect(self.browser.reload) self.turn_button.triggered.connect(self.OpenUrlLine) self.browser.urlChanged.connect(self.setUrlLine) self.tabs.tabBarDoubleClicked.connect(self.NewPage) self.add_button.triggered.connect(self.NewPage) self.tabs.tabCloseRequested.connect(self.Closepage) #DIY self.set_default_openPage_button.triggered.connect(self.defaultPage) self.set_data_button.triggered.connect(self.anaData) self.set_store_button.triggered.connect(self.showFavs) #测试按钮 self.set_test_button.triggered.connect(self.test) #回车事件判断 self.url_edit.returnPressed.connect(self.inputTurn) #显示访问记录 self.showHistory() self.xstick = '' self.ystick = '' self.dataPath = '' self.sheetName = '' self.formType = '' self.columns = []
def setupUi(self, dialog): dialog.setObjectName("dialog") dialog.resize(1330, 850) self.closeWinBtn = QtWidgets.QPushButton(dialog) self.closeWinBtn.setGeometry(QtCore.QRect(1160, 780, 131, 31)) self.closeWinBtn.setObjectName("closeWinBtn") self.spinBox_season = QtWidgets.QSpinBox(dialog) self.spinBox_season.setGeometry(QtCore.QRect(640, 60, 46, 22)) self.spinBox_season.setMinimum(1) self.spinBox_season.setMaximum(4) self.spinBox_season.setObjectName("spinBox_season") self.label_picture = QtWidgets.QLabel(dialog) self.label_picture.setGeometry(QtCore.QRect(-50, -110, 1541, 1071)) self.label_picture.setStyleSheet("image: url(:/new/back_big.jpg);") self.label_picture.setText("") self.label_picture.setObjectName("label_picture") self.spinBox_year = QtWidgets.QSpinBox(dialog) self.spinBox_year.setGeometry(QtCore.QRect(530, 60, 61, 22)) self.spinBox_year.setMinimum(2015) self.spinBox_year.setMaximum(2020) self.spinBox_year.setObjectName("spinBox_year") self.label_texts = QtWidgets.QLabel(dialog) self.label_texts.setGeometry(QtCore.QRect(440, 60, 81, 21)) font = QtGui.QFont() font.setFamily("Agency FB") font.setPointSize(12) self.label_texts.setFont(font) self.label_texts.setObjectName("label_texts") self.pushButton = QtWidgets.QPushButton(dialog) self.pushButton.setGeometry(QtCore.QRect(780, 60, 93, 28)) self.pushButton.setObjectName("pushButton") self.label_result1 = QWebEngineView(self) self.label_result1.setGeometry(QtCore.QRect(10, 150, 640, 480)) #self.label_result1.setText("") self.label_result1.setObjectName("label_result1") self.AddTo = QtWidgets.QPushButton(dialog) self.AddTo.setGeometry(QtCore.QRect(260, 700, 121, 28)) self.AddTo.setObjectName("AddTo") self.label_result2 = QWebEngineView(self) self.label_result2.setGeometry(QtCore.QRect(680, 150, 640, 480)) #self.label_result2.setText("") self.label_result2.setObjectName("label_result2") self.AddTo_2 = QtWidgets.QPushButton(dialog) self.AddTo_2.setGeometry(QtCore.QRect(940, 700, 121, 28)) self.AddTo_2.setObjectName("AddTo_2") self.label_texts_2 = QtWidgets.QLabel(dialog) self.label_texts_2.setGeometry(QtCore.QRect(594, 60, 41, 21)) font = QtGui.QFont() font.setFamily("Agency FB") font.setPointSize(12) self.label_texts_2.setFont(font) self.label_texts_2.setObjectName("label_texts_2") self.label_texts_3 = QtWidgets.QLabel(dialog) self.label_texts_3.setGeometry(QtCore.QRect(690, 60, 81, 21)) font = QtGui.QFont() font.setFamily("Agency FB") font.setPointSize(12) self.label_texts_3.setFont(font) self.label_texts_3.setObjectName("label_texts_3") self.label_picture.raise_() self.closeWinBtn.raise_() self.spinBox_season.raise_() self.spinBox_year.raise_() self.label_texts.raise_() self.pushButton.raise_() self.label_result1.raise_() self.AddTo.raise_() self.label_result2.raise_() self.AddTo_2.raise_() self.label_texts_2.raise_() self.label_texts_3.raise_() self.retranslateUi(dialog) self.closeWinBtn.clicked.connect(dialog.close) QtCore.QMetaObject.connectSlotsByName(dialog) self.pushButton.clicked.connect(self.on_click) self.AddTo.clicked.connect(self.put_into_report1) self.AddTo_2.clicked.connect(self.put_into_report2)
def __init__(self): super(QMainWindow, self).__init__() self.setGeometry(200, 200, 1250, 650) self.browser = QWebEngineView() # 所有分析结果存放目录 self.default_dir = '../result/'
def setupUI(self): self.setWindowTitle(AwBrowser.TITLE) self.setWindowFlags(Qt.WindowMinMaxButtonsHint | Qt.WindowCloseButtonHint) self.setGeometry(450, 200, 800, 450) self.setMinimumWidth(640) self.setMinimumHeight(450) self.setStyleSheet(Style.DARK_BG) mainLayout = QVBoxLayout() mainLayout.setContentsMargins(0, 0, 0, 0) mainLayout.setSpacing(0) self.setLayout(mainLayout) self._web = QWebEngineView(self) self._web.contextMenuEvent = self.contextMenuEvent self._web.page().loadStarted.connect(self.onStartLoading) self._web.page().loadFinished.connect(self.onLoadFinish) self._web.page().loadProgress.connect(self.onProgress) self._web.page().urlChanged.connect(self.onPageChange) # -------------------- Top / toolbar ---------------------- navtbar = QToolBar("Navigation") navtbar.setIconSize(QSize(16, 16)) mainLayout.addWidget(navtbar) backBtn = QAction( QtGui.QIcon(os.path.join(CWD, 'assets', 'arrow-back.png')), "Back", self) backBtn.setStatusTip("Back to previous page") backBtn.triggered.connect(self._web.back) navtbar.addAction(backBtn) self.forwardBtn = QAction( QtGui.QIcon(os.path.join(CWD, 'assets', 'arrow-forward.png')), "Forward", self) self.forwardBtn.setStatusTip("Next visited page") self.forwardBtn.triggered.connect(self._web.forward) navtbar.addAction(self.forwardBtn) refreshBtn = QAction( QtGui.QIcon(os.path.join(CWD, 'assets', 'reload.png')), "Reload", self) refreshBtn.setStatusTip("Reload") refreshBtn.triggered.connect(self._web.reload) navtbar.addAction(refreshBtn) self.createProvidersMenu(navtbar) self._itAddress = QtWidgets.QLineEdit(self) self._itAddress.setObjectName("itSite") self._itAddress.setStyleSheet('background-color: #F5F5F5;') self._itAddress.returnPressed.connect(self._goToAddress) navtbar.addWidget(self._itAddress) cbGo = QAction(QtGui.QIcon(os.path.join(CWD, 'assets', 'go-icon.png')), "Go", self) cbGo.setObjectName("cbGo") navtbar.addAction(cbGo) cbGo.triggered.connect(self._goToAddress) self.stopBtn = QAction( QtGui.QIcon(os.path.join(CWD, 'assets', 'stop.png')), "Stop", self) self.stopBtn.setStatusTip("Stop loading") self.stopBtn.triggered.connect(self._web.stop) navtbar.addAction(self.stopBtn) # -------------------- Center ---------------------- mainLayout.addWidget(self._web) # -------------------- Bottom bar ---------------------- bottomWidget = QtWidgets.QWidget(self) bottomWidget.setFixedHeight(30) bottomLayout = QtWidgets.QHBoxLayout(bottomWidget) bottomLayout.setObjectName("bottomLayout") bottomWidget.setStyleSheet('color: #FFF;') lbSite = QtWidgets.QLabel(bottomWidget) lbSite.setObjectName("label") lbSite.setText("Context: ") lbSite.setFixedWidth(70) lbSite.setStyleSheet('font-weight: bold;') bottomLayout.addWidget(lbSite) self.ctxWidget = QtWidgets.QLabel(bottomWidget) self.ctxWidget.width = 300 self.ctxWidget.setStyleSheet('text-align: left;') bottomLayout.addWidget(self.ctxWidget) self._loadingBar = QtWidgets.QProgressBar(bottomWidget) self._loadingBar.setFixedWidth(100) self._loadingBar.setProperty("value", 100) self._loadingBar.setObjectName("loadingBar") bottomLayout.addWidget(self._loadingBar) mainLayout.addWidget(bottomWidget) if cfg.getConfig().browserAlwaysOnTop: self.setWindowFlags(Qt.WindowStaysOnTopHint)
import sys from PyQt5.QtWebEngineWidgets import QWebEngineView from PyQt5.QtWidgets import QApplication from PyQt5.QtCore import QUrl from PyQt5 import QtCore app = QApplication(sys.argv) qev = QWebEngineView() qev.show() print(QtCore.qVersion()) def runTest(): try: from PyQt5.QtTest import QTest from PyQt5.QtCore import Qt QTest.keyClick(qev, Qt.Key_Tab) print('finished') except Exception as e: print('exception:', e) finally: exit() qev.page().loadFinished.connect(runTest) qev.load(QUrl('http://google.com')) app.exec_()
def __init__(self, model_editor): """Initialize the class.""" super(MainWindow, self).__init__() self.setMinimumSize(960, 660) self._hsplitter = QtWidgets.QSplitter(QtCore.Qt.Horizontal, self) self._model_editor = model_editor self.setCentralWidget(self._hsplitter) # tabs self._tab = QtWidgets.QTabWidget(self._hsplitter) self._tab.setSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) self._tab.setMinimumSize(600, 200) self._tab.sizeHint = lambda: QtCore.QSize(700, 250) self.info = QWebEngineView(self._tab) self.info.setContextMenuPolicy(QtCore.Qt.NoContextMenu) self.info_page = panels.InfoPanelPage() self.info.setPage(self.info_page) """info panel""" self.err = panels.ErrorWidget(self._tab) """error message panel""" self._tab.addTab(self.info, "Structure Info") self._tab.addTab(self.err, "Messages") # debug panel if cfg.config.DEBUG_MODE: self.debug_tab = panels.DebugPanelWidget(self._tab) self._tab.addTab(self.debug_tab, "Debug") # splitters self._vsplitter = QtWidgets.QSplitter(QtCore.Qt.Vertical, self._hsplitter) self.editor = panels.YamlEditorWidget(self._vsplitter) """main editor component""" self.tree = panels.TreeWidget(self._vsplitter) """tree data display widget""" self._vsplitter.addWidget(self.editor) self._vsplitter.addWidget(self._tab) self._hsplitter.insertWidget(0, self.tree) # Menu bar self._menu = self.menuBar() self._file_menu = MainFileMenu(self, self._model_editor) self.update_recent_files(0) self._edit_menu = MainEditMenu(self, self.editor) self._settings_menu = MainSettingsMenu(self, self._model_editor) self._menu.addMenu(self._file_menu) self._menu.addMenu(self._edit_menu) self._menu.addMenu(self._settings_menu) # status bar self._column = QtWidgets.QLabel(self) self._column.setFrameStyle(QtWidgets.QFrame.StyledPanel) self._reload_icon = QtWidgets.QLabel(self) self._reload_icon.setPixmap(icon.get_pixmap("refresh", 16)) self._reload_icon.setVisible(False) self._reload_icon_timer = QtCore.QTimer(self) self._reload_icon_timer.timeout.connect(lambda: self._reload_icon.setVisible(False)) cfg.config.observers.append(self) self._status = self.statusBar() self._status.addPermanentWidget(self._reload_icon) self._status.addPermanentWidget(self._column) self.setStatusBar(self._status) self._status.showMessage("Ready", 5000) # signals self.err.itemSelected.connect(self._item_selected) self.tree.itemSelected.connect(self._item_selected) self.editor.nodeChanged.connect(self._reload_node) self.editor.cursorChanged.connect(self._cursor_changed) self.editor.structureChanged.connect(self._structure_changed) self.editor.errorMarginClicked.connect(self._error_margin_clicked) self.editor.elementChanged.connect(lambda new, old: self._update_info(new)) self.editor.nodeSelected.connect(self._on_node_selected) # initialize components self._update_info(None) self.config_changed() # set focus self.editor.setFocus()
def gotowebpage(self, url): browser_search = QWebEngineView() search_url = QUrl(url.replace('watch?v=', 'embed/')) browser_search.load(search_url)
def init_widget(self): self.setWindowTitle(self.title) web = QWebEngineView() url = QUrl.fromLocalFile(r'%s/description.html' % os.getcwd()) web.load(url) self.form_layout.addWidget(web)
def cal1(self): self.num7 = QPushButton("7", self) self.num7.setGeometry(250, 250, 100, 50) self.num8 = QPushButton("8", self) self.num8.setGeometry(350, 250, 100, 50) self.num9 = QPushButton("9", self) self.num9.setGeometry(450, 250, 100, 50) self.num4 = QPushButton("4", self) self.num4.setGeometry(250, 300, 100, 50) self.num5 = QPushButton("5", self) self.num5.setGeometry(350, 300, 100, 50) self.num6 = QPushButton("6", self) self.num6.setGeometry(450, 300, 100, 50) self.num1 = QPushButton("1", self) self.num1.setGeometry(250, 350, 100, 50) self.num2 = QPushButton("2", self) self.num2.setGeometry(350, 350, 100, 50) self.num3 = QPushButton("3", self) self.num3.setGeometry(450, 350, 100, 50) self.num0 = QPushButton("0", self) self.num0.setGeometry(250, 400, 100, 50) self.numm1 = QPushButton("Pow", self) self.numm1.setGeometry(350, 400, 100, 50) self.numm2 = QPushButton(".", self) self.numm2.setGeometry(450, 400, 100, 50) self.numm3 = QPushButton("/", self) self.numm3.setGeometry(550, 250, 100, 50) self.numm4 = QPushButton("x", self) self.numm4.setGeometry(550, 300, 100, 50) self.numm5 = QPushButton("-", self) self.numm5.setGeometry(550, 350, 100, 50) self.numm6 = QPushButton("+", self) self.numm6.setGeometry(550, 400, 100, 50) self.numm7 = QPushButton("Clear", self) self.numm7.setGeometry(250, 450, 200, 50) self.line = QLineEdit(self) self.line.setGeometry(250, 190, 100, 35) self.line1 = QLineEdit(self) self.line1.setGeometry(360, 190, 100, 35) self.line2 = QLineEdit(self) self.line2.setGeometry(500, 190, 150, 35) self.label = QLabel("=", self) self.label.move(480, 190) self.numm8 = QPushButton("Mod", self) self.numm8.setGeometry(450, 450, 200, 50) self.setWindowTitle(self.tit) self.setGeometry(self.top, self.bot, self.wid, self.hei) if self.numm6.isEnabled(): self.numm6.clicked.connect(self.addition) if self.numm5.isEnabled(): self.numm5.clicked.connect(self.sub) if self.numm4.isEnabled(): self.numm4.clicked.connect(self.mul) if self.numm3.isEnabled(): self.numm3.clicked.connect(self.div) if self.numm1.isEnabled(): self.numm1.clicked.connect(self.pow) if self.numm8.isEnabled(): self.numm8.clicked.connect(self.mod) # if self.line.isEnabled(): # if self.num0.isEnabled(): # self.line.text()==0 self.brow = QWebEngineView() noni = QToolBar("navigation") noni.setIconSize(QSize(20, 20)) self.addToolBar(noni) back = QAction(QIcon(os.path.join('back.png')), "back", self) back.setStatusTip("back to Previous Page") back.triggered.connect(self.bac1) noni.addAction(back) forward = QAction(QIcon(os.path.join('forward.png')), "Forward", self) forward.setStatusTip("back to Previous Page") forward.triggered.connect(self.brow.forward) noni.addAction(forward)
def initUI(self): # Add core elements for the window # Add core elements for the window self.lblDesign = QLabel("", self) self.lblDesign.setStyleSheet( "background-color: #019A74; font-weight: bold; color: White; font-family: century gothic; font-size: 16px" ) self.lblDesign.setMinimumSize(1000, 70) self.img_logo = QLabel(self) pixmap = QPixmap("Images/mini_Teacher3.png") self.img_logo.setPixmap(pixmap) self.img_logo.move(20, -12) self.img_logo.setMinimumSize(100, 100) self.lbl_tittle1 = QLabel("Aula ", self) self.lbl_tittle1.setStyleSheet( "font-weight: b old; color: white; font-family: century gothic; font-size: 32px" ) self.lbl_tittle1.move(415, 90) self.lbl_tittle2 = QLabel("Virtual", self) self.lbl_tittle2.setStyleSheet( "font-weight: bold; color: white; font-family: century gothic; font-size: 32px" ) self.lbl_tittle2.setMinimumSize(110, 30) self.lbl_tittle2.move(507, 90) # This window # self.setFixedSize(1366, 768) self.setFixedSize(1000, 700) self.setWindowTitle('Aula virtual') palette = QPalette() palette.setBrush(QPalette.Background, QBrush(QColor("#1B528A"))) # # Slides # self.lbl_slides = QLabel("", self) # self.lbl_slides.setStyleSheet( # "background-color: #019A74; font-weight: bold; color: White; font-family: century gothic; font-size: 16px") # self.lbl_slides.setMinimumSize(645, 355) # self.lbl_slides.move(293, 140) # Camera self.lbl_camera = QVBoxLayout() self.web = QWebEngineView(self) settings = QWebEngineSettings.globalSettings().setAttribute( QWebEngineSettings.PluginsEnabled, True) settings = QWebEngineSettings.globalSettings().setAttribute( QWebEngineSettings.AllowRunningInsecureContent, True) self.web.page().featurePermissionRequested.connect(self.permisos) self.iniciar_video() # self.web.page().setUrl(QUrl("http://localhost:5080/demos/simpleSubscriber.html")) # self.web.load(QUrl("http://localhost:5080/demos/simpleSubscriber.html")) self.web.setMinimumSize(370, 300) self.web.move(60, 140) self.web.show() self.lbl_camera.addWidget(self.web) self.lbl_slides = QVBoxLayout() self.web_slides = QWebEngineView(self) print(self.clase["CARPETA_COMPARTIDA"]) self.web_slides.page().setUrl(QUrl(self.clase["CARPETA_COMPARTIDA"])) # self.web_slides.setEnabled(False) self.web_slides.setMinimumSize(480, 300) self.web_slides.move(450, 140) self.web_slides.show() self.lbl_slides.addWidget(self.web_slides) # self.lbl_camera.setStyleSheet( # "background-color: #019A74; font-weight: bold; color: White; font-family: century gothic; font-size: 16px") # self.lbl_camera. # Chat self.lbl_chat = QLabel("", self) self.lbl_chat.setStyleSheet( "background-color: White; font-weight: bold; color: White; font-family: century gothic; font-size: 16px" ) self.lbl_chat.setMinimumSize(645, 220) self.lbl_chat.move(293, 460) self.txt_messages = QTextEdit("", self) self.txt_messages.setStyleSheet( "font-weight: bold; color: black; font-family: century gothic; font-size: 16px" ) self.txt_messages.setMinimumSize(630, 130) self.txt_messages.move(300, 477) self.txt_messages.setReadOnly(True) # Text field self.txt_message = QTextEdit("", self) self.txt_message.setStyleSheet( "font-weight: bold; color: black; font-family: century gothic; font-size: 16px" ) self.txt_message.setMinimumSize(520, 55) self.txt_message.move(300, 615) # Send button self.btn_send = QPushButton('Enviar', self) self.btn_send.move(830, 635) self.btn_send.setStyleSheet( "background-color: #08AE9E; font-weight: bold; color: White; font-family: century gothic; font-size: 16px" ) self.btn_send.clicked.connect(self.click_send) # Student's list self.lbl_list = QLabel("", self) self.lbl_list.setStyleSheet( "background-color: #019A74; font-weight: bold; color: White; font-family: century gothic; font-size: 16px" ) self.lbl_list.setMinimumSize(190, 19) self.lbl_list.move(60, 510) self.lbl_last_name_m = QLabel("Alumnos conectados", self) self.lbl_last_name_m.setStyleSheet( "font-weight: bold; color: white; font-family: century gothic; font-size: 15px" ) self.lbl_last_name_m.setMinimumSize(190, 25) self.lbl_last_name_m.move(70, 510) self.list = QListWidget(self) self.list.setMinimumSize(190, 140) self.list.move(60, 540) # self.model = QStandardItemModel(self.list) # # #Set default items # alumnos = ['Ana Paola', 'Susana', 'Erasmo Carlos'] # for alumno in alumnos: # item = QStandardItem(alumno) # self.model.appendRow(item) # # self.list.setModel(self.model) self.list.show() self.iniciar_conectados() #Participation button self.cargar_botones() #Log out button self.lbl_logout = QLabel('Cerrar sesión', self) self.lbl_logout.move(830, 40) self.lbl_logout.setStyleSheet( "font-weight: bold; color: white; font-family: century gothic; font-size: 14px" ) self.lbl_logout.setMinimumSize(100, 15) self.lbl_logout.mousePressEvent = self.click_exit self.lbl_clase = QLabel(self.clase["CLASE"], self) self.lbl_clase.move(110, 40) self.lbl_clase.setStyleSheet( "font-weight: bold; color: white; font-family: century gothic; font-size: 16px" ) self.lbl_clase.setMinimumSize(350, 15) # 2F4D6B" self.setPalette(palette) self.show()
def __init__(self, url, disable_browser): # initialize super().__init__() self._view = None self._is_closing = False # initialize the main window self.setWindowTitle(APP_NAME) if IS_FROZEN: base_dir = os.path.join(sys._MEIPASS, "vasl_templates/webapp") #pylint: disable=no-member,protected-access else: base_dir = os.path.join(os.path.split(__file__)[0], "webapp") self.setWindowIcon( QIcon(os.path.join(base_dir, "static/images/app.ico"))) # create the menu menu_bar = QMenuBar(self) file_menu = menu_bar.addMenu("&File") def add_action(caption, icon, handler): """Add a menu action.""" icon = QIcon( os.path.join(base_dir, "static/images/menu", icon ) if icon else None) action = QAction(icon, caption, self) action.triggered.connect(handler) file_menu.addAction(action) add_action("&Settings", "settings.png", self.on_settings) add_action("&About", "info.png", self.on_about) file_menu.addSeparator() add_action("E&xit", "exit.png", self.on_exit) # set the window geometry if disable_browser: self.setFixedSize(300, 108) else: # restore it from the previous session val = app_settings.value("MainWindow/geometry") if val: self.restoreGeometry(val) else: self.resize(1000, 650) self.setMinimumSize(1000, 620) # initialize the layout layout = QVBoxLayout(self) layout.setMenuBar(menu_bar) # FUDGE! We offer the option to disable the QWebEngineView since getting it to run # under Windows (especially older versions) is unreliable (since it uses OpenGL). # By disabling it, the program will at least start (in particular, the webapp server), # and non-technical users can then open an external browser and connect to the webapp # that way. Sigh... if not disable_browser: # initialize the web view self._view = QWebEngineView() layout.addWidget(self._view) # initialize the web page # nb: we create an off-the-record profile to stop the view from using cached JS files :-/ profile = QWebEngineProfile(None, self._view) version = APP_NAME.lower().replace(" ", "-") + "/" + APP_VERSION[1:] profile.setHttpUserAgent( re.sub(r"QtWebEngine/\S+", version, profile.httpUserAgent())) page = AppWebPage(profile, self._view) self._view.setPage(page) # create a web channel to communicate with the front-end web_channel = QWebChannel(page) # FUDGE! We would like to register a WebChannelHandler instance as the handler, but this crashes PyQt :-/ # Instead, we register ourself as the handler, and delegate processing to a WebChannelHandler. # The downside is that PyQt emits lots of warnings about our member variables not being properties, # but we filter them out in qtMessageHandler() :-/ self._web_channel_handler = WebChannelHandler(self) web_channel.registerObject("handler", self) page.setWebChannel(web_channel) # load the webapp url += "?pyqt=1" self._view.load(QUrl(url)) else: # show a minimal UI label = QLabel() label.setTextFormat(Qt.RichText) label.setText( "Running the <em>{}</em> application. <br>" \ "Click <a href='{}'>here</a> to connect." \ "<p> Close this window when you're done.".format( APP_NAME, url ) ) label.setStyleSheet( "QLabel { background-color: white ; padding: 0.5em ; }") label.setOpenExternalLinks(True) layout.addWidget(label) layout.setContentsMargins(QMargins(0, 0, 0, 0)) # register the instance assert MainWindow.instance is None MainWindow.instance = self
def __init__(self, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) self.browser = QWebEngineView() self.browser.setUrl(QUrl("https://www.google.com")) ### Navigation Toolbar navtb = QToolBar("Navigation") navtb.setIconSize(QSize(16, 16)) self.addToolBar(navtb) # Back Action back_btn = QAction(QIcon('ui/black/filled/chevron_left-48dp.svg'), "Back", self) back_btn.setStatusTip("Back to previous page") back_btn.triggered.connect(self.browser.back) navtb.addAction(back_btn) # Forward Action next_btn = QAction(QIcon('ui/black/filled/chevron_right-48dp.svg'), "Forward", self) next_btn.setStatusTip("Forward to next page") next_btn.triggered.connect(self.browser.forward) navtb.addAction(next_btn) # Reload Action reload_btn = QAction(QIcon('ui/black/filled/refresh-48dp.svg'), "Reload", self) reload_btn.setStatusTip("Reload page") reload_btn.triggered.connect(self.browser.reload) navtb.addAction(reload_btn) # Home Action home_btn = QAction(QIcon('ui/black/filled/home-18dp.svg'), "Home", self) home_btn.setStatusTip("Go home") home_btn.triggered.connect(self.navigate_home) navtb.addAction(home_btn) # HTTPS Icon self.httpsicon = QAction( QIcon('ui/black/filled/no_encryption-48dp.svg'), '', self) self.httpsicon.setStatusTip("Page is not SSL protected") self.httpsicon.setEnabled(False) #self.httpsicon.setPixmap(QPixmap('ui/black/filled/no_encryption-18dp.svg')) navtb.addAction(self.httpsicon) # URL Bar self.urlbar = QLineEdit() self.urlbar.returnPressed.connect(self.navigate_to_url) navtb.addWidget(self.urlbar) # Load stop Action stop_btn = QAction(QIcon('ui/black/filled/close-48dp.svg'), "Stop", self) stop_btn.setStatusTip("Stop loading current page") stop_btn.triggered.connect(self.browser.stop) navtb.addAction(stop_btn) # Updates self.browser.urlChanged.connect(self.update_urlbar) self.browser.loadFinished.connect(self.update_title) ### File Menu file_menu = self.menuBar().addMenu("&File") # Open Action open_file_action = QAction( QIcon('ui/black/filled/folder_open-48dp.svg'), "Open file...", self) open_file_action.setStatusTip('&Open from file') open_file_action.triggered.connect(self.open_file) file_menu.addAction(open_file_action) # Save Action save_file_action = QAction(QIcon('ui/black/filled/save-48dp.svg'), "Save file...", self) save_file_action.setText('&Save to file') save_file_action.triggered.connect(self.save_file) file_menu.addAction(save_file_action) ### Help Menu help_menu = self.menuBar().addMenu("&Help") # About dialog Action about_action = QAction(QIcon('ui/black/filled/help-48dp.svg'), "&About PyBrowse", self) about_action.setStatusTip("Find out more about PyBrowse") # Hungry! about_action.triggered.connect(self.about) help_menu.addAction(about_action) # Visit official site Action navigate_mozarella_action = QAction( QIcon('ui/black/filled/language-48dp.svg'), "PyBrowse &Homepage", self) navigate_mozarella_action.setStatusTip("Go to PyBrowse Homepage") navigate_mozarella_action.triggered.connect(self.navigate_page) help_menu.addAction(navigate_mozarella_action) self.setCentralWidget(self.browser) self.show()
import sys from PyQt5.QtCore import QUrl from PyQt5.QtWidgets import QApplication from PyQt5.QtWebEngineWidgets import QWebEnginePage, QWebEngineView app = QApplication(sys.argv) browser = QWebEngineView() browser.load(QUrl("http://www.baidu.com/")) browser.show() app.exec_()
def __init__(self): super(UI, self).__init__() self.setWindowTitle('国内城市旅行规划') self.resize(1000, 1000) self.setFixedSize(1000, 1000) self.setWindowIcon(QIcon(':/icon.png')) self.setStyleSheet('QWidget{background-color:white}') # 浏览器窗口 self.browser = QWebEngineView(self) self.browser.setGeometry(0, 0, 1000, 1000) self.zoom = 10 self.lontitude = 102.672914 self.latitude = 24.854418 self.Latitude = [] self.center = [] # self.mark = '&markers=' self.mark = '' # self.X = 'mid,0x'+color+',1:103.272914,24.754418;103.382904,25.098624;103.187825,26.082873;103.290785,24.771798;103.290785,24.771798;103.324432,24.8122|' self.X = '' color = "%06x" % randint(0, 0xFFFFFF) self.Y = '' # self.Y = 'mid,0x'+color+',2:102.665546,24.960582;102.666754,24.964496;102.665546,24.960582;102.664376,25.038297;102.640854,24.956885;102.671114,25.023184;102.668468,24.966766;102.659138,24.960492;102.6655,24.9598;102.651073,24.973296' Url = 'https://restapi.amap.com/v3/staticmap?location=' + str( self.lontitude ) + ',' + str(self.latitude) + '&zoom=' + str( self.zoom ) + '&size=1000*1000' + self.mark + self.X + self.Y + '&key=e64e53102dc5f929aed6622db61f3167' self.browser.setUrl(QUrl(Url)) # 工具条 self.main_toolbar = QToolBar(self) self.main_toolbar.setIconSize(QSize(30, 30)) self.addToolBar(self.main_toolbar) # 添加按钮 self.Zoomin_button = QAction(QIcon(':/ZoomIn.png'), '放大', self) self.Zoomout_button = QAction(QIcon(':/ZoomOut.png'), '缩小', self) self.Up_button = QAction(QIcon(':/Up.png'), '向上移动', self) self.Down_button = QAction(QIcon(':/Down.png'), '向下移动', self) self.Left_button = QAction(QIcon(':/Left.png'), '向左移动', self) self.Right_button = QAction(QIcon(':/Right.png'), '向右移动', self) # 添加文本框 self.place_text = QLineEdit(self) self.place_text.setMaximumWidth(280) self.place_text.setPlaceholderText("请输入旅行的城市(省份):") font = QFont() font.setFamily('楷体') # 设置字体 font.setBold(True) # 设置粗体 font.setPixelSize(15) font.setPointSize(12) self.place_text.setFont(font) # 添加按钮,调用trans_address_to_lalo函数 self.Insertplace_button = QAction(QIcon(':/Enter.png'), '输入', self) # 添加文本框 self.time_text = QLineEdit(self) self.time_text.setMaximumWidth(270) self.time_text.setPlaceholderText("请输入计划天数(次数):") font = QFont() font.setFamily('楷体') # 设置字体 font.setBold(True) # 设置粗体 font.setPixelSize(15) font.setPointSize(12) self.time_text.setFont(font) # 添加按钮,调用run_and_draw函数 self.Inserttime_button = QAction(QIcon(':/Enter.png'), '输入', self) # 添加按钮,绘图 self.Submit = QPushButton(self) self.Submit.setStyleSheet(''' QPushButton{font-size:25px; border-width:20px;color:white;background-color:rgb(30,111,255);} QPushButton:hover{font-size:25px; border-width:5px;color:white;background-color:rgb(83,145,255);border-radius:5px;} QPushButton:pressed{font-size:25px; border-width:5px;color:white;background-color:rgb(27,101,135);border-radius:5px;} ''') self.Submit.setText('提交计算(S)') # 添加按钮动作 # 放大缩小,移动地图 self.main_toolbar.addAction(self.Zoomin_button) self.main_toolbar.addAction(self.Zoomout_button) self.main_toolbar.addAction(self.Up_button) self.main_toolbar.addAction(self.Down_button) self.main_toolbar.addAction(self.Left_button) self.main_toolbar.addAction(self.Right_button) # 放大缩小,写入地点按钮 self.main_toolbar.addWidget(self.place_text) self.main_toolbar.addAction(self.Insertplace_button) # 放大缩小,写入K_means算法的k self.main_toolbar.addWidget(self.time_text) self.main_toolbar.addAction(self.Inserttime_button) # 调用run_and_draw函数 self.main_toolbar.addWidget(self.Submit) # 添加按钮函数 self.Zoomin_button.triggered.connect(self.Zoomin) self.Zoomout_button.triggered.connect(self.Zoomout) self.Up_button.triggered.connect(self.Up) self.Down_button.triggered.connect(self.Down) self.Left_button.triggered.connect(self.Left) self.Right_button.triggered.connect(self.Right) self.Insertplace_button.triggered.connect(self.Insertplace) self.Inserttime_button.triggered.connect(self.Inserttime) self.Submit.pressed.connect(self.Upload)
def contentWidget(self): # select region v box 1 select_region_h_box1 = QHBoxLayout() # selection one notice select_region_h_box1.addSpacing(10) # selection label 1 self.select_region_label = QLabel("Select Region", self) select_region_h_box1.addWidget(self.select_region_label) # drop down button self.select_region_combo = QComboBox(self) self.select_region_combo.addItems(self.italy_regions) select_region_h_box1.addWidget(self.select_region_combo) # push button self.select_region_botton = QPushButton("Check Region", self) self.select_region_botton.pressed.connect(self.italyRegionClicked) select_region_h_box1.addWidget(self.select_region_botton) # select region v box 2 select_region_h_box2 = QHBoxLayout() select_region_h_box2.addSpacing(10) # selection label 1 self.select_region_label = QLabel("Italy against", self) select_region_h_box2.addWidget(self.select_region_label) # drop down button (combo ) self.select_euro_combo = QComboBox(self) self.select_euro_combo.addItems(self.european_countries) select_region_h_box2.addWidget(self.select_euro_combo) # push button self.compare_button = QPushButton("Compare", self) self.compare_button.pressed.connect(self.europeanCountriesClicked) select_region_h_box2.addWidget(self.compare_button) # selection main V box select_region_main_v_box = QVBoxLayout() # An overall language pull down menu is being requested at the very top of the GUI # with the option of English and Italian labelling language_h_box = QHBoxLayout() self.language_lbl = QLabel("Select Language", self) self.language_combobox = QComboBox() # language option options = ([ ('English', 'en'), ('Italian', 'it'), ('Spanish', 'es'), ('Chinese', 'zh-CN'), ]) # add language and change language for i, (text, lang) in enumerate(options): self.language_combobox.addItem(text) self.language_combobox.setItemData(i, lang) language_h_box.addWidget(self.language_lbl) # on index changed self.language_combobox.currentIndexChanged.connect( self.languageChanged) language_h_box.addWidget(self.language_combobox) language_h_box.addStretch() # add language_h_box layout select_region_main_v_box.addLayout(language_h_box) # Italy Region Covid Report self.italy_lbl = QLabel("Italy Region Covid Report", self) self.italy_lbl.setStyleSheet("border: 0.5px solid gray") select_region_main_v_box.addWidget(self.italy_lbl) select_region_main_v_box.addLayout(select_region_h_box1) select_region_main_v_box.setSpacing(15) self.euro_text = QLabel( "Italy Covid report against European countries", self) self.euro_text.setStyleSheet("border: 0.5px solid gray") select_region_main_v_box.addWidget(self.euro_text) select_region_main_v_box.addLayout(select_region_h_box2) select_region_main_v_box.addStretch() # for region map and demographic region_map_box = QVBoxLayout() self.coordinate_title = "This is a title" self.coordinate = coordinate['Campania'] m = folium.Map(tiles="Stamen Terrain", zoom_start=6, location=self.coordinate) # create HTML for pop up def foliumHtml(lo): # get stats if lo != "Italy": stats = self.core.getRegionStats(str(lo)) return f""" <h1 style='color:#7b113a;'> {lo} </h1> <hr/> <p style='color:#7b113a;font-size:20px;'>Region Population: {stats['region_population']}</p> <p style='color:#7b113a;font-size:20px;'>Total Covid Case: {stats['case_number']}</p> <p style='color:#7b113a;font-size:20px;'>Daily Cases: {stats['expectedChanges']}</p> <p style='color:#7b113a;font-size:20px;'>Percentage: {stats['percentage']}%</p> """ else: return f""" <h1> {lo}</h1> <p>European country with a long Mediterranean coastline, has left a powerful mark on Western culture and cuisine.</p> """ # add marker one by one on the map for lo in coordinate: # add pop ups html = foliumHtml(lo) iframe = folium.IFrame(html=html, width=300, height=250) popUp = folium.Popup(iframe, max_width=2650) # Marker starts here folium.Marker(location=coordinate[lo], popup=popUp, icon=folium.DivIcon(html=f""" <div><svg> <circle cx="50" cy="50" r="40" fill="#7b113a" opacity=".4"/> <rect x="35", y="35" width="30" height="30", fill="#fff600", opacity=".3" </svg></div>""")).add_to(m) # save map data to data object data = io.BytesIO() m.save(data, close_file=False) webView = QWebEngineView() webView.setHtml(data.getvalue().decode()) region_map_box.addWidget(webView) # main box top - bottom h_box = QHBoxLayout() h_box.addLayout(select_region_main_v_box) h_box.addLayout(region_map_box) self.setLayout(h_box)
def setupUi(self, Form, url): """ Método empleado para especificar el contenido de la Interfáz gráfica, es generado por pyuic5. Args: Form: Ventana en la que se deplegará la interfáz gráfica (es un tipo de dato QtWidget.QWidget) """ Form.setObjectName("Form") Form.resize(800, 598) self.verticalLayoutWidget = QtWidgets.QWidget(Form) self.verticalLayoutWidget.setGeometry(QtCore.QRect(220, 0, 581, 541)) self.verticalLayoutWidget.setObjectName("verticalLayoutWidget") self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget) self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.verticalLayout.setObjectName("verticalLayout") self.horizontalLayout = QtWidgets.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") self.lblLogo = QtWidgets.QLabel(self.verticalLayoutWidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.lblLogo.sizePolicy().hasHeightForWidth()) self.lblLogo.setSizePolicy(sizePolicy) self.lblLogo.setMaximumSize(QtCore.QSize(1697/3.5, 312/3.5)) self.lblLogo.setLineWidth(1) self.lblLogo.setText("") self.lblLogo.setPixmap(QtGui.QPixmap(APPCTXT().get_resource("logo3.png"))) self.lblLogo.setScaledContents(True) self.lblLogo.setAlignment(QtCore.Qt.AlignCenter) self.lblLogo.setObjectName("lblLogo") self.horizontalLayout.addWidget(self.lblLogo) self.verticalLayout.addLayout(self.horizontalLayout) self.verticalLayout_2 = QtWidgets.QVBoxLayout() self.verticalLayout_2.setObjectName("verticalLayout_2") self.label_4 = QtWidgets.QLabel(self.verticalLayoutWidget) self.label_4.setToolTip("") self.label_4.setAlignment(QtCore.Qt.AlignCenter) self.label_4.setObjectName("label_4") self.verticalLayout_2.addWidget(self.label_4) self.webEngineWidget = QWebEngineView(self.verticalLayoutWidget) self.webEngineWidget.setObjectName("webEngineWidget") self.webEngineWidget.setMinimumSize(QtCore.QSize(0, 381)) #url = QUrl.fromLocalFile(QDir.currentPath()+"/Reporte/reporte.html") urlReporte = QUrl.fromLocalFile(url) self.webEngineWidget.load(urlReporte) self.verticalLayout_2.addWidget(self.webEngineWidget) self.horizontalLayout_2 = QtWidgets.QHBoxLayout() self.horizontalLayout_2.setSizeConstraint(QtWidgets.QLayout.SetDefaultConstraint) self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.pbStart = QtWidgets.QPushButton(self.verticalLayoutWidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.pbStart.sizePolicy().hasHeightForWidth()) self.pbStart.setSizePolicy(sizePolicy) self.pbStart.setLayoutDirection(QtCore.Qt.LeftToRight) self.pbStart.setObjectName("pbStart") self.horizontalLayout_2.addWidget(self.pbStart) self.pdSaveCsv = QtWidgets.QPushButton(self.verticalLayoutWidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.pdSaveCsv.sizePolicy().hasHeightForWidth()) self.pdSaveCsv.setSizePolicy(sizePolicy) self.pdSaveCsv.setLayoutDirection(QtCore.Qt.LeftToRight) self.pdSaveCsv.setObjectName("pdSaveCsv") self.horizontalLayout_2.addWidget(self.pdSaveCsv) self.pbRestart = QtWidgets.QPushButton(self.verticalLayoutWidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.pbRestart.sizePolicy().hasHeightForWidth()) self.pbRestart.setSizePolicy(sizePolicy) self.pbRestart.setLayoutDirection(QtCore.Qt.LeftToRight) self.pbRestart.setObjectName("pbRestart") self.horizontalLayout_2.addWidget(self.pbRestart) self.verticalLayout_2.addLayout(self.horizontalLayout_2) self.verticalLayout_2.setStretch(0, 1) self.verticalLayout_2.setStretch(1, 5) self.verticalLayout.addLayout(self.verticalLayout_2) self.verticalLayout.setStretch(0, 1) self.verticalLayout.setStretch(0, 0) self.lWVistas = QtWidgets.QListWidget(Form) self.lWVistas.setGeometry(QtCore.QRect(0, 90, 221, 451)) self.lWVistas.setObjectName("lWVistas") self.progressBar = QtWidgets.QProgressBar(Form) self.progressBar.setGeometry(QtCore.QRect(127, 560, 601, 23)) self.progressBar.setProperty("value", 24) self.progressBar.setObjectName("progressBar") self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form)
def __init__(self, parent=None): super().__init__(parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.ui.actionShow.triggered.connect(self.toggle_mode) self.ui.actionSave.triggered.connect(self.save_note) self.ui.actionLoadShelf.triggered.connect(self.download_shelf) self.ui.actionLoadHot.triggered.connect(self.show_hot_note) self.ui.actionLoadNotes.triggered.connect(self.download_notes) self.ui.statusBar.hide() self.pbar = QProgressBar(self) self.pbar.setFixedWidth(500) self.ui.statusBar.addWidget(self.pbar) icon = QtGui.QIcon() icon.addPixmap( QtGui.QPixmap(os.path.join(root_path, "static/icon.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.setWindowIcon(icon) self.browser = QWebEngineView(self) self.browser.setGeometry( 0, self.ui.menubar.height(), self.width(), self.height() - self.ui.menubar.height(), ) self.ui.actionback.triggered.connect(self.browser.back) self.ui.actionforward.triggered.connect(self.browser.forward) self.ui.actionShelf.triggered.connect(self.view_shelf) self.ui.actionLibrary.triggered.connect(self.view_library) # 加载外部的web页面 self.cache_path = os.path.join(root_path, "cache") if not os.path.exists(self.cache_path): os.mkdir(self.cache_path) # 设置缓存目录 default_profile = QWebEngineProfile.defaultProfile() default_profile.setCachePath(self.cache_path) default_profile.setPersistentStoragePath(self.cache_path) # 记录上次阅读位置 self.history_url_file = os.path.join(self.cache_path,"history.txt") if not os.path.exists(self.history_url_file): url = QUrl("https://weread.qq.com/") else: with open(self.history_url_file,'r') as f: url = QUrl(f.read().strip()) self.browser.urlChanged.connect(self.update_lastpage) # 每次改变都更新还是退出的时候更新 self.browser.load(url) self.model = QStringListModel(self) self.item_model = QStandardItemModel(self) self.select_model = QItemSelectionModel(self.item_model) self.ui.tableView.setModel(self.item_model) self.ui.tableView.setSelectionModel(self.select_model) self.ui.tableView.setAlternatingRowColors(True) self.ui.tableView.setSelectionBehavior(QAbstractItemView.SelectRows) self.is_reading_mode = True self.note_dir = os.path.join(root_path, "notes") if not os.path.exists(self.note_dir): os.mkdir(self.note_dir) try: self.update_cookies() self.booklist = wereader.get_bookshelf(self.cookies) self.books = itertools.cycle(self.booklist) self.curBook = self.booklist[0] except Exception: self.curBook = None self.booklist = None
def createUi(self): self.content = Expander("Content", ":/images/parts.svg") self.images = Expander("Images", ":/images/images.svg") self.settings = Expander("Settings", ":/images/settings.svg") self.setWindowTitle(QCoreApplication.applicationName() + " " + QCoreApplication.applicationVersion()) vbox = QVBoxLayout() vbox.addWidget(self.content) vbox.addWidget(self.images) vbox.addWidget(self.settings) vbox.addStretch() self.content_list = QListWidget() self.content_list.setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Fixed) content_box = QVBoxLayout() content_box.addWidget(self.content_list) self.item_edit = QLineEdit() self.item_edit.setMaximumHeight(0) self.item_edit.editingFinished.connect(self.editItemFinished) self.item_anim = QPropertyAnimation(self.item_edit, "maximumHeight".encode("utf-8")) content_box.addWidget(self.item_edit) button_layout = QHBoxLayout() plus_button = FlatButton(":/images/plus.svg") self.edit_button = FlatButton(":/images/edit.svg") self.trash_button = FlatButton(":/images/trash.svg") self.up_button = FlatButton(":/images/up.svg") self.down_button = FlatButton(":/images/down.svg") self.trash_button.enabled = False self.up_button.enabled = False self.down_button.enabled = False button_layout.addWidget(plus_button) button_layout.addWidget(self.up_button) button_layout.addWidget(self.down_button) button_layout.addWidget(self.edit_button) button_layout.addWidget(self.trash_button) content_box.addLayout(button_layout) self.content.addLayout(content_box) plus_button.clicked.connect(self.addPart) self.trash_button.clicked.connect(self.dropPart) self.up_button.clicked.connect(self.partUp) self.down_button.clicked.connect(self.partDown) self.edit_button.clicked.connect(self.editPart) self.image_list = QListWidget() self.image_list.setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Fixed) image_box = QVBoxLayout() image_box.addWidget(self.image_list) image_button_layout = QHBoxLayout() image_plus_button = FlatButton(":/images/plus.svg") self.image_trash_button = FlatButton(":/images/trash.svg") self.image_trash_button.enabled = False image_button_layout.addWidget(image_plus_button) image_button_layout.addWidget(self.image_trash_button) image_box.addLayout(image_button_layout) self.images.addLayout(image_box) image_plus_button.clicked.connect(self.addImage) self.image_trash_button.clicked.connect(self.dropImage) scroll_content = QWidget() scroll_content.setLayout(vbox) scroll = QScrollArea() scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarAsNeeded) scroll.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded) scroll.setWidget(scroll_content) scroll.setWidgetResizable(True) scroll.setMaximumWidth(200) scroll.setMinimumWidth(200) self.navigationdock = QDockWidget("Navigation", self) self.navigationdock.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea) self.navigationdock.setWidget(scroll) self.navigationdock.setObjectName("Navigation") self.addDockWidget(Qt.LeftDockWidgetArea, self.navigationdock) self.splitter = QSplitter() self.text_edit = MarkdownEdit() self.text_edit.setFont(QFont("Courier", 11)) self.preview = QWebEngineView() self.preview.setMinimumWidth(300) self.setWindowTitle(QCoreApplication.applicationName()) self.splitter.addWidget(self.text_edit) self.splitter.addWidget(self.preview) self.setCentralWidget(self.splitter) self.content.expanded.connect(self.contentExpanded) self.images.expanded.connect(self.imagesExpanded) self.settings.expanded.connect(self.settingsExpanded) self.settings.clicked.connect(self.openSettings) self.content_list.currentItemChanged.connect(self.partSelectionChanged) self.image_list.currentItemChanged.connect(self.imageSelectionChanged) self.image_list.itemDoubleClicked.connect(self.insertImage) self.text_edit.undoAvailable.connect(self.undoAvailable) self.text_edit.redoAvailable.connect(self.redoAvailable) self.text_edit.copyAvailable.connect(self.copyAvailable) QApplication.clipboard().dataChanged.connect(self.clipboardDataChanged)