コード例 #1
0
ファイル: qtwin.py プロジェクト: coblan/auxkit
def main():
    app = QApplication(sys.argv)
    #shared= QSharedMemory("wepush")
    #if shared.attach():
    #return 0
    #shared.create(1)

    #sys.stdout=common.Mystd()

    loop = QEventLoop(app)
    asyncio.set_event_loop(loop)

    win = QWebEngineView()  # QWebEngineView()
    director['root_win'] = win
    #thread.start_new_thread (server.start_server,(28289,))
    #win =QWebView()
    #win.setWindowIcon(QIcon( './html/wechat.ico'))
    win.setMinimumSize(1200, 900)
    win.setWindowTitle('微信群发工具V1.0')
    url = 'file:///%s/test.html' % base_dir.replace('\\', '/')
    win.load(QUrl(url))
    win.show()

    with loop:
        from server import start_server
        #loop.set_debug(True)
        loop.run_until_complete(start_server)
        #loop.create_task(send())
        #loop.create_task(start_server)

        loop.run_forever()
コード例 #2
0
class MainTest(unittest.TestCase):
    def test_WebEngineView_findText_exists(self):
        QCoreApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
        app = QApplication.instance() or QApplication()
        top_level = QWidget()
        layout = QVBoxLayout(top_level)
        self._view = QWebEngineView()
        self._view.loadFinished.connect(self.loaded)
        self._view.load(QUrl.fromLocalFile(os.path.join(TEST_DIR, "fox.html")))
        self._view.setMinimumSize(QSize(400, 300))
        self._callback_count = 0
        layout.addWidget(self._view)
        top_level.show()
        app.exec_()

    def found_callback(self, found):
        self.assertTrue(found)
        self._callback_count += 1
        if self._callback_count == 2:
            QCoreApplication.quit()

    def javascript_callback(self, result):
        self.assertEqual(result, "Title")
        self._callback_count += 1
        if self._callback_count == 2:
            QCoreApplication.quit()

    def loaded(self, ok):
        self.assertTrue(ok)
        if not ok:
            QCoreApplication.quit()
        self._view.page().runJavaScript("document.title", 1,
                                        partial(self.javascript_callback))
        self._view.findText("fox", QWebEnginePage.FindFlags(),
                            partial(self.found_callback))
