Пример #1
0
    def _init_workspace(self):
        """
        Initialize workspace

        :return:    None
        """

        self.central_widget_main = QSplitter(Qt.Horizontal)
        self.setCentralWidget(self.central_widget_main)
        self.central_widget = QMainWindow()
        self.central_widget2 = QMainWindow()
        self.central_widget_main.addWidget(self.central_widget)
        self.central_widget_main.addWidget(self.central_widget2)
        wk = Workspace(self, Instance())
        self.workspace = wk
        self.workspace.view_manager.tabify_center_views()
        self.central_widget.setTabPosition(Qt.RightDockWidgetArea,
                                           QTabWidget.North)
        self.central_widget2.setTabPosition(Qt.LeftDockWidgetArea,
                                            QTabWidget.North)

        def set_caption(**kwargs):
            if self.workspace.instance.project == None:
                self.caption = ''
            else:
                self.caption = os.path.basename(
                    self.workspace.instance.project.filename)

        self.workspace.instance.project_container.am_subscribe(set_caption)
Пример #2
0
def test_continuous_criteria_none(qtbot):
    # Setup
    MainWindow = QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    ui.matrix = Matrix()
    w = wizard.Wizard(ui)
    w.page(wizard.Page.Weights).collection = lambda: ['color', 'taste']
    qtbot.addWidget(w)
    w.show()
    advanced_radio = w.currentPage().layout().itemAt(1).widget()
    advanced_radio.setChecked(True)
    qtbot.mouseClick(w.next_button, Qt.LeftButton)
    qtbot.keyClicks(w.currentPage().line_edit, 'apple')
    qtbot.keyClick(w.currentPage().line_edit, Qt.Key_Enter)
    qtbot.keyClicks(w.currentPage().line_edit, 'orange')
    qtbot.keyClick(w.currentPage().line_edit, Qt.Key_Enter)
    qtbot.mouseClick(w.next_button, Qt.LeftButton)
    qtbot.keyClicks(w.currentPage().line_edit, 'color')
    qtbot.keyClick(w.currentPage().line_edit, Qt.Key_Enter)
    qtbot.keyClicks(w.currentPage().line_edit, 'taste')
    qtbot.keyClick(w.currentPage().line_edit, Qt.Key_Enter)
    qtbot.mouseClick(w.next_button, Qt.LeftButton)
    w.currentPage().spin_boxes[0].setValue(4)
    w.currentPage().spin_boxes[1].setValue(7)
    qtbot.mouseClick(w.next_button, Qt.LeftButton)
    assert type(w.currentPage()) == wizard.ContinuousCriteriaPage

    # Test pages
    assert w.next_button.isEnabled() is True
    # Accept default, which is no continuous criteria
    qtbot.mouseClick(w.next_button, Qt.LeftButton)
    assert type(w.currentPage()) == wizard.RatingPage
Пример #3
0
 def __init__(self):
     """ Constructor of widget """
     main_window = QMainWindow()
     self.main_window_ui = Ui_MainWindow()
     self.main_window_ui.setupUi(main_window)
     QMainWindow.__init__(self)
     Ui_MainWindow.setupUi(self.main_window_ui, self)
     self.signals(self.main_window_ui)
     self.highlighting_thread = None
     self.aspect_finding_thread = None
     self.parse_document_thread = None
     self.document_loader_thread = None
     self.parsers = {}
     self.document = None
     self.preview_document = None
     self.presenter = None
     self.worker = None
     self.html_presenter = None
     self.main_window_ui.save_document.setDisabled(True)
     self.preview_window = None
     self.__hide_progress_bar_panel()
     self.__cur_file_name = None
     self.__windows_title = 'prose-rhythm-detector'
     self.setWindowTitle(self.__windows_title)
     self.main_window_ui.show_selected_aspects_btn.setEnabled(False)
