def get_root_widget(window_name): for top_level_widget in QApplication.topLevelWidgets(): automation_id = method_or_default(top_level_widget, "automation_id", '') if window_name == automation_id: return top_level_widget return QApplication.topLevelWidgets()[0]
def minMaxHandler(self): if QApplication.topLevelWidgets()[0].isMaximized(): print("Window going back to normal mode") [o.showNormal() and o.setFlags(0) for o in QApplication.topLevelWidgets()] self.minMaxButton.setIcon(self.maxIcon) self.minMaxButton.setIconSize(QtCore.QSize(50, 50)) self.minMaxButton.show() # if self._parent is not None: # self._parent.setWindowFlags(self._parent.windowFlags & ~Qt.FramelessWindowHint) else: print("Maximising window") [o.showMaximized() and o.setFlags(Qt.FramelessWindowHint) for o in QApplication.topLevelWidgets()] self.minMaxButton.setIcon(self.restoreIcon) self.minMaxButton.setIconSize(QtCore.QSize(50, 50)) self.minMaxButton.show()
def allFonts(self): fonts = [] for window in QApplication.topLevelWidgets(): if isinstance(window, FontWindow): font = window.font_() fonts.append(font) return fonts
def test_label_list_view(self): menus_before = [ w for w in QApplication.topLevelWidgets() if isinstance(w, QMenu) ] global context_menu context_menu = None # type: QMenu def on_timeout(): global context_menu context_menu = next(w for w in QApplication.topLevelWidgets() if w.parent() is None and isinstance(w, QMenu) and w not in menus_before) context_menu.close() self.cfc.add_protocol_label(10, 20, 0, 0, False) self.cfc.add_message_type() self.assertEqual(self.cfc.message_type_table_model.rowCount(), 2) self.cfc.ui.tblViewProtocol.selectRow(0) self.assertEqual(self.cfc.ui.tblLabelValues.model().rowCount(), 1) self.cfc.ui.tblLabelValues.selectAll() timer = QTimer(self.cfc) timer.setSingleShot(True) timer.timeout.connect(on_timeout) timer.start(1) self.cfc.ui.tblLabelValues.contextMenuEvent( QContextMenuEvent(QContextMenuEvent.Mouse, QPoint(0, 0))) names = [action.text() for action in context_menu.actions()] self.assertIn("Edit...", names)
def setCurrentFile(self, fileName): self.curFile = fileName if self.curFile: self.setWindowTitle("%s - Recent Files" % self.strippedName(self.curFile)) else: self.setWindowTitle("Recent Files") settings = QSettings('Axel Schneider', 'PTEdit') files = settings.value('recentFileList') if files is not None: try: files.remove(fileName) except ValueError: pass files.insert(0, fileName) del files[self.MaxRecentFiles:] settings.setValue('recentFileList', files) for widget in QApplication.topLevelWidgets(): if isinstance(widget, TextEditor): widget.updateRecentFileActions()
def test_simulator_graphics_view(self): self.__setup_project() self.add_all_signals_to_simulator() stc = self.form.simulator_tab_controller # type: SimulatorTabController self.assertGreater(len(stc.simulator_config.get_all_items()), 0) self.assertEqual(len(stc.simulator_scene.selectedItems()), 0) # select first message messages = stc.simulator_scene.get_all_message_items() pos = stc.ui.gvSimulator.mapFromScene(messages[0].scenePos()) QTest.mouseClick(stc.ui.gvSimulator.viewport(), Qt.LeftButton, Qt.NoModifier, pos) self.assertEqual(len(stc.simulator_scene.selectedItems()), 1) self.assertIsInstance(stc.simulator_scene.selectedItems()[0], MessageItem) rules = [item for item in stc.simulator_scene.items() if isinstance(item, RuleItem)] self.assertEqual(len(rules), 0) self.menus_to_ignore = [w for w in QApplication.topLevelWidgets() if isinstance(w, QMenu)] timer = QTimer(self.form) timer.setInterval(1) timer.setSingleShot(True) timer.timeout.connect(self.__on_context_menu_simulator_graphics_view_timer_timeout) timer.start() stc.ui.gvSimulator.contextMenuEvent(QContextMenuEvent(QContextMenuEvent.Mouse, pos)) rules = [item for item in stc.simulator_scene.items() if isinstance(item, RuleItem)] self.assertEqual(len(rules), 1)
def setCurrentFile(self, fileName): self.curFile = QFileInfo(fileName).canonicalFilePath() self.isUntitled = False self.setWindowModified(False) if self.curFile: self.setWindowTitle("Recent Files %s" % self.strippedName(self.curFile)) else: self.setWindowTitle("Recent Files") settings = QSettings('Trolltech', 'Recent Files Example') files = settings.value('recentFileList', []) try: files.remove(fileName) except ValueError: pass files.insert(0, fileName) del files[MainWindow.MaxRecentFiles:] settings.setValue('recentFileList', files) for widget in QApplication.topLevelWidgets(): if isinstance(widget, MainWindow): widget.updateRecentFileActions()
def test_open_options_dialog(self): self.form.show_options_dialog_specific_tab(1) w = next((w for w in QApplication.topLevelWidgets() if isinstance(w, OptionsDialog)), None) # type: OptionsDialog self.assertIsNotNone(w) self.assertEqual(w.ui.tabWidget.currentIndex(), 1) w.close()
def click_on_top_message_box(): topWidgets = QApplication.topLevelWidgets() for w in topWidgets: if isinstance(w, QMessageBox): QTest.keyClick(w, Qt.Key_Enter) elif isinstance(w, QDialog) and w.windowTitle() == "Registration": QTest.keyClick(w, Qt.Key_Enter)
def __on_context_menu_simulator_graphics_view_timer_timeout(self): menu = next(w for w in QApplication.topLevelWidgets() if isinstance(w, QMenu) and w.parent() is None and w not in self.menus_to_ignore) names = [action.text() for action in menu.actions()] self.assertIn("Source", names) add_rule_action = next(action for action in menu.actions() if action.text() == "Add rule") add_rule_action.trigger() menu.close()
def select_file_dialog(filename): topWidgets = QApplication.topLevelWidgets() for w in topWidgets: if isinstance(w, QFileDialog) and w.isVisible(): w.hide() w.selectFile(filename) w.show() w.accept()
def assert_screen_shows_and_get_new_screen(view): widgets = QApplication.topLevelWidgets() for widget in widgets: assert (not widget.isActiveWindow()) or isinstance(widget, view) for widget in widgets: if isinstance(widget, view): return widget
def _find_main_window(): """ Return the main window instance using Qt. :return: the main window """ for widget in QApplication.topLevelWidgets(): if isinstance(widget, QMainWindow): return widget
def _show_hide_main_window(self) -> None: for window in QApplication.topLevelWidgets(): if not window.isHidden() \ and window.objectName() == "settingsWindow": return if self.main_window.isVisible(): self.main_window.hide() else: self.main_window.show()
async def exec_test(): await asyncio.sleep(1) QTest.mouseClick(certification_dialog.ui.radio_pubkey, Qt.LeftButton) QTest.keyClicks(certification_dialog.ui.edit_pubkey, "FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn") QTest.mouseClick(certification_dialog.ui.button_box.button(QDialogButtonBox.Ok), Qt.LeftButton) await asyncio.sleep(3) topWidgets = QApplication.topLevelWidgets() for w in topWidgets: if type(w) is QMessageBox: QTest.keyClick(w, Qt.Key_Enter)
def getViewerList(): """ Gets the list of current viewer windows from Qt """ viewers = [] for viewer in QApplication.topLevelWidgets(): if (isinstance(viewer, viewerwindow.ViewerWindow) and viewer.isVisible()): viewers.append(viewer) return viewers
def moveEvent(self, event): for w in QApplication.topLevelWidgets(): if isinstance(w, QMainWindow): wg = w.geometry() self.winHeight = wg.height() g = self.geometry() self.topHeight = g.y() self.bottomHeight = self.winHeight - g.y() - g.height() break super().moveEvent(event)
def newWindow(parent): """ Open a plot in a new window. """ print QApplication.topLevelWidgets() plotWindow = QDialog(getWindow()) plotWidget = QVTKRenderWindowInteractor(plotWindow) plotWidget.setToolTip(tooltips['vtk']) addContextMenu(plotWidget) plotWidget.installEventFilter(getWindow()) vl = QVBoxLayout() vl.setContentsMargins(0, 0, 0, 0) vl.addWidget(plotWidget) plotWindow.setLayout(vl) sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) plotWidget.setSizePolicy(sizePolicy) plotWindow.show() plotWindow.raise_() v = Viper3D.copy(parent.viper, widget=plotWidget) plotWidget.viper = v v.LastPlot()
async def exec_test(): self.account.wallets[0].caches[self.community.currency].available_sources = await self.wallet.sources(self.community) QTest.mouseClick(transfer_dialog.ui.radio_pubkey, Qt.LeftButton) QTest.keyClicks(transfer_dialog.ui.edit_pubkey, "FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn") transfer_dialog.ui.spinbox_amount.setValue(10) QTest.mouseClick(transfer_dialog.ui.button_box.button(QDialogButtonBox.Ok), Qt.LeftButton) await asyncio.sleep(1) topWidgets = QApplication.topLevelWidgets() for w in topWidgets: if type(w) is QMessageBox: QTest.keyClick(w, Qt.Key_Enter) await asyncio.sleep(1)
def _findMainWindow(): """ Return the main window instance using Qt. :return: the main window """ for widget in QApplication.topLevelWidgets(): if isinstance(widget, QMainWindow): return widget import PyQt5 PyQt5.QtWidgets.Menu QtWidget
def _visibleWindows(self): """Return the windows actually visible Anki windows. Anki has some hidden windows and menus that we should ignore. """ windows = [] for w in QApplication.topLevelWidgets(): if w.isWindow() and not w.isHidden(): if not w.children(): continue windows.append(w) return windows
def setCurrentFile(self, path): if path is None: return recentFiles = settings.recentFiles() if path in recentFiles: recentFiles.remove(path) recentFiles.insert(0, path) while len(recentFiles) > MAX_RECENT_FILES: del recentFiles[-1] settings.setRecentFiles(recentFiles) for window in QApplication.topLevelWidgets(): if isinstance(window, FontWindow): window.updateRecentFiles()
async def exec_test(): await asyncio.sleep(1) QTest.mouseClick(certification_dialog.ui.radio_pubkey, Qt.LeftButton) QTest.keyClicks(certification_dialog.ui.edit_pubkey, "FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn") QTest.mouseClick( certification_dialog.ui.button_box.button(QDialogButtonBox.Ok), Qt.LeftButton) await asyncio.sleep(3) topWidgets = QApplication.topLevelWidgets() for w in topWidgets: if type(w) is QMessageBox: QTest.keyClick(w, Qt.Key_Enter)
def saveSettings(self): s = QSettings() s.setValue("language", self._langs[self.lang.currentIndex()]) s.setValue("system_icons", self.systemIcons.isChecked()) s.setValue("tabs_closable", self.tabsClosable.isChecked()) s.setValue("splash_screen", self.splashScreen.isChecked()) s.setValue("allow_remote", self.allowRemote.isChecked()) if self.styleCombo.currentIndex() == 0: s.remove("guistyle") else: s.setValue("guistyle", self.styleCombo.currentText()) # update all top-level windows, so icon changes are picked up for w in QApplication.topLevelWidgets(): if w.isVisible(): w.update()
def _expireMP(self): self._MPH='' self._browsers.clear() self.mainView = None if self._timer: if self._timer.is_alive(): self._timer.cancel() from PyQt5.QtWidgets import QApplication, QWidget from Client.MainWindow import MainWindow # for w in QApplication.topLevelWindows(): # print(w.objectName()) for w in QApplication.topLevelWidgets(): # print(w.objectName()) if w.objectName() == 'MainWindow': w.show() break # mpManager = MPManager()
async def exec_test(): self.account.wallets[0].caches[ self.community. currency].available_sources = await self.wallet.sources( self.community) QTest.mouseClick(transfer_dialog.ui.radio_pubkey, Qt.LeftButton) QTest.keyClicks(transfer_dialog.ui.edit_pubkey, "FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn") transfer_dialog.ui.spinbox_amount.setValue(10) QTest.mouseClick( transfer_dialog.ui.button_box.button(QDialogButtonBox.Ok), Qt.LeftButton) await asyncio.sleep(1) topWidgets = QApplication.topLevelWidgets() for w in topWidgets: if type(w) is QMessageBox: QTest.keyClick(w, Qt.Key_Enter) await asyncio.sleep(1)
def _expireMP(self): self._MPH = '' self._browsers.clear() self.mainView = None if self._timer: if self._timer.is_alive(): self._timer.cancel() from PyQt5.QtWidgets import QApplication, QWidget from Client.MainWindow import MainWindow # for w in QApplication.topLevelWindows(): # print(w.objectName()) for w in QApplication.topLevelWidgets(): # print(w.objectName()) if w.objectName() == 'MainWindow': w.show() break # mpManager = MPManager()
def update_widget_list(self): self.widget_list.clear() self.differ_list.clear() self.item_dict.clear() count = 0 new_id_dict: Dict[int, Tuple[list, int]] = {} for obj in QApplication.topLevelWidgets(): count += self._update_list(obj, self.widget_list, new_id_dict) self.widget_list.update() self.label.setText(f'Number of widgets = {count}') self.widget_list.sortByColumn(2, Qt.DescendingOrder) for value in self.id_dict.values(): QListWidgetItem(' '.join(value[0]), self.differ_list) self.id_dict = new_id_dict
def handle_timeout(): menu = None for tl in QApplication.topLevelWidgets(): if isinstance(tl, QMenu) and len(tl.actions()) > 0 and tl.actions( )[0].text() == "Delete Instrument": menu = tl break assert menu is not None delete_action = None for action in menu.actions(): if action.text() == 'Delete Instrument': delete_action = action break assert delete_action is not None rect = menu.actionGeometry(delete_action) QTimer.singleShot(100, helper.finished.emit) qtbot.mouseClick(menu, Qt.LeftButton, pos=rect.center())
def set_current_file(self, fname): """ The procedure for storing and displaying a new current file The following get done: 1 - Display the file name without path in the apps title bar 2 - Insert the file name into the top slot of the recent files 3 - Save this list out to the setting variable Parameters ---------- fname : str The file name and path that will be used Returns ------- None """ self.cur_fname = fname if fname: stripped_name = QFileInfo(fname).fileName() title = "Metadata Wizard - {}".format(stripped_name) self.setWindowTitle(title) settings = QSettings('USGS', 'pymdwizard') files = settings.value('recentFileList', []) try: files.remove(fname) except ValueError: pass files.insert(0, fname) del files[PyMdWizardMainForm.max_recent_files:] settings.setValue('recentFileList', files) for widget in QApplication.topLevelWidgets(): if isinstance(widget, PyMdWizardMainForm): widget.update_recent_file_actions() else: self.setWindowTitle("Metadata Wizard")
def setCurrentFile(self, fileName): self.fileName = fileName self.fname = os.path.splitext(str(fileName))[0].split("/")[-1] if self.fileName: self.setWindowTitle(self.strippedName(self.fileName) + "[*]") else: self.setWindowTitle("no File") files = self.settings.value('recentFileList', []) try: files.remove(fileName) except ValueError: pass files.insert(0, fileName) del files[self.MaxRecentFiles:] self.settings.setValue('recentFileList', files) for widget in QApplication.topLevelWidgets(): if isinstance(widget, MyWindow_2): widget.updateRecentFileActions()
def set_current_file(self, fname): self.cur_fname = fname if fname: title = "Metadata Wizard - {}".format(self.stripped_name(fname)) self.setWindowTitle(title) else: self.setWindowTitle("Metadata Wizard") settings = QSettings('USGS', 'pymdwizard') files = settings.value('recentFileList', []) try: files.remove(fname) except ValueError: pass files.insert(0, fname) del files[PyMdWizardMainForm.max_recent_files:] settings.setValue('recentFileList', files) for widget in QApplication.topLevelWidgets(): if isinstance(widget, PyMdWizardMainForm): widget.update_recent_file_actions()
def setCurrentFile(self, fileName): self.curFile = fileName if self.curFile: self.setWindowTitle("%s - Recent Files" % self.strippedName(self.curFile)) else: self.setWindowTitle("Recent Files") settings = QSettings('Trolltech', 'Recent Files Example') files = settings.value('recentFileList', []) try: files.remove(fileName) except ValueError: pass files.insert(0, fileName) del files[self.MaxRecentFiles:] settings.setValue('recentFileList', files) for widget in QApplication.topLevelWidgets(): if isinstance(widget, Window): widget.updateRecentFileActions()
def closeEvent(self, event): widgetList = QApplication.topLevelWidgets() self.DATA._remove_plot_widgets( closeAll = True) self.DATA.set_info_thread_continue(False) event.accept()
def on_timeout(): global context_menu context_menu = next(w for w in QApplication.topLevelWidgets() if w.parent() is None and isinstance(w, QMenu) and w not in menus_before) context_menu.close()
def setFontSize(self, size): delta = size - self.font().pointSize() if delta: for widget in QApplication.topLevelWidgets(): size = widget.font().pointSize() + delta widget.setStyleSheet("font-size:{}pt;".format(max(size, 6)))
def test_open_options_dialog(self): self.form.show_options_dialog_specific_tab(1) w = next((w for w in QApplication.topLevelWidgets() if isinstance(w, OptionsController)), None) # type: OptionsController self.assertIsNotNone(w) self.assertEqual(w.ui.tabWidget.currentIndex(), 1) w.close()
def accept_csv_dialog(): w = next((w for w in QApplication.topLevelWidgets() if isinstance(w, CSVImportDialog)), None) w.accept() timer.stop()
def accept_csv_dialog(): for w in QApplication.topLevelWidgets(): if isinstance(w, CSVImportDialog): w.accept() timer.stop()
def get_main_window(): for widget in QApplication.topLevelWidgets(): if isinstance(widget, QMainWindow): return widget return None
def ping(): if len(QApplication.topLevelWidgets()) == 0: bottle.abort(503, "Still booting up, try again later") return 'Ping!'
def ui_tree(): return template("<pre>{{ui_tree}}</pre>", ui_tree=json.dumps(get_widget_json(QApplication.topLevelWidgets()[0]), sort_keys=True, indent=4, separators=(',',': ')))
def getWindow(): """ Return main application window. """ for widget in QApplication.topLevelWidgets(): if widget.objectName() == 'MainWindow': return widget
def openMetricsWindow(self, font): for window in QApplication.topLevelWidgets(): if isinstance(window, FontWindow) and window.font_() == font: window.metrics() return window._metricsWindow return None
def accept_dialog(title): topWidgets = QApplication.topLevelWidgets() for w in topWidgets: if isinstance(w, QDialog) and w.windowTitle() == title: w.accept()
def click_on_top_message_box_button(button): topWidgets = QApplication.topLevelWidgets() for w in topWidgets: if isinstance(w, QMessageBox): QTest.mouseClick(w.button(button), Qt.LeftButton)