コード例 #3
0
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(780, 879)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(":/icons/cat.png"), QtGui.QIcon.Normal,
                       QtGui.QIcon.Off)
        MainWindow.setWindowIcon(icon)
        MainWindow.setStyleSheet("background-color:rgb(70, 70, 70)")
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.centralwidget)
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.widget = QtWidgets.QWidget(self.centralwidget)
        self.widget.setObjectName("widget")
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.widget)
        self.horizontalLayout_2.setSpacing(1)
        self.horizontalLayout_2.setContentsMargins(1, 1, 5, 5)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.tabWidget_main = QtWidgets.QTabWidget(self.widget)
        self.tabWidget_main.setFocusPolicy(QtCore.Qt.NoFocus)
        self.tabWidget_main.setStatusTip("")
        self.tabWidget_main.setStyleSheet("background-color:rgb(60, 60, 60)")
        self.tabWidget_main.setObjectName("tabWidget_main")
        self.tab_import = QtWidgets.QWidget()
        self.tab_import.setObjectName("tab_import")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.tab_import)
        self.verticalLayout_2.setSpacing(5)
        self.verticalLayout_2.setContentsMargins(5, 5, 5, 5)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.widget_2 = QtWidgets.QWidget(self.tab_import)
        self.widget_2.setStyleSheet("background-color:rgb(65, 65, 65)")
        self.widget_2.setObjectName("widget_2")
        self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.widget_2)
        self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.gridLayout = QtWidgets.QGridLayout()
        self.gridLayout.setObjectName("gridLayout")
        self.pushButton_search = QtWidgets.QPushButton(self.widget_2)
        font = QtGui.QFont()
        font.setFamily("Carlito")
        self.pushButton_search.setFont(font)
        self.pushButton_search.setStyleSheet(
            "QPushButton:hover{background:rgb(150, 150, 150);}")
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap(":/icons/magnifier.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.pushButton_search.setIcon(icon1)
        self.pushButton_search.setObjectName("pushButton_search")
        self.gridLayout.addWidget(self.pushButton_search, 0, 2, 1, 1)
        self.lineEdit_filepath = QtWidgets.QLineEdit(self.widget_2)
        self.lineEdit_filepath.setStyleSheet(
            "QLineEdit{border:1px solid gray; width:300px;border-radius:5px; padding:2px 4px;}"
        )
        self.lineEdit_filepath.setObjectName("lineEdit_filepath")
        self.gridLayout.addWidget(self.lineEdit_filepath, 0, 1, 1, 1)
        self.label_file_path = QtWidgets.QLabel(self.widget_2)
        font = QtGui.QFont()
        font.setFamily("Alef")
        font.setPointSize(9)
        font.setWeight(9)
        font.setItalic(False)
        font.setBold(False)
        self.label_file_path.setFont(font)
        self.label_file_path.setStyleSheet("font: 75 9pt \"Alef\";")
        self.label_file_path.setObjectName("label_file_path")
        self.gridLayout.addWidget(self.label_file_path, 0, 0, 1, 1)
        self.verticalLayout_3.addLayout(self.gridLayout)
        self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_6.setSpacing(7)
        self.horizontalLayout_6.setContentsMargins(-1, -1, -1, 0)
        self.horizontalLayout_6.setObjectName("horizontalLayout_6")
        self.pushButton_left = QtWidgets.QPushButton(self.widget_2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored,
                                           QtWidgets.QSizePolicy.Ignored)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.pushButton_left.sizePolicy().hasHeightForWidth())
        self.pushButton_left.setSizePolicy(sizePolicy)
        self.pushButton_left.setMinimumSize(QtCore.QSize(20, 20))
        self.pushButton_left.setBaseSize(QtCore.QSize(20, 20))
        self.pushButton_left.setStyleSheet(
            "QPushButton{background:rgb(94, 94, 94);border-radius:5px;}QPushButton:hover{background:rgb(15, 185, 15);}\n"
            "")
        self.pushButton_left.setText("")
        icon2 = QtGui.QIcon()
        icon2.addPixmap(QtGui.QPixmap(":/icons/left-arrow.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.pushButton_left.setIcon(icon2)
        self.pushButton_left.setObjectName("pushButton_left")
        self.horizontalLayout_6.addWidget(self.pushButton_left)
        self.pushButton_right = QtWidgets.QPushButton(self.widget_2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored,
                                           QtWidgets.QSizePolicy.Ignored)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.pushButton_right.sizePolicy().hasHeightForWidth())
        self.pushButton_right.setSizePolicy(sizePolicy)
        self.pushButton_right.setMinimumSize(QtCore.QSize(20, 20))
        self.pushButton_right.setBaseSize(QtCore.QSize(20, 20))
        self.pushButton_right.setStyleSheet(
            "QPushButton{background:rgb(94, 94, 94);border-radius:5px;}QPushButton:hover{background:rgb(15, 185, 15);}\n"
            "")
        self.pushButton_right.setText("")
        icon3 = QtGui.QIcon()
        icon3.addPixmap(QtGui.QPixmap(":/icons/right-arrow.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.pushButton_right.setIcon(icon3)
        self.pushButton_right.setFlat(False)
        self.pushButton_right.setObjectName("pushButton_right")
        self.horizontalLayout_6.addWidget(self.pushButton_right)
        self.comboBox_filterlist = QtWidgets.QComboBox(self.widget_2)
        self.comboBox_filterlist.setStyleSheet("")
        self.comboBox_filterlist.setObjectName("comboBox_filterlist")
        self.comboBox_filterlist.addItem("")
        self.comboBox_filterlist.addItem("")
        self.comboBox_filterlist.addItem("")
        self.horizontalLayout_6.addWidget(self.comboBox_filterlist)
        spacerItem = QtWidgets.QSpacerItem(399, 20,
                                           QtWidgets.QSizePolicy.Fixed,
                                           QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_6.addItem(spacerItem)
        self.verticalLayout_3.addLayout(self.horizontalLayout_6)
        self.listView = QtWidgets.QListView(self.widget_2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.listView.sizePolicy().hasHeightForWidth())
        self.listView.setSizePolicy(sizePolicy)
        self.listView.setMinimumSize(QtCore.QSize(50, 50))
        self.listView.setMaximumSize(QtCore.QSize(16777215, 16777215))
        self.listView.setStyleSheet(
            "QPushButton:hover{background:rgb(15, 185, 15);}")
        self.listView.setObjectName("listView")
        self.verticalLayout_3.addWidget(self.listView)
        self.widget_3 = QtWidgets.QWidget(self.widget_2)
        self.widget_3.setStyleSheet("background-color:rgb(75, 75, 75)")
        self.widget_3.setObjectName("widget_3")
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.widget_3)
        self.horizontalLayout_3.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.comboBox_export_mode = QtWidgets.QComboBox(self.widget_3)
        self.comboBox_export_mode.setObjectName("comboBox_export_mode")
        self.comboBox_export_mode.addItem("")
        self.comboBox_export_mode.addItem("")
        self.comboBox_export_mode.addItem("")
        self.horizontalLayout_3.addWidget(self.comboBox_export_mode)
        spacerItem1 = QtWidgets.QSpacerItem(40, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_3.addItem(spacerItem1)
        self.verticalLayout_3.addWidget(self.widget_3)
        self.widget_4 = QtWidgets.QWidget(self.widget_2)
        self.widget_4.setStyleSheet("background-color:rgb(75, 75, 75)")
        self.widget_4.setObjectName("widget_4")
        self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.widget_4)
        self.verticalLayout_4.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_4.setObjectName("verticalLayout_4")
        self.gridLayout_2 = QtWidgets.QGridLayout()
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.label_namsepace = QtWidgets.QLabel(self.widget_4)
        self.label_namsepace.setStyleSheet("font: 75 9pt \"Alef\";")
        self.label_namsepace.setObjectName("label_namsepace")
        self.gridLayout_2.addWidget(self.label_namsepace, 0, 2, 1, 1)
        self.lineEdit_namespace = QtWidgets.QLineEdit(self.widget_4)
        self.lineEdit_namespace.setStyleSheet(
            "QLineEdit{border:1px solid gray; width:50px;border-radius:5px; padding:2px 4px;}"
        )
        self.lineEdit_namespace.setObjectName("lineEdit_namespace")
        self.gridLayout_2.addWidget(self.lineEdit_namespace, 0, 3, 1, 1)
        self.lineEdit_exportname = QtWidgets.QLineEdit(self.widget_4)
        self.lineEdit_exportname.setStyleSheet(
            "QLineEdit{border:1px solid gray; width:200px;border-radius:5px; padding:2px 4px;}"
        )
        self.lineEdit_exportname.setObjectName("lineEdit_exportname")
        self.gridLayout_2.addWidget(self.lineEdit_exportname, 0, 1, 1, 1)
        self.label_export_name = QtWidgets.QLabel(self.widget_4)
        self.label_export_name.setStyleSheet("font: 75 9pt \"Alef\";")
        self.label_export_name.setObjectName("label_export_name")
        self.gridLayout_2.addWidget(self.label_export_name, 0, 0, 1, 1)
        self.lineEdit_exportpath = QtWidgets.QLineEdit(self.widget_4)
        self.lineEdit_exportpath.setStyleSheet(
            "QLineEdit{border:1px solid gray; width:200px;border-radius:5px; padding:2px 4px;}"
        )
        self.lineEdit_exportpath.setText("")
        self.lineEdit_exportpath.setObjectName("lineEdit_exportpath")
        self.gridLayout_2.addWidget(self.lineEdit_exportpath, 1, 1, 1, 3)
        self.label_exportpath = QtWidgets.QLabel(self.widget_4)
        self.label_exportpath.setWhatsThis("")
        self.label_exportpath.setStyleSheet("font: 75 9pt \"Alef\";")
        self.label_exportpath.setObjectName("label_exportpath")
        self.gridLayout_2.addWidget(self.label_exportpath, 1, 0, 1, 1)
        self.verticalLayout_4.addLayout(self.gridLayout_2)
        spacerItem2 = QtWidgets.QSpacerItem(20, 10,
                                            QtWidgets.QSizePolicy.Minimum,
                                            QtWidgets.QSizePolicy.Fixed)
        self.verticalLayout_4.addItem(spacerItem2)
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.label = QtWidgets.QLabel(self.widget_4)
        self.label.setStyleSheet("font: 75 9pt \"Alef\";")
        self.label.setObjectName("label")
        self.horizontalLayout.addWidget(self.label)
        self.checkBox_scene = QtWidgets.QCheckBox(self.widget_4)
        self.checkBox_scene.setObjectName("checkBox_scene")
        self.horizontalLayout.addWidget(self.checkBox_scene)
        self.checkBox_camera = QtWidgets.QCheckBox(self.widget_4)
        self.checkBox_camera.setObjectName("checkBox_camera")
        self.horizontalLayout.addWidget(self.checkBox_camera)
        self.checkBox_prop = QtWidgets.QCheckBox(self.widget_4)
        self.checkBox_prop.setObjectName("checkBox_prop")
        self.horizontalLayout.addWidget(self.checkBox_prop)
        self.checkBox_chracter = QtWidgets.QCheckBox(self.widget_4)
        self.checkBox_chracter.setObjectName("checkBox_chracter")
        self.horizontalLayout.addWidget(self.checkBox_chracter)
        spacerItem3 = QtWidgets.QSpacerItem(150, 20,
                                            QtWidgets.QSizePolicy.Ignored,
                                            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem3)
        self.verticalLayout_4.addLayout(self.horizontalLayout)
        self.progressBar = QtWidgets.QProgressBar(self.widget_4)
        self.progressBar.setProperty("value", 100)
        self.progressBar.setObjectName("progressBar")
        self.verticalLayout_4.addWidget(self.progressBar)
        spacerItem4 = QtWidgets.QSpacerItem(20, 20,
                                            QtWidgets.QSizePolicy.Minimum,
                                            QtWidgets.QSizePolicy.Fixed)
        self.verticalLayout_4.addItem(spacerItem4)
        self.widget_down3 = QtWidgets.QWidget(self.widget_4)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.widget_down3.sizePolicy().hasHeightForWidth())
        self.widget_down3.setSizePolicy(sizePolicy)
        self.widget_down3.setMinimumSize(QtCore.QSize(0, 155))
        self.widget_down3.setObjectName("widget_down3")
        self.horizontalLayout_7 = QtWidgets.QHBoxLayout(self.widget_down3)
        self.horizontalLayout_7.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_7.setObjectName("horizontalLayout_7")
        self.webEngineView = QWebEngineView(self.widget_down3)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.webEngineView.sizePolicy().hasHeightForWidth())
        self.webEngineView.setSizePolicy(sizePolicy)
        self.webEngineView.setMinimumSize(QtCore.QSize(399, 152))
        self.webEngineView.setMaximumSize(QtCore.QSize(999, 152))
        self.webEngineView.setUrl(QtCore.QUrl("about:blank"))
        self.webEngineView.setObjectName("webEngineView")
        self.horizontalLayout_7.addWidget(self.webEngineView)
        self.verticalLayout_4.addWidget(self.widget_down3)
        spacerItem5 = QtWidgets.QSpacerItem(20, 20,
                                            QtWidgets.QSizePolicy.Minimum,
                                            QtWidgets.QSizePolicy.Fixed)
        self.verticalLayout_4.addItem(spacerItem5)
        self.widget_down2 = QtWidgets.QWidget(self.widget_4)
        self.widget_down2.setObjectName("widget_down2")
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout(self.widget_down2)
        self.horizontalLayout_5.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.pushButton_action = QtWidgets.QPushButton(self.widget_down2)
        self.pushButton_action.setMinimumSize(QtCore.QSize(50, 0))
        font = QtGui.QFont()
        font.setFamily("Corbel")
        self.pushButton_action.setFont(font)
        self.pushButton_action.setStyleSheet(
            "QPushButton{background:rgb(94, 94, 94);border-radius:5px;}QPushButton:hover{background:rgb(185, 15, 15);}\n"
            "")
        icon4 = QtGui.QIcon()
        icon4.addPixmap(QtGui.QPixmap(":/icons/hammer.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.pushButton_action.setIcon(icon4)
        self.pushButton_action.setObjectName("pushButton_action")
        self.horizontalLayout_5.addWidget(self.pushButton_action)
        self.pushButton_ipAbcFromDisk = QtWidgets.QPushButton(
            self.widget_down2)
        font = QtGui.QFont()
        font.setFamily("Corbel")
        self.pushButton_ipAbcFromDisk.setFont(font)
        self.pushButton_ipAbcFromDisk.setStyleSheet(
            "QPushButton{background:rgb(94, 94, 94);border-radius:5px;}QPushButton:hover{background:gray;}"
        )
        icon5 = QtGui.QIcon()
        icon5.addPixmap(QtGui.QPixmap(":/icons/import.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.pushButton_ipAbcFromDisk.setIcon(icon5)
        self.pushButton_ipAbcFromDisk.setObjectName("pushButton_ipAbcFromDisk")
        self.horizontalLayout_5.addWidget(self.pushButton_ipAbcFromDisk)
        self.widget_up1 = QtWidgets.QWidget(self.widget_down2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.widget_up1.sizePolicy().hasHeightForWidth())
        self.widget_up1.setSizePolicy(sizePolicy)
        self.widget_up1.setMinimumSize(QtCore.QSize(0, 0))
        self.widget_up1.setObjectName("widget_up1")
        self.gridLayout_3 = QtWidgets.QGridLayout(self.widget_up1)
        self.gridLayout_3.setContentsMargins(0, 0, 0, 0)
        self.gridLayout_3.setObjectName("gridLayout_3")
        self.pushButton_setting = QtWidgets.QPushButton(self.widget_up1)
        self.pushButton_setting.setStyleSheet(
            "QPushButton{background:rgb(94, 94, 94);border-radius:5px;}QPushButton:hover{background:gray;}"
        )
        self.pushButton_setting.setText("")
        icon6 = QtGui.QIcon()
        icon6.addPixmap(QtGui.QPixmap(":/icons/settings-work-tool.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.pushButton_setting.setIcon(icon6)
        self.pushButton_setting.setObjectName("pushButton_setting")
        self.gridLayout_3.addWidget(self.pushButton_setting, 0, 0, 1, 1)
        self.horizontalLayout_5.addWidget(self.widget_up1)
        self.pushButton_refresh = QtWidgets.QPushButton(self.widget_down2)
        self.pushButton_refresh.setMinimumSize(QtCore.QSize(50, 0))
        font = QtGui.QFont()
        font.setFamily("Corbel")
        self.pushButton_refresh.setFont(font)
        self.pushButton_refresh.setStyleSheet(
            "QPushButton{background:rgb(94, 94, 94);border-radius:5px;}QPushButton:hover{background:green;}"
        )
        icon7 = QtGui.QIcon()
        icon7.addPixmap(QtGui.QPixmap(":/icons/refresh.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.pushButton_refresh.setIcon(icon7)
        self.pushButton_refresh.setObjectName("pushButton_refresh")
        self.horizontalLayout_5.addWidget(self.pushButton_refresh)
        spacerItem6 = QtWidgets.QSpacerItem(90, 20,
                                            QtWidgets.QSizePolicy.Fixed,
                                            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_5.addItem(spacerItem6)
        self.verticalLayout_4.addWidget(self.widget_down2)
        spacerItem7 = QtWidgets.QSpacerItem(20, 15,
                                            QtWidgets.QSizePolicy.Minimum,
                                            QtWidgets.QSizePolicy.Fixed)
        self.verticalLayout_4.addItem(spacerItem7)
        self.verticalLayout_3.addWidget(self.widget_4)
        self.verticalLayout_2.addWidget(self.widget_2)
        self.tabWidget_main.addTab(self.tab_import, icon, "")
        self.tab_undefined01 = QtWidgets.QWidget()
        self.tab_undefined01.setObjectName("tab_undefined01")
        self.tabWidget_main.addTab(self.tab_undefined01, "")
        self.tab_undefined02 = QtWidgets.QWidget()
        self.tab_undefined02.setObjectName("tab_undefined02")
        self.tabWidget_main.addTab(self.tab_undefined02, "")
        self.horizontalLayout_2.addWidget(self.tabWidget_main)
        self.horizontalLayout_4.addWidget(self.widget)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 780, 21))
        self.menubar.setStyleSheet("background-color:rgb(60, 60, 60)")
        self.menubar.setObjectName("menubar")
        self.menu_Setting = QtWidgets.QMenu(self.menubar)
        self.menu_Setting.setObjectName("menu_Setting")
        self.menu_About = QtWidgets.QMenu(self.menubar)
        self.menu_About.setObjectName("menu_About")
        self.menu_File = QtWidgets.QMenu(self.menubar)
        self.menu_File.setObjectName("menu_File")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        self.toolBar = QtWidgets.QToolBar(MainWindow)
        self.toolBar.setObjectName("toolBar")
        MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
        self.dockWidget_om = QtWidgets.QDockWidget(MainWindow)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.dockWidget_om.sizePolicy().hasHeightForWidth())
        self.dockWidget_om.setSizePolicy(sizePolicy)
        self.dockWidget_om.setMinimumSize(QtCore.QSize(142, 164))
        self.dockWidget_om.setFocusPolicy(QtCore.Qt.TabFocus)
        self.dockWidget_om.setFloating(False)
        self.dockWidget_om.setObjectName("dockWidget_om")
        self.dockWidgetContents_2 = QtWidgets.QWidget()
        self.dockWidgetContents_2.setObjectName("dockWidgetContents_2")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.dockWidgetContents_2)
        self.verticalLayout.setObjectName("verticalLayout")
        self.widget_leftside = QtWidgets.QWidget(self.dockWidgetContents_2)
        self.widget_leftside.setObjectName("widget_leftside")
        self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.widget_leftside)
        self.verticalLayout_5.setContentsMargins(7, 7, 7, 7)
        self.verticalLayout_5.setObjectName("verticalLayout_5")
        self.verticalLayout.addWidget(self.widget_leftside)
        self.dockWidget_om.setWidget(self.dockWidgetContents_2)
        MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(2),
                                 self.dockWidget_om)
        self.actionSetting = QtWidgets.QAction(MainWindow)
        self.actionSetting.setCheckable(False)
        self.actionSetting.setIcon(icon6)
        self.actionSetting.setStatusTip("")
        self.actionSetting.setVisible(True)
        self.actionSetting.setObjectName("actionSetting")
        self.actionAboutThis = QtWidgets.QAction(MainWindow)
        self.actionAboutThis.setObjectName("actionAboutThis")
        self.actionAbout = QtWidgets.QAction(MainWindow)
        self.actionAbout.setObjectName("actionAbout")
        self.actionDefault = QtWidgets.QAction(MainWindow)
        self.actionDefault.setObjectName("actionDefault")
        self.actionSave = QtWidgets.QAction(MainWindow)
        self.actionSave.setObjectName("actionSave")
        self.menu_Setting.addAction(self.actionDefault)
        self.menu_About.addAction(self.actionAboutThis)
        self.menu_File.addAction(self.actionSave)
        self.menu_File.addSeparator()
        self.menu_File.addSeparator()
        self.menubar.addAction(self.menu_File.menuAction())
        self.menubar.addAction(self.menu_Setting.menuAction())
        self.menubar.addAction(self.menu_About.menuAction())
        self.toolBar.addAction(self.actionSetting)

        self.retranslateUi(MainWindow)
        self.tabWidget_main.setCurrentIndex(0)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(
            QtWidgets.QApplication.translate("MainWindow",
                                             "Automation (Do your best)", None,
                                             -1))
        self.pushButton_search.setStatusTip(
            QtWidgets.QApplication.translate("MainWindow",
                                             "Tips: Start Search", None, -1))
        self.pushButton_search.setText(
            QtWidgets.QApplication.translate("MainWindow", "Search", None, -1))
        self.label_file_path.setStatusTip(
            QtWidgets.QApplication.translate("MainWindow",
                                             "The folder to search", None, -1))
        self.label_file_path.setText(
            QtWidgets.QApplication.translate("MainWindow", "File Path", None,
                                             -1))
        self.pushButton_left.setStatusTip(
            QtWidgets.QApplication.translate("MainWindow",
                                             "Tips: Switch to Top Level", None,
                                             -1))
        self.pushButton_right.setStatusTip(
            QtWidgets.QApplication.translate("MainWindow",
                                             "Tips: The next level", None, -1))
        self.comboBox_filterlist.setStatusTip(
            QtWidgets.QApplication.translate("MainWindow", "Tips: Filltration",
                                             None, -1))
        self.comboBox_filterlist.setItemText(
            0, QtWidgets.QApplication.translate("MainWindow", "*", None, -1))
        self.comboBox_filterlist.setItemText(
            1,
            QtWidgets.QApplication.translate("MainWindow", ".mb/ma", None, -1))
        self.comboBox_filterlist.setItemText(
            2, QtWidgets.QApplication.translate("MainWindow", ".hip", None,
                                                -1))
        self.listView.setStatusTip(
            QtWidgets.QApplication.translate(
                "MainWindow", "Tips:Select the file you will export", None,
                -1))
        self.comboBox_export_mode.setStatusTip(
            QtWidgets.QApplication.translate("MainWindow", "Tips: Export mode",
                                             None, -1))
        self.comboBox_export_mode.setItemText(
            0,
            QtWidgets.QApplication.translate("MainWindow", "SelectCheck", None,
                                             -1))
        self.comboBox_export_mode.setItemText(
            1,
            QtWidgets.QApplication.translate("MainWindow", "ByName", None, -1))
        self.comboBox_export_mode.setItemText(
            2, QtWidgets.QApplication.translate("MainWindow", "All", None, -1))
        self.label_namsepace.setStatusTip(
            QtWidgets.QApplication.translate("MainWindow",
                                             "Tips: namespace in maya", None,
                                             -1))
        self.label_namsepace.setText(
            QtWidgets.QApplication.translate("MainWindow", "namesapce", None,
                                             -1))
        self.label_export_name.setStatusTip(
            QtWidgets.QApplication.translate(
                "MainWindow", "Tips: The name to look for is in Maya", None,
                -1))
        self.label_export_name.setText(
            QtWidgets.QApplication.translate("MainWindow", "Export Name", None,
                                             -1))
        self.label_exportpath.setStatusTip(
            QtWidgets.QApplication.translate(
                "MainWindow", "Tips: default is current houdini project", None,
                -1))
        self.label_exportpath.setText(
            QtWidgets.QApplication.translate("MainWindow", "Export Path", None,
                                             -1))
        self.label.setStatusTip(
            QtWidgets.QApplication.translate("MainWindow",
                                             "Tips: Export Options", None, -1))
        self.label.setText(
            QtWidgets.QApplication.translate("MainWindow", "Option", None, -1))
        self.checkBox_scene.setText(
            QtWidgets.QApplication.translate("MainWindow", "Scene", None, -1))
        self.checkBox_camera.setText(
            QtWidgets.QApplication.translate("MainWindow", "Camera", None, -1))
        self.checkBox_prop.setText(
            QtWidgets.QApplication.translate("MainWindow", "Prop", None, -1))
        self.checkBox_chracter.setText(
            QtWidgets.QApplication.translate("MainWindow", "Chracter", None,
                                             -1))
        self.pushButton_action.setStatusTip(
            QtWidgets.QApplication.translate("MainWindow",
                                             "Tips: Export operation", None,
                                             -1))
        self.pushButton_action.setText(
            QtWidgets.QApplication.translate("MainWindow", "Action", None, -1))
        self.pushButton_ipAbcFromDisk.setText(
            QtWidgets.QApplication.translate("MainWindow", "ImportAlembic",
                                             None, -1))
        self.pushButton_refresh.setText(
            QtWidgets.QApplication.translate("MainWindow", "Refresh", None,
                                             -1))
        self.tabWidget_main.setTabText(
            self.tabWidget_main.indexOf(self.tab_import),
            QtWidgets.QApplication.translate("MainWindow", "Import", None, -1))
        self.tabWidget_main.setTabText(
            self.tabWidget_main.indexOf(self.tab_undefined01),
            QtWidgets.QApplication.translate("MainWindow", "Undefined_1", None,
                                             -1))
        self.tabWidget_main.setTabText(
            self.tabWidget_main.indexOf(self.tab_undefined02),
            QtWidgets.QApplication.translate("MainWindow", "Undefined_2", None,
                                             -1))
        self.menu_Setting.setTitle(
            QtWidgets.QApplication.translate("MainWindow", "&Setting", None,
                                             -1))
        self.menu_About.setTitle(
            QtWidgets.QApplication.translate("MainWindow", "&About", None, -1))
        self.menu_File.setTitle(
            QtWidgets.QApplication.translate("MainWindow", "&File", None, -1))
        self.toolBar.setWindowTitle(
            QtWidgets.QApplication.translate("MainWindow", "toolBar", None,
                                             -1))
        self.dockWidget_om.setWindowTitle(
            QtWidgets.QApplication.translate("MainWindow", "Instant Fall",
                                             None, -1))
        self.actionSetting.setText(
            QtWidgets.QApplication.translate("MainWindow", "Setting", None,
                                             -1))
        self.actionAboutThis.setText(
            QtWidgets.QApplication.translate("MainWindow", "About Automation",
                                             None, -1))
        self.actionAbout.setText(
            QtWidgets.QApplication.translate("MainWindow", "About", None, -1))
        self.actionDefault.setText(
            QtWidgets.QApplication.translate("MainWindow", "Default", None,
                                             -1))
        self.actionSave.setText(
            QtWidgets.QApplication.translate("MainWindow", "Save", None, -1))
コード例 #4
0
ファイル: toytreeviewer.py プロジェクト: zeyefkey/teaching
class TreeViewer(QMainWindow):
    """Phylogeny viewer with toytree"""
    def __init__(self):

        QMainWindow.__init__(self)
        self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
        self.setWindowTitle("Toytree-viewer")
        self.setGeometry(QtCore.QRect(200, 200, 800, 600))
        self.setMinimumHeight(150)
        self.main = QWidget(self)
        self.main.setFocus()
        self.setCentralWidget(self.main)
        self.add_widgets()
        self.create_menu(self)
        self.tree = None
        self.width = 400
        self.height = 500

        self.colors = {}
        self.default_style = {
            "layout": 'r',
            "edge_type": 'p',
            "edge_style": {
                "stroke": 'black',
                "stroke-width": 2,
            },
            "tip_labels": True,
            "tip_labels_align": True,
            "tip_labels_colors": 'black',
            "tip_labels_style": {
                "font-size": "14px"
            },
            "node_labels": False,
            "node_sizes": 10,
            "node_colors": toytree.colors[2],
            "node_markers": "c",
            "use_edge_lengths": True,
        }
        self.style = self.default_style.copy()
        #self.test_tree(10)
        return

    def test_tree(self, n=None):
        """Load a test tree"""

        if n == None:
            n, ok = QInputDialog().getInt(self, "Test tree", "Nodes:", 10)
            if not ok:
                return
        self.set_tree(self.random_tree(n=n))
        self.height = 200 + self.tree.ntips * 10
        self.update()
        return

    def random_tree(self, n=12):
        """Make a random tree"""

        tre = toytree.rtree.coaltree(n)
        ## assign random edge lengths and supports to each node
        for node in tre.treenode.traverse():
            node.dist = np.random.exponential(1)
            node.support = int(np.random.uniform(50, 100))
        return tre

    def save_data(self):
        """Save layers"""

        data = tools.get_attributes(self)
        data['tree'] = self.tree
        return data

    def load_data(self, data):
        """Load saved layers"""

        try:
            self.set_tree(data['tree'])
            tools.set_attributes(self, data)
        except:
            pass
        self.update()
        return

    def create_menu(self, parent):
        """Menu bar"""

        self.menubar = self.menuBar()
        self.file_menu = QMenu('File', parent)
        self.file_menu.addAction('Import Tree', self.load_tree)
        self.file_menu.addAction('Load Test Tree', self.test_tree)
        self.file_menu.addAction('Show Newick', self.show_newick)
        self.file_menu.addAction('Export Image', self.export_image)
        self.menubar.addMenu(self.file_menu)
        self.tree_menu = QMenu('Tree', parent)
        self.tree_menu.addAction('Show Unrooted', self.unroot_tree)
        self.tree_menu.addAction('Reset Format', self.reset_style)
        self.menubar.addMenu(self.tree_menu)

        return

    def add_widgets(self):
        """Add widgets"""

        vbox = QVBoxLayout(self.main)
        self.splitter = QSplitter()
        vbox.addWidget(self.splitter)
        self.splitter.setOrientation(QtCore.Qt.Vertical)
        self.splitter.setSizes([300, 100])
        self.splitter.setStretchFactor(1, 0)
        #layout.addWidget(self.main)
        from PySide2.QtWebEngineWidgets import QWebEngineView
        self.browser = QWebEngineView()
        self.browser.setMinimumSize(200, 200)
        self.splitter.addWidget(self.browser)

        toolswidget = QWidget()
        self.splitter.addWidget(toolswidget)
        l = QVBoxLayout(toolswidget)
        self.zoomslider = w = QSlider(QtCore.Qt.Horizontal)
        w.setSingleStep(5)
        w.setMinimum(5)
        w.setMaximum(50)
        w.setValue(10)
        l.addWidget(w)
        w.valueChanged.connect(self.zoom)
        btn = QPushButton('Set Format')
        l.addWidget(btn)
        btn.clicked.connect(self.tree_style_options)
        t = self.tipitems = QTreeWidget()
        t.setHeaderItem(QTreeWidgetItem(["name", "visible"]))
        t.setColumnWidth(0, 200)
        t.setSelectionMode(QAbstractItemView.ExtendedSelection)
        t.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        t.customContextMenuRequested.connect(self.show_tree_menu)
        l.addWidget(t)

        return

    def show_tree_menu(self, pos):
        """Show right cick tree menu"""

        item = self.tipitems.itemAt(pos)
        menu = QMenu(self.tipitems)
        colorAction = menu.addAction("Set Color")
        nodecolorAction = menu.addAction("Set Node Color")
        rootAction = menu.addAction("Root On")
        dropAction = menu.addAction("Drop Tips")
        action = menu.exec_(self.tipitems.mapToGlobal(pos))
        if action == rootAction:
            self.root_tree()
        elif action == colorAction:
            self.set_color()
        elif action == nodecolorAction:
            self.set_color('node')
        elif action == dropAction:
            self.drop_tips()

    def load_tree(self, filename):

        options = QFileDialog.Options()
        filter = "newick files (*.newick);;All files (*.*)"
        filename, _ = QFileDialog.getOpenFileName(self,
                                                  "Open tree file",
                                                  "",
                                                  filter=filter,
                                                  selectedFilter=filter,
                                                  options=options)
        if not filename:
            return
        self.set_tree(toytree.tree(filename))
        return

    def set_tree(self, tree):
        """Set a new tree"""

        self.tree = tree
        self.colors = {}
        self.style['tip_labels_colors'] = 'black'
        self.tipitems.clear()
        for t in self.tree.get_tip_labels():
            item = QTreeWidgetItem(self.tipitems)
            item.setCheckState(1, QtCore.Qt.Checked)
            item.setText(0, t)

        return

    def update(self):
        """Update the plot"""

        if self.tree == None:
            return
        #set colors
        colorlist = [
            self.colors[tip] if tip in self.colors else "black"
            for tip in self.tree.get_tip_labels()
        ]
        self.style['tip_labels_colors'] = colorlist
        canvas, axes, mark = self.tree.draw(width=self.width,
                                            height=self.height,
                                            scalebar=True,
                                            **self.style)
        toyplot.html.render(canvas, "temp.html")
        with open('temp.html', 'r') as f:
            html = f.read()
            self.browser.setHtml(html)
        self.canvas = canvas
        return

    def show_newick(self):

        txt = self.tree.newick
        ed = PlainTextEditor(self, txt)
        return

    def root_tree(self):

        item = self.tipitems.selectedItems()[0]
        row = self.tipitems.selectedIndexes()[0].row()
        name = item.text(0)
        self.tree = self.tree.root(name).ladderize()
        self.update()
        return

    def unroot_tree(self):

        self.tree = self.tree.unroot().ladderize()
        self.update()
        return

    def export_image(self):
        """Save tree as image"""

        options = QFileDialog.Options()
        filter = "png files (*.png);;pdf files (*.pdf);;All files (*.*)"
        filename, _ = QFileDialog.getSaveFileName(self,
                                                  "Save Project",
                                                  "",
                                                  filter=filter,
                                                  selectedFilter=filter,
                                                  options=options)
        if not filename:
            return

        ext = os.path.splitext(filename)
        print(ext)
        from toyplot import png
        png.render(self.canvas, filename, width=(4, "inches"))
        return

    def zoom(self):
        zoom = self.zoomslider.value() / 10
        self.browser.setZoomFactor(zoom)

    def tree_style_options(self):

        fonts = ['%spx' % i for i in range(6, 28)]
        markers = ['o', 's', 'd', '^', '>']
        nlabels = ['', 'idx', 'support']
        tip_labels_style = self.style['tip_labels_style']

        opts = {
            'layout': {
                'type': 'combobox',
                'default': self.style['layout'],
                'items': ['r', 'd', 'c']
            },
            'edge_type': {
                'type': 'combobox',
                'default': self.style['edge_type'],
                'items': ['p', 'c']
            },
            'tip_labels': {
                'type': 'checkbox',
                'default': self.style['tip_labels']
            },
            'tip_labels_align': {
                'type': 'checkbox',
                'default': self.style['tip_labels_align']
            },
            'node_labels': {
                'type': 'combobox',
                'default': self.style['node_labels'],
                'items': nlabels
            },
            'node_sizes': {
                'type': 'spinbox',
                'default': self.style['node_sizes'],
                'range': (2, 20),
                'interval': 1
            },
            'node_markers': {
                'type': 'combobox',
                'default': self.style['node_markers'],
                'items': markers
            },
            'font_size': {
                'type': 'combobox',
                'default': tip_labels_style['font-size'],
                'items': fonts
            },
            'width': {
                'type': 'entry',
                'default': self.width
            },
            'height': {
                'type': 'entry',
                'default': self.height,
            },
        }

        dlg = MultipleInputDialog(self, opts, title='Tree Style', width=300)
        dlg.exec_()
        if not dlg.accepted:
            return False
        kwds = dlg.values
        self.set_style(kwds)
        self.update()
        return

    def set_style(self, kwds):

        omit = ['width', 'height', 'font_size']
        for k in kwds:
            if k not in omit:
                self.style[k] = kwds[k]
        if kwds['node_labels'] == '':
            self.style['node_labels'] = False
        self.style['tip_labels_style']['font-size'] = kwds['font_size']
        self.width = kwds['width']
        self.height = kwds['height']
        self.tree = self.tree.ladderize()
        return

    def reset_style(self):

        self.style = self.default_style
        self.colors = {}
        print(self.style)
        self.update()

    def set_color(self, kind='text'):

        items = self.tipitems.selectedItems()
        names = [i.text(0) for i in items]
        qcolor = QColorDialog.getColor()
        for item in items:
            item.setBackground(0, qcolor)
        for name in names:
            if kind == 'text':
                self.colors[name] = qcolor.name()
            elif kind == 'node':
                self.node_colors[name] = qcolor.name()
        self.update()
        return

    def drop_tips(self):

        items = self.tipitems.selectedItems()
        names = [i.text(0) for i in items]
        #for name in names:
        self.tree = self.tree.drop_tips(names=names).ladderize()
        self.update()
        return
コード例 #5
0
class ArticleBox(QFrame):
    def __init__(self, parent=None):
        """
        Constructor of ArticleBox which display all content of article

        Args:
            parent (QWidget): GUI parent of widget. Defaults to None.
        """
        super(ArticleBox, self).__init__(parent=parent)
        self.setStyleSheet(
            "QFrame{border: 1px solid white; border-radius: 10px;} QLabel{border: 0px solid black;} QTextEdit{border: 0px solid black;} "
        )
        self.__layout = QVBoxLayout(self)
        __label_font = QFont()
        __label_font.setPointSize(20)
        __text_font = QFont()
        __text_font.setPointSize(12)
        __site_font = QFont()
        __site_font.setPointSize(10)
        self.__layout.setSpacing(10)
        self.__layout.setAlignment(Qt.AlignTop)
        self.__site = QLabel(parent=self)
        self.__site.setWordWrap(True)
        self.__site.setFont(__site_font)
        self.__label = QLabel(parent=self)
        self.__label.setWordWrap(True)
        self.__label.setFont(__label_font)
        self.__content_box = QWebEngineView()
        self.__content_box.setVisible(False)
        self.__content_box.setMinimumSize(300, 300)
        self.__content_box.setSizePolicy(QSizePolicy.MinimumExpanding,
                                         QSizePolicy.MinimumExpanding)
        self.__content_box.loadStarted.connect(self.load_started_callback)
        self.__content_box.loadFinished.connect(self.load_finished_callback)
        self.__link_btn = QPushButton()
        self.__link_btn.setFlat(True)
        self.__link_btn.clicked.connect(self.open_link)
        self.__link = ""
        self.__layout.addWidget(self.__label)
        self.__layout.addWidget(self.__site)
        self.__layout.addWidget(self.__content_box)
        self.__layout.addWidget(self.__link_btn, alignment=Qt.AlignCenter)
        self.setLayout(self.__layout)

    def load_started_callback(self):
        """
        Method which was used to measure loading time it is executed at beginning of loading content
        """
        pass

    def load_finished_callback(self):
        """
        Method which was used to measure loading time it is executed at the end of loading content
        """
        self.__content_box.setVisible(True)

    def set_data(self, site, link, title, article):
        """
        Sets content data to data from args

        Args:
            site (string): site name
            link (string): url of the whole article
            title (string): title of the article
            article (string): content of article
        """
        self.__content_box.setHtml(article, link)
        self.__link_btn.setText(f"Read more")
        self.__link = link
        self.__site.setText(site)
        self.__label.setText(title)

    def open_link(self):
        """
        Opens article link in external browser
        """
        webbrowser.open_new_tab(self.__link)