Пример #4
0
    def __init__(self):
        super().__init__()
        self.window = QMainWindow()
        self.setupUi(self.window)
        common_qt_lib.set_default_window_icon(self.window)

        for status in enum_lib.iterate_enum(GameConnectionStatus):
            self.current_status_combo.addItem(status.pretty_text, status)

        self.permanent_pickups = []
        self.pickups = []

        self.collect_location_combo.setVisible(False)
        self.setup_collect_location_combo_button = QtWidgets.QPushButton(
            self.window)
        self.setup_collect_location_combo_button.setText(
            "Load list of locations")
        self.setup_collect_location_combo_button.clicked.connect(
            self._setup_locations_combo)
        self.gridLayout.addWidget(self.setup_collect_location_combo_button, 1,
                                  0, 1, 1)

        self.collect_location_button.clicked.connect(self._emit_collection)
        self.collect_location_button.setEnabled(False)

        self._expected_patches = dol_patcher.ALL_VERSIONS_PATCHES[1]
        self._game_memory = bytearray(24 * (2**20))
        self._write_memory(self._expected_patches.build_string_address,
                           self._expected_patches.build_string)

        # CPlayerState
        self._write_memory(
            self._expected_patches.string_display.cstate_manager_global +
            0x150c, 0xA00000.to_bytes(4, "big"))
Пример #5
0
    def _init_widgets(self):

        window = QMainWindow()
        window.setWindowFlags(Qt.Widget)

        # pseudo code text box
        self._textedit = QCCodeEdit(self)
        self._textedit.setTextInteractionFlags(Qt.TextSelectableByKeyboard
                                               | Qt.TextSelectableByMouse)
        self._textedit.setLineWrapMode(QCCodeEdit.NoWrap)
        textedit_dock = QDockWidget('Code', self._textedit)
        window.setCentralWidget(textedit_dock)
        textedit_dock.setWidget(self._textedit)

        # decompilation
        self._options = QDecompilationOptions(self,
                                              self.workspace.instance,
                                              options=None)
        options_dock = QDockWidget('Decompilation Options', self._options)
        window.addDockWidget(Qt.RightDockWidgetArea, options_dock)
        options_dock.setWidget(self._options)

        layout = QHBoxLayout()
        layout.addWidget(window)
        layout.setContentsMargins(0, 0, 0, 0)
        self.setLayout(layout)

        self.workspace.plugins.instrument_code_view(self)
Пример #6
0
    def _init_widgets(self):

        main = QMainWindow()
        main.setWindowFlags(Qt.Widget)

        # main.setCorner(Qt.TopLeftCorner, Qt.TopDockWidgetArea)
        # main.setCorner(Qt.TopRightCorner, Qt.RightDockWidgetArea)

        pathtree = QPathTree(self.current_simgr, self.current_state, self, self.workspace, parent=main)
        pathtree_dock = QDockWidget('PathTree', pathtree)
        main.setCentralWidget(pathtree_dock)
        # main.addDockWidget(Qt.BottomDockWidgetArea, pathtree_dock)
        pathtree_dock.setWidget(pathtree)

        simgrs = QSimulationManagers(self.workspace.instance, self.current_simgr, self.current_state, parent=main)
        simgrs_dock = QDockWidget('SimulationManagers', simgrs)
        main.addDockWidget(Qt.RightDockWidgetArea, simgrs_dock)
        simgrs_dock.setWidget(simgrs)

        state_viewer = StateInspector(self.workspace, self.current_state, parent=self)
        state_viewer_dock = QDockWidget('Selected State', state_viewer)
        main.addDockWidget(Qt.RightDockWidgetArea, state_viewer_dock)
        state_viewer_dock.setWidget(state_viewer)

        self._pathtree = pathtree
        self._simgrs = simgrs
        self._state_viewer = state_viewer

        main_layout = QHBoxLayout()
        main_layout.addWidget(main)
        main_layout.setContentsMargins(0, 0, 0, 0)

        self.setLayout(main_layout)
    def __init__(self):
        super().__init__()
        self.logger.setLevel(logging.DEBUG)
        self.window = QMainWindow()
        self.setupUi(self.window)
        common_qt_lib.set_default_window_icon(self.window)

        for status in enum_lib.iterate_enum(GameConnectionStatus):
            self.current_status_combo.addItem(status.pretty_text, status)

        self.permanent_pickups = []
        self.pickups = []

        self.collect_location_combo.setVisible(False)
        self.setup_collect_location_combo_button = QtWidgets.QPushButton(
            self.window)
        self.setup_collect_location_combo_button.setText(
            "Load list of locations")
        self.setup_collect_location_combo_button.clicked.connect(
            self._setup_locations_combo)
        self.gridLayout.addWidget(self.setup_collect_location_combo_button, 1,
                                  0, 1, 1)

        self.collect_location_button.clicked.connect(self._emit_collection)
        self.collect_location_button.setEnabled(False)

        self._expected_patches = dol_patcher.ALL_VERSIONS_PATCHES[0]
        # FIXME: use PAL again
        self.patches = self._expected_patches

        self._game_memory = bytearray(24 * (2**20))
        self._game_memory_initialized = False
        self.patches = None
Пример #8
0
    def __init__(self, workspace, *args, **kwargs):
        super().__init__("interaction console", workspace, *args, **kwargs)

        self.base_caption = "Interaction Console"
        self.workspace = workspace
        self.target = None
        self.conversations = {}
        self.terminal = TerminalWidget(command=None)
        self.analyzer = None
        self.interaction_context = None

        main_layout = QVBoxLayout()
        controls_layout = QHBoxLayout()

        connect_button = QPushButton()
        connect_button.setText("Connect")
        connect_button.clicked.connect(self.connect)
        controls_layout.addWidget(connect_button)

        terminal_window = QMainWindow()
        terminal_window.setWindowFlags(Qt.Widget)
        terminal_window.setCentralWidget(self.terminal)

        main_layout.addLayout(controls_layout)
        main_layout.addWidget(terminal_window)

        self.setLayout(main_layout)
Пример #9
0
 def run(self):  # 2. Implement run()
     window = QMainWindow()
     version = self.build_settings["version"]
     window.setWindowTitle("HelloWorld v" + version)
     window.resize(250, 150)
     window.show()
     return self.app.exec_()  # 3. End run() with this line
Пример #10
0
    def __init__(self, sys_argv):
        super().__init__(sys_argv)

        # Show main window
        self.view = QMainWindow()

        self.centralWidget = QWidget(self.view)

        self.gridLayout = QGridLayout(self.centralWidget)
        self.gridLayout.setContentsMargins(0, 0, 0, 0)
        self.gridLayout.setSpacing(0)

        self.video_item = QVideoWidget()

        self.gridLayout.addWidget(self.video_item)

        self.view.setCentralWidget(self.centralWidget)

        self.mediaPlayer = QMediaPlayer(None, QMediaPlayer.VideoSurface)

        self.grabber = VideoFrameGrabber(self.video_item, self)
        self.mediaPlayer.setVideoOutput(self.grabber)

        self.grabber.frameAvailable.connect(self.process_frame)

        self.mediaPlayer.durationChanged.connect(self.update_duration)
        self.mediaPlayer.positionChanged.connect(self.update_slider_position)

        local = QUrl.fromLocalFile('D:\\SampleData\\albamonSample.mp4')
        media = QMediaContent(local)
        self.mediaPlayer.setMedia(media)
        self.mediaPlayer.play()

        self.view.show()
Пример #11
0
    def _init(self):
        print("Building...")

        self.win = QMainWindow()
        self._default_window_title = self.title

        widget = QWidget()
        self.win.setCentralWidget(widget)

        main_layout = QHBoxLayout()
        widget.setLayout(main_layout)

        main_layout.addWidget(self.slice_widget)
        main_layout.addWidget(self.volume_widget)
        main_layout.addWidget(self.side_widget)

        self.title_reset_timer = Timer(
            interval=2,
            connect=lambda e: self._show_default_window_title(),
            iterations=1,
            start=False)
        self._show_default_window_title()

        self.statusbar = self.win.statusBar()

        self.image_coord_label = QLabel(text="Image Coords")
        self.statusbar.addPermanentWidget(self.image_coord_label)

        self.win.show()
Пример #12
0
    def __init__(self):
        # init config
        self.config = RawConfigParser()
        self.config.read_file(codecs.open('config.ini', encoding='utf8'))

        logger.info('Configuration loaded')
        # init database
        self.session = Session()

        # init Qt windows
        self.app = QApplication(sys.argv)

        self.window = QMainWindow()

        self.ui = Ui_MainWindow()
        self.ui.setupUi(self.window)

        self.update_mpc_plugin_list()

        self.ui.mpc_title_frame_title.setText(
            self.config['options']['project_name'])
        self.window.setWindowTitle(self.config['options']['project_name'])
        self.ui.mpc_btn_import.clicked.connect(self.import_plugin)
        self.ui.mpc_plugins_list.itemClicked.connect(self.load_plugin_by_item)

        self.ui.ps_btn_back.clicked.connect(self.go_to_main_screen)
        self.ui.ps_delete_plugin_btn.clicked.connect(self.delete_plugin)

        self.go_to_main_screen()
        self.window.show()

        # todo: Delete this part before first release
        self.garbage_test_code()
        sys.exit(self.app.exec_())
Пример #13
0
    def __init__(self):
        super().__init__()
        self.window = QMainWindow()
        self.setupUi(self.window)
        common_qt_lib.set_default_window_icon(self.window)

        for status in iterate_enum(ConnectionStatus):
            self.current_status_combo.addItem(status.value, status)

        self.permanent_pickups = []
        self.pickups = []
        self._inventory = {}

        self.collect_location_combo.setVisible(False)
        self.setup_collect_location_combo_button = QtWidgets.QPushButton(
            self.window)
        self.setup_collect_location_combo_button.setText(
            "Load list of locations")
        self.setup_collect_location_combo_button.clicked.connect(
            self._setup_locations_combo)
        self.gridLayout.addWidget(self.setup_collect_location_combo_button, 1,
                                  0, 1, 1)

        self.collect_location_button.clicked.connect(self._emit_collection)
        self.collect_location_button.setEnabled(False)
Пример #14
0
 def test_addWidget(self, sample_list_str):
     from PySideLib.QCdtWidgets import QTagWidget
     app = QApplication()
     mainwWindow = QMainWindow()
     tagWidget = QTagWidget(mainwWindow, sample_list_str)
     mainwWindow.setCentralWidget(tagWidget)
     mainwWindow.show()
Пример #15
0
def test_main_add_criteria(qtbot):
    MainWindow = QMainWindow()
    ui = main.Ui_MainWindow()
    qtbot.addWidget(MainWindow)
    ui.setupUi(MainWindow)
    MainWindow.show()

    qtbot.mouseClick(ui.combo_box, Qt.LeftButton)
    qtbot.keyClick(ui.combo_box, Qt.Key_Down)
    qtbot.keyClick(ui.combo_box, Qt.Key_Enter)
    assert ui.combo_box.currentText() == 'New criteria'

    qtbot.keyClicks(ui.lineEdit, 'taste')
    assert ui.lineEdit.text() == 'taste'

    qtbot.mouseClick(ui.pushButton, Qt.LeftButton)
    assert ui.lineEdit.text() == ''
    assert ui.matrix_widget.columnCount() == 2
    assert ui.matrix_widget.horizontalHeaderItem(0).text() == 'taste'
    assert 'taste' in ui.matrix.df.columns

    qtbot.keyClicks(ui.lineEdit, 'color')
    qtbot.keyClick(ui.lineEdit, Qt.Key_Enter)
    assert ui.matrix_widget.columnCount() == 3
    assert ui.matrix_widget.horizontalHeaderItem(1).text() == 'color'
    assert 'color' in ui.matrix.df.columns
Пример #16
0
    def initWins(self):
        # viewer main form
        newWin = QMainWindow(self.mainWin)
        newWin.setAttribute(Qt.WA_DeleteOnClose)
        newWin.setContextMenuPolicy(Qt.CustomContextMenu)
        self.newWin = newWin
        # image list
        listWdg = dragQListWidget()
        listWdg.setWrapping(False)
        listWdg.setSelectionMode(QAbstractItemView.ExtendedSelection)
        listWdg.setContextMenuPolicy(Qt.CustomContextMenu)
        listWdg.label = None
        listWdg.setViewMode(QListWidget.IconMode)
        # set icon and listWdg sizes
        listWdg.setIconSize(QSize(self.iconSize, self.iconSize))
        listWdg.setMaximumSize(160000, self.iconSize + 20)
        listWdg.setDragDropMode(QAbstractItemView.DragDrop)
        listWdg.customContextMenuRequested.connect(self.contextMenu)
        # dock the form
        dock = stateAwareQDockWidget(window)
        dock.setWidget(newWin)
        dock.setWindowFlags(newWin.windowFlags())
        dock.setWindowTitle(newWin.windowTitle())
        dock.setAttribute(Qt.WA_DeleteOnClose)
        self.dock = dock
        window.addDockWidget(Qt.BottomDockWidgetArea, dock)
        newWin.setCentralWidget(listWdg)
        self.listWdg = listWdg
        self.newWin.setWhatsThis("""<b>Library Viewer</b><br>
To <b>open context menu</b> right click on an icon or a selection.<br>
To <b>open an image</b> drag it onto the main window.<br>
<b>Rating</b> is shown as 0 to 5 stars below each icon.<br>
""")  # end setWhatsThis
Пример #17
0
def test_main_weights(qtbot):
    MainWindow = QMainWindow()
    ui = main.Ui_MainWindow()
    qtbot.addWidget(MainWindow)
    ui.setupUi(MainWindow)
    MainWindow.show()

    # Setup
    qtbot.keyClicks(ui.lineEdit, 'apple')
    qtbot.mouseClick(ui.pushButton, Qt.LeftButton)
    qtbot.keyClicks(ui.lineEdit, 'orange')
    qtbot.keyClick(ui.lineEdit, Qt.Key_Enter)

    qtbot.mouseClick(ui.combo_box, Qt.LeftButton)
    qtbot.keyClick(ui.combo_box, Qt.Key_Down)
    qtbot.keyClick(ui.combo_box, Qt.Key_Enter)

    qtbot.keyClicks(ui.lineEdit, 'taste')
    qtbot.mouseClick(ui.pushButton, Qt.LeftButton)

    qtbot.keyClicks(ui.lineEdit, 'color')
    qtbot.keyClick(ui.lineEdit, Qt.Key_Enter)

    # Neither clicks or tab key works
    ui.matrix_widget.setItem(0, 0, QTableWidgetItem('4'))
    assert ui.matrix.df.loc['Weight', 'taste'] == 4
    assert ui.matrix_widget.item(0, 2).text() == '40.0'
    assert ui.matrix_widget.item(1, 2).text() == '0.0%'
    assert ui.matrix_widget.item(2, 2).text() == '0.0%'
Пример #18
0
def MainGUI():
    # app = QApplication(sys.argv)
    app = QApplication([])
    win = QMainWindow()
    win.setGeometry(200, 200, 300, 450)
    win.setFixedSize(300, 450)
    win.setWindowTitle("FotoPDF")
    app.setWindowIcon(QIcon(resource_path('FotoPDF.png')))

    detail_widget = QTextEdit(win)
    detail_widget.setAlignment(Qt.AlignCenter)
    highlighter = Highlighter(detail_widget.document())
    detail_widget.setReadOnly(True)
    detail_widget.setText("Tip: it works with both a folder or any file in that folder.")
    detail_widget.setGeometry(0, 300, 300, 150)
    detail_widget.setStyleSheet("background-color: rgb{}; color: rgb(255,255,255);".format(str(MACOSDARK)))

    # Create widget to accept drag&drop
    header_widget = FileEdit(win, detail_widget)
    header_widget.setAlignment(Qt.AlignCenter)
    header_widget.setReadOnly(True)
    header_widget.setText("Drag folder here")
    header_widget.setGeometry(0, 0, 300, 300)
    font = header_widget.font()
    font.setPointSize(32)
    header_widget.setFont(font)
    header_widget.setStyleSheet(
        "background-color: rgb{}; color: rgb(255,255,255);border : 5px solid rgb{};".format(str(MACOSYELLOW),
                                                                                            str(MACOSDARK)))
    win.show()
    sys.exit(app.exec_())
Пример #19
0
 def txtfileHandle(self):  # 对txt文件进行操作,将其内容添加到文本框中
     # 以下代码可以打开文本对话框并获取文件的绝对路径
     selectwindow = QMainWindow()  # 建立一个新的窗口
     Filewindow = QFileDialog(selectwindow)  # 设置成打开文件的窗口
     FileDialog = Filewindow.getOpenFileName(selectwindow, "选择文件")  # 设置窗口名称
     selectwindow.show()  # 显示该文本框
     # 以上代码可以打开文本对话框并获取文件的绝对路径
     filePath = FileDialog[0]  # 获取文本文件的绝对位置
     if filePath == "":  # 防止未选择文件时出现闪退现象
         return
     textfile = open(filePath, "r")
     xdisplay = ''
     ydisplay = ''
     lines = textfile.readline()
     while lines:  # 读取文本文件的内容
         if lines[len(lines) - 1] == '\n':
             lines = lines[:-1]  # 去掉换行符
         line = lines.split(" ")
         xdisplay = xdisplay + line[0] + ' '
         ydisplay = ydisplay + line[1] + ' '
         lines = textfile.readline()
     xdisplay = xdisplay[:-1]
     ydisplay = ydisplay[:-1]
     self.xinput.setText(xdisplay)
     self.yinput.setText(ydisplay)
Пример #20
0
    def _init_workspace(self):
        """
        Initialize workspace

        :return:    None
        """
        self.central_widget = QMainWindow()
        self.setCentralWidget(self.central_widget)
        wk = Workspace(self, Instance())
        self.workspace = wk
        self.workspace.view_manager.tabify_center_views()
        self.central_widget.setTabPosition(Qt.RightDockWidgetArea,
                                           QTabWidget.North)
        self.central_widget.setDockNestingEnabled(True)

        def set_caption(**kwargs):  # pylint: disable=unused-argument
            if self.workspace.instance.project.am_none:
                self.caption = ''
            elif self.workspace.instance.project.filename is None:
                self.caption = "Loaded from stream"
            else:
                self.caption = os.path.basename(
                    self.workspace.instance.project.filename)

        self.workspace.instance.project.am_subscribe(set_caption)

        self.tab = self.central_widget.findChild(QTabBar)
        self.tab.tabBarClicked.connect(self.on_center_tab_clicked)
Пример #21
0
    def __init__(self, title: str = ""):
        super().__init__(title, QMainWindow())

        self._instance.setGeometry(0, 0, 0, 0)
        central_widget = QWidget()
        central_widget.setLayout(self.get_current_layout())
        self._instance.setCentralWidget(central_widget)
Пример #22
0
    def gui_init(self):

        self.layout = QHBoxLayout()
        self.MainWindow = QMainWindow()
        self.layout.addWidget(self.MainWindow)
        self.setLayout(self.layout)

        self.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea)
Пример #23
0
    def _init_workspace(self):
        """
        Initialize workspace

        :return:    None
        """

        self.central_widget_main = QSplitter(Qt.Horizontal)
        self.setCentralWidget(self.central_widget_main)
        self.central_widget = QMainWindow()
        self.central_widget2 = QMainWindow()
        self.central_widget_main.addWidget(self.central_widget)
        self.central_widget_main.addWidget(self.central_widget2)
        wk = Workspace(self, Instance())
        self.workspace = wk
        self.workspace.view_manager.tabify_center_views()
        self.central_widget.setTabPosition(Qt.RightDockWidgetArea, QTabWidget.North)
Пример #24
0
 def view_pdf(self, pdf_js, pdf_file_name):
     new_window = QMainWindow(self)
     pdf_viewer = Ui_PDFViewer()
     pdf_viewer.setupUi(new_window)
     pdf_url = QUrl.fromLocalFile(pdf_js)
     pdf_url.setQuery("file=" + pdf_file_name)
     pdf_viewer.webView.load(pdf_url)
     new_window.show()
def main():
    print('main func')
    global batch_sender_app
    batch_sender_app = QApplication(sys.argv)
    main_window = QMainWindow()
    ui = Extended_GUI(main_window)
    main_window.show()
    sys.exit(batch_sender_app.exec_())
Пример #26
0
def main():
    app = QApplication(sys.argv)
    mainWindow = QMainWindow()
    wrapper = AudioSplitter()
    mainWindow.setCentralWidget(wrapper)
    mainWindow.show()

    sys.exit(app.exec_())
Пример #27
0
    def _init_workspace(self):
        self.central_widget = QMainWindow()
        self.setCentralWidget(self.central_widget)

        wk = Workspace(self, Instance())
        self.workspace = wk

        self.central_widget.setTabPosition(Qt.RightDockWidgetArea,
                                           QTabWidget.North)
Пример #28
0
def run_interface():
    app = QApplication(sys.argv)
    window = QMainWindow()
    widget = DicomMoveWindow()
    window.setCentralWidget(widget)
    window.setWindowTitle("Dicom move")
    window.resize(600, widget.sizeHint().height())
    window.show()
    sys.exit(app.exec_())
Пример #29
0
def main():
    app = QApplication()
    window = QMainWindow()
    window.setMinimumSize(QSize(640, 480))

    imageFlow = FlowWidget(window)

    proxy = QSortFilterProxyModel()
    proxy.setFilterRole(FlowModel.FileNameRole)
    proxy.setSortRole(FlowModel.FileNameRole)
    imageFlow.setProxyModel(proxy)

    searchFilter = QLineEdit()
    searchFilter.textChanged.connect(
        lambda text: proxy.setFilterWildcard(text))

    layout = QVBoxLayout()
    layout.addWidget(searchFilter)
    layout.addWidget(imageFlow)

    widget = QWidget()
    widget.setLayout(layout)

    window.setCentralWidget(widget)
    window.show()

    # 画像を同期読み込み
    # for i, filePath in enumerate(glob.glob('C:/tmp/test_images2/*.png')):
    #     image = QImage(filePath).scaled(100, 100)
    #     item = FlowItem(filePath)
    #     item.setImage(image)
    #     imageFlow.appendItem(item)

    # 画像を非同期読み込み
    loader = BatchImageLoader()
    loader.addCallback(ImageLoadingCallback.LOADED,
                       lambda img: img.scaled(100, 100))
    tasks = {}

    def _on_load_image(taskId):
        filePath = tasks[taskId]
        image = loader.image(taskId)
        item = FlowItem(filePath, image)
        imageFlow.appendItem(item)

    def _on_load_complete():
        proxy.sort(0)

    loader.loaded.connect(_on_load_image)
    loader.completed.connect(_on_load_complete)
    for filePath in glob.iglob('C:/tmp/test_images/*.png'):
        taskId = loader.addFile(filePath)
        tasks[taskId] = filePath

    loader.loadAsync()

    sys.exit(app.exec_())
Пример #30
0
def main():
    app = QApplication([])

    windows = QMainWindow()
    windows.resize(500, 400)
    windows.move(300, 310)

    windows.show()
    app.exec_()