def __init__(self): """ Sets up the Qt UI. """ super().__init__() QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_ShareOpenGLContexts) signal.signal(signal.SIGINT, signal.SIG_DFL) # fix SIGINT handling - cleanly exit on ctrl+c self.app = QApplication.instance() or QApplication([]) try: import qt_material qt_material.apply_stylesheet(self.app, 'light_blue.xml') except ImportError: pass self.ui_file = QtCore.QFile(os.path.dirname(os.path.realpath(__file__)) + '/qt.ui') self.loader = QUiLoader() self.loader.registerCustomWidget(ViewSBQTreeWidget) self.loader.registerCustomWidget(ViewSBHexView) self.window = self.loader.load(self.ui_file) # type: QMainWindow # Swap columns 0 and 5 to put the expand arrow on the summary column. self.window.usb_tree_widget.header().swapSections(self.COLUMN_SUMMARY, self.COLUMN_SEQUENCE) self.window.usb_tree_widget.header().setSectionResizeMode(QtWidgets.QHeaderView.ResizeToContents) self.window.update_timer = QtCore.QTimer() self.window.update_timer.timeout.connect(self._update) self.window.usb_tree_widget.currentItemChanged.connect(self._tree_current_item_changed) self.window.usb_tree_widget = self.window.usb_tree_widget self.window.usb_tree_widget.sortByColumn(0, Qt.SortOrder.AscendingOrder)
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.app: QCoreApplication = QApplication.instance() self.shortcut_close = QShortcut(QKeySequence("Ctrl+w"), self) self.shortcut_close.activated.connect(self.hide)
def __init__(self, parent=None): QPlainTextEdit.__init__(self, parent) logging.Handler.__init__(self) self.app = QApplication.instance() self.setReadOnly(True) self.notification = None # Here is QLabel element to display LOG update status self.clear_color = None # Variable to store initial "clear" background color
def setup(self): btn_quit = QPushButton('Quit', self) btn_quit.clicked.connect(QApplication.instance().quit) btn_quit.resize(btn_quit.sizeHint()) btn_quit.move(100, 100) self.setGeometry(300, 300, 300, 300) self.setWindowTitle('PySide6 Example') self.show()
def __init__(self, parent=None): QPlainTextEdit.__init__(self, parent) logging.Handler.__init__(self) self.app = QApplication.instance() self.setReadOnly(True) self.status_bar = None # Status bar where notifications and control are located self.expandButton = None # Button that shows/hides log window self.notification = None # Here is QLabel element to display LOG update status self.clear_color = None # Variable to store initial "clear" background color self.collapsed_text = self.tr("▶ logs") self.expanded_text = self.tr("▲ logs")
def __init__(self, parent, programInstance: ProgramInstance, listWidget): super().__init__(parent) self._programInstance = programInstance self.listWidget = listWidget container = QWidget() self.setAutoFillBackground(True) clayout = QVBoxLayout() self.setLayout(clayout) self.layout().addWidget(container) self._editButton = QPushButton("Edit") self._editButton.clicked.connect( lambda: self.onEdit.emit(self._programInstance.program)) self._deleteButton = QPushButton("Delete") self._deleteButton.clicked.connect( lambda: self.onDelete.emit(self._programInstance.program)) layout = QVBoxLayout() container.setLayout(layout) QApplication.instance().installEventFilter(self) self._instanceWidget = ProgramInstanceWidget(programInstance, False) layout.addWidget(self._instanceWidget) layout.addWidget(self._editButton) layout.addWidget(self._deleteButton) self.setFocusPolicy(Qt.ClickFocus) timer = QTimer(self) timer.timeout.connect(self.Reposition) timer.start(30) self.Reposition() self.show() self.raise_()
def _getPixelRatio(): if PyQtImpl in ["PyQt5", "PySide2", "PySide6"]: # Source: https://stackoverflow.com/a/40053864/3388962 pos = QCursor.pos() for screen in QApplication.screens(): rect = screen.geometry() if rect.contains(pos): return screen.devicePixelRatio() # Should never happen, but try to find a good fallback. return QApplication.instance().devicePixelRatio() else: # Qt4 seems not to provide any cross-platform means to get the # pixel ratio. return 1.
def explore_signature_library(sig_trie): """ Display an in-memory signature trie in the signature explorer GUI. :param sig_trie: instance of `TrieNode` """ if not QApplication.instance(): app = QApplication(sys.argv) else: app = None widget = App() widget.show() widget.open_trie(sig_trie, '(memory)') if app: app.exec_()
def setup_window(self): self.setWindowTitle("API Data GUI") display_list = QListWidget(self) self.list_control = display_list self.put_data_in_list(self.data) display_list.resize(400, 350) self.setGeometry(300, 100, 400, 500) quit_button = QPushButton("Quit Now", self) quit_button.clicked.connect(QApplication.instance().quit) quit_button.resize(quit_button.sizeHint()) quit_button.move(300, 400) api_db_demo_button = QPushButton("Push me for Data Visual", self) api_db_demo_button.move(100, 400) api_db_demo_button.clicked.connect(self.do_something_to_test) self.show()
def createActions(self): self.newLetterAct = QAction(QIcon.fromTheme('document-new', QIcon(':/images/new.png')), "&New Letter", self, shortcut=QKeySequence.New, statusTip="Create a new form letter", triggered=self.newLetter) self.saveAct = QAction(QIcon.fromTheme('document-save', QIcon(':/images/save.png')), "&Save...", self, shortcut=QKeySequence.Save, statusTip="Save the current form letter", triggered=self.save) self.printAct = QAction(QIcon.fromTheme('document-print', QIcon(':/images/print.png')), "&Print...", self, shortcut=QKeySequence.Print, statusTip="Print the current form letter", triggered=self.print_) self.undoAct = QAction(QIcon.fromTheme('edit-undo', QIcon(':/images/undo.png')), "&Undo", self, shortcut=QKeySequence.Undo, statusTip="Undo the last editing action", triggered=self.undo) self.quitAct = QAction("&Quit", self, shortcut="Ctrl+Q", statusTip="Quit the application", triggered=self.close) self.aboutAct = QAction("&About", self, statusTip="Show the application's About box", triggered=self.about) self.aboutQtAct = QAction("About &Qt", self, statusTip="Show the Qt library's About box", triggered=QApplication.instance().aboutQt)
def setup_window(self): self.setWindowTitle("GUI Demo for Capstone") display_list = QListWidget(self) self.list_control = display_list self.put_data_in_list(self.data) display_list.resize(400, 350) self.setGeometry(300, 100, 400, 500) quit_button = QPushButton("Quit Now", self) quit_button.clicked.connect(QApplication.instance().quit) quit_button.resize(quit_button.sizeHint()) quit_button.move(300, 400) comp490_demo_button = QPushButton("Push me for Demo", self) comp490_demo_button.move(100, 400) comp490_demo_button.clicked.connect(self.do_something_to_demo) # comp490_demo_button.resize(123, 35) self.show()
def gui_components(self): update_data = QPushButton("Update Data", self) update_data.clicked.connect(self.update_data) update_data.resize(update_data.sizeHint()) update_data.move(20, 25) render_data_button = QPushButton("Render data analysis", self) render_data_button.clicked.connect(self.render_data) render_data_button.move(140, 25) render_data_button.resize(render_data_button.sizeHint()) quit_button = QPushButton("Exit", self) quit_button.clicked.connect(QApplication.instance().quit) quit_button.clicked.connect(QCloseEvent) quit_button.resize(quit_button.sizeHint()) quit_button.move(300, 25) quit_button.setToolTip("Quit program")
def signature_explorer(prompt=True): """ Open the signature explorer UI. :param prompt: if True, prompt the user to open a file immediately. :return: `App`, a QT window """ if "qt_major_version" in binaryninjaui.__dict__ and binaryninjaui.qt_major_version == 6: from PySide6.QtWidgets import QApplication else: from PySide2.QtWidgets import QApplication app = QApplication.instance() global widget # avoid lifetime issues from it falling out of scope widget = sigexplorer.App() if prompt: widget.open_file() widget.show() if app: # VERY IMPORTANT to avoiding lifetime issues??? app.exec_() return widget
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.l, m = load_gif(self) self.l.setGeometry(0, 0, 20, 20) self.app: QApplication = QApplication.instance() self.calc: QThread = QThread() self.frm: QFrame = QFrame(self) self.tray_icon_menu: QMenu = QMenu(self) self.tray_icon: QSystemTrayIcon = QSystemTrayIcon(self) self.app.view_main = self Setting() About() self.init_settings() self.init_main_window() self.init_tray_icon() self.init_frm() self.setAttribute(Qt.WA_TransparentForMouseEvents) self.shortcut_settings = QShortcut(QKeySequence("Ctrl+,"), self) self.shortcut_settings.activated.connect(self.show_settings) self.shortcut_refresh = QShortcut(QKeySequence("Ctrl+r"), self) self.shortcut_refresh.activated.connect(self.start_to_hope) self.shortcut_refresh = QShortcut(QKeySequence("Ctrl+q"), self) self.shortcut_refresh.activated.connect(self.close) if 'darwin' in sys.platform: menubar = self.menuBar() hope_menu = menubar.addMenu('Hope') hope_menu.addAction( QAction('About', self, triggered=self.show_about)) hope_menu.addAction( QAction('Settings', self, triggered=self.show_settings)) self.show() # self.show_settings() self.start_to_check_update()
async def main(): def close_future(fut, loo): loo.call_later(10, fut.cancel) fut.cancel("Close Application") loop = asyncio.get_event_loop() future = asyncio.Future() app = QApplication.instance() if hasattr(app, 'aboutToQuit'): getattr(app, 'aboutToQuit') \ .connect(functools.partial(close_future, future, loop)) main_window = MainWindow() main_window.add_service(DummyService()) main_window.add_service(DummyService()) main_window.add_service(DummyService()) main_window.show() await future return True
def __init__(self, config: Config) -> None: super().__init__() hbox = QtWidgets.QHBoxLayout(self) btn_ingest = QPushButton('Ingest Data', self) btn_ingest.resize(btn_ingest.sizeHint()) btn_ingest.clicked.connect(self.open_ingest) btn_train = QPushButton('Train Model', self) btn_train.resize(btn_train.sizeHint()) btn_train.clicked.connect(self.open_training) btn_predict = QPushButton('Predict', self) btn_predict.resize(btn_predict.sizeHint()) btn_predict.clicked.connect(self.open_prediction) btn_quit = QPushButton('Force Quit', self) btn_quit.clicked.connect(QApplication.instance().quit) btn_quit.resize(btn_quit.sizeHint()) hbox.addWidget(btn_ingest) hbox.addWidget(btn_train) hbox.addWidget(btn_predict) hbox.addWidget(btn_quit) self.setWindowTitle('Crypto Futures') self.show() self.setFixedSize(self.size()) self._ingest = IngestWindow(config) self._ingest.setWindowTitle('Ingest Data') self._training = TrainingWindow() self._training.setWindowTitle('Training') self._predict = PredictionWindow() self._predict.setWindowTitle('Predictions')
def connect_signals_and_slots(self): self.actionExit.triggered.connect(QApplication.instance().quit) self.actionOperations.triggered.connect(self.createOperationsWindow) self.actionAbout.triggered.connect(self.showAboutWindow) self.langGroup.triggered.connect(self.onLanguageChanged) self.statementGroup.triggered.connect(self.statements.load) self.reportsGroup.triggered.connect(self.reports.show) self.action_LoadQuotes.triggered.connect(partial(self.downloader.showQuoteDownloadDialog, self)) self.actionImportSlipRU.triggered.connect(self.importSlip) self.actionBackup.triggered.connect(self.backup.create) self.actionRestore.triggered.connect(self.backup.restore) self.action_Re_build_Ledger.triggered.connect(partial(self.ledger.showRebuildDialog, self)) self.actionAccountTypes.triggered.connect(partial(self.onDataDialog, "account_types")) self.actionAccounts.triggered.connect(partial(self.onDataDialog, "accounts")) self.actionAssets.triggered.connect(partial(self.onDataDialog, "assets")) self.actionPeers.triggered.connect(partial(self.onDataDialog, "agents")) self.actionCategories.triggered.connect(partial(self.onDataDialog, "categories")) self.actionTags.triggered.connect(partial(self.onDataDialog, "tags")) self.actionCountries.triggered.connect(partial(self.onDataDialog, "countries")) self.actionQuotes.triggered.connect(partial(self.onDataDialog, "quotes")) self.PrepareTaxForms.triggered.connect(partial(self.mdiArea.addSubWindow, TaxWidget(self), maximized=True)) self.downloader.download_completed.connect(self.updateWidgets) self.ledger.updated.connect(self.updateWidgets) self.statements.load_completed.connect(self.onStatementImport)
def instance(self) -> QApplication: match QApplication.instance(): case None: return self case a: return MainApp(a)
def connect_signals_and_slots(self): self.actionExit.triggered.connect(QApplication.instance().quit) self.actionAbout.triggered.connect(self.showAboutWindow) self.langGroup.triggered.connect(self.onLanguageChanged) self.statementGroup.triggered.connect(self.statements.load) self.actionReconcile.triggered.connect( self.reconcileAtCurrentOperation) self.action_Load_quotes.triggered.connect( partial(self.downloader.showQuoteDownloadDialog, self)) self.actionImportSlipRU.triggered.connect(self.importSlip) self.actionBackup.triggered.connect(self.backup.create) self.actionRestore.triggered.connect(self.backup.restore) self.action_Re_build_Ledger.triggered.connect( partial(self.ledger.showRebuildDialog, self)) self.actionAccountTypes.triggered.connect( partial(self.onDataDialog, "account_types")) self.actionAccounts.triggered.connect( partial(self.onDataDialog, "accounts")) self.actionAssets.triggered.connect( partial(self.onDataDialog, "assets")) self.actionPeers.triggered.connect(partial(self.onDataDialog, "agents")) self.actionCategories.triggered.connect( partial(self.onDataDialog, "categories")) self.actionTags.triggered.connect(partial(self.onDataDialog, "tags")) self.actionCountries.triggered.connect( partial(self.onDataDialog, "countries")) self.actionQuotes.triggered.connect( partial(self.onDataDialog, "quotes")) self.PrepareTaxForms.triggered.connect( partial(self.taxes.showTaxesDialog, self)) self.BalanceDate.dateChanged.connect( self.BalancesTableView.model().setDate) self.HoldingsDate.dateChanged.connect( self.HoldingsTableView.model().setDate) self.BalancesCurrencyCombo.changed.connect( self.BalancesTableView.model().setCurrency) self.BalancesTableView.doubleClicked.connect(self.OnBalanceDoubleClick) self.HoldingsCurrencyCombo.changed.connect( self.HoldingsTableView.model().setCurrency) self.ReportRangeCombo.currentIndexChanged.connect( self.onReportRangeChange) self.RunReportBtn.clicked.connect(self.onRunReport) self.SaveReportBtn.clicked.connect(self.reports.saveReport) self.ShowInactiveCheckBox.stateChanged.connect( self.BalancesTableView.model().toggleActive) self.DateRangeCombo.currentIndexChanged.connect( self.OnOperationsRangeChange) self.ChooseAccountBtn.changed.connect( self.OperationsTableView.model().setAccount) self.SearchString.editingFinished.connect(self.updateOperationsFilter) self.HoldingsTableView.customContextMenuRequested.connect( self.onHoldingsContextMenu) self.OperationsTableView.selectionModel().selectionChanged.connect( self.OnOperationChange) self.OperationsTableView.customContextMenuRequested.connect( self.onOperationContextMenu) self.DeleteOperationBtn.clicked.connect(self.deleteOperation) self.actionDelete.triggered.connect(self.deleteOperation) self.CopyOperationBtn.clicked.connect(self.copyOperation) self.actionCopy.triggered.connect(self.copyOperation) self.downloader.download_completed.connect(self.balances_model.update) self.downloader.download_completed.connect(self.holdings_model.update) self.statements.load_completed.connect(self.onStatementImport) self.ledger.updated.connect(self.balances_model.update) self.ledger.updated.connect(self.holdings_model.update)
def setup_window(self): self.setWindowTitle("Jobs Window") display_list = QListWidget(self) self.list_control = display_list display_list.resize(500, 350) self.setGeometry(50, 50, 500, 500) self.quit_button.clicked.connect(QApplication.instance().quit) self.quit_button.resize(self.quit_button.sizeHint()) self.quit_button.move(415, 450) self.update_button.clicked.connect(self.update_data) self.update_button.move(200, 200) self.data_button.clicked.connect(self.run_data_visualization) self.data_button.move(175, 250) self.back_button.clicked.connect(self.go_back) self.back_button.move(25, 450) self.data_visualization_label.move(20, 400) self.text_visualization_button.move(400 - self.text_visualization_button.width(), 600) self.order_selector_text.move(self.text_visualization_button.x(), self.text_visualization_button.y()+self.text_visualization_button.height()+10) self.text_visualization_button.clicked.connect(self.text_visualization) self.map_visualization.move(self.text_visualization_button.x() + self.text_visualization_button.width(), self.text_visualization_button.y()) self.data_selector_map.move(self.map_visualization.x(), self.map_visualization.y()+self.map_visualization.height()+10) self.map_visualization.clicked.connect(self.run_map_visualization) self.welcome_label.move(150, 150) self.update_box_01.move(150, 30) self.update_box_02.move(150, 60) self.update_box_03.move(150, 90) self.update_box_04.move(150, 120) self.update_box_05.move(150, 150) self.update_box_06.move(150, 180) self.update_box_07.move(150, 210) self.update_box_08.move(150, 240) self.excel_label.move(340, 70) self.update_excel_selection.move(340, 90) self.update_information.move(25, 325) self.update_label_01.setGeometry(5, 30, 145, 20) self.update_label_02.setGeometry(5, 60, 145, 20) self.update_label_03.setGeometry(5, 90, 145, 20) self.update_label_04.setGeometry(5, 120, 145, 20) self.update_label_05.setGeometry(5, 150, 145, 20) self.update_label_06.setGeometry(5, 180, 145, 20) self.update_label_07.setGeometry(5, 210, 145, 20) self.update_label_08.setGeometry(5, 240, 145, 20) self.table_selection.setGeometry(10, 10, 145, 20) self.enter_data.move(10, 260) self.enter_data.clicked.connect(self.import_data) self.table_selection.addItem("---") self.table_selection.addItem("Schools") self.table_selection.addItem("Jobs") self.order_selector_text.addItem("---") self.order_selector_text.addItem("ASC") self.order_selector_text.addItem("DESC") self.data_selector_map.addItem("---") self.data_selector_map.addItem("Employment to Graduates") self.data_selector_map.addItem("Average Salary to Average Declining Balance Percent") self.table_selection.currentIndexChanged.connect(self.update_selection) self.hidden_at_start() self.show()
def loadData(self, data: List[str]): time = QElapsedTimer() time.start() # Reset tables self.clearTable() #self.m_probeModel.clear() #self.m_programHeightmapModel.clear() self.m_currentModel = self.m_programModel # Reset parsers self.m_viewParser.reset() #self.m_probeParser.reset() # Reset code drawer self.m_currentDrawer = self.m_codeDrawer self.m_codeDrawer.update() self.ui.glwVisualizer.fitDrawable(self.m_codeDrawer) self.updateProgramEstimatedTime([]) # Update interface #self.ui.chkHeightMapUse.setChecked(False) #self.ui.grpHeightMap.setProperty("overrided", False) #self.style().unpolish(self.ui.grpHeightMap) #self.ui.grpHeightMap.ensurePolished() # Reset tableview headerState = self.ui.tblProgram.horizontalHeader().saveState() self.ui.tblProgram.setModel(None) # Prepare parser gp = GcodeParser() ####gp.setTraverseSpeed(self.m_settings.rapidSpeed()) gp.setTraverseSpeed(100) if self.m_codeDrawer.getIgnoreZ(): gp.reset(QVector3D(qQNaN(), qQNaN(), 0)) print("Prepared to load: %s" % time.elapsed()) time.start() # Block parser updates on table changes self.m_programLoading = True # Prepare model self.m_programModel.m_data.clear() self.m_programModel.m_data = [] progress = QProgressDialog("Opening file...", "Abort", 0, len(data), self) progress.setWindowModality(Qt.WindowModal) progress.setFixedSize(progress.sizeHint()) if len(data) > PROGRESSMINLINES: progress.show() progress.setStyleSheet( "QProgressBar {text-align: center qproperty-format: \"\"}") while len(data) > 0: command = data.pop(0) # Trim command trimmed = command.strip() if len(trimmed) > 0: # Split command stripped = GcodePreprocessorUtils.removeComment(command) args = GcodePreprocessorUtils.splitCommand(stripped) gp.addCommand(args) item = GCodeItem() item.command = trimmed item.state = GCodeItem.States.InQueue item.line = gp.getCommandNumber() item.args = args self.m_programModel.m_data.append(item) if progress.isVisible() and (len(data) % PROGRESSSTEP == 0): progress.setValue(progress.maximum() - len(data)) QApplication.instance().processEvents() if progress.wasCanceled(): break progress.close() self.m_programModel.insertRow(self.m_programModel.rowCount()) print("model filled: %s ms." % time.elapsed()) time.start() arcPrecision = 0.0 # TODO self.m_settings.arcPrecision() arcDegreeMode = False # TODO self.m_settings.arcDegreeMode() all_lines = self.m_viewParser.getLinesFromParser( gp, arcPrecision, arcDegreeMode) #self.updateProgramEstimatedTime(all_lines) print("view parser filled: %s ms" % time.elapsed()) self.m_programLoading = False # Set table model self.ui.tblProgram.setModel(self.m_programModel) self.ui.tblProgram.horizontalHeader().restoreState(headerState) # connect this model self.ui.tblProgram.selectionModel().currentChanged.connect( self.onTableCurrentChanged) # Update tableview self.ui.tblProgram.selectRow(0) # Update code drawer self.m_codeDrawer.update() self.ui.glwVisualizer.fitDrawable(self.m_codeDrawer)
def updateParser(self): time = QElapsedTimer() print("updating parser:") time.start() parser = self.m_currentDrawer.viewParser() gp = GcodeParser() #gp.setTraverseSpeed(m_settings.rapidSpeed()) gp.setTraverseSpeed(100) if self.m_codeDrawer.getIgnoreZ(): gp.reset(QVector3D(qQNaN(), qQNaN(), 0)) self.ui.tblProgram.setUpdatesEnabled(False) progress = QProgressDialog("Updating...", "Abort", 0, self.m_currentModel.rowCount() - 2, self) progress.setWindowModality(QtCore.Qt.WindowModal) progress.setFixedSize(progress.sizeHint()) if self.m_currentModel.rowCount() > PROGRESSMINLINES: progress.show() progress.setStyleSheet( "QProgressBar {text-align: center qproperty-format: \"\"}") for i in range(self.m_currentModel.rowCount()): # Get stored args args = self.m_currentModel.m_data[i].args # Store args if none if len(args) == 0: stripped = GcodePreprocessorUtils.removeComment( self.m_currentModel.m_data[i].command) args = GcodePreprocessorUtils.splitCommand(stripped) self.m_currentModel.m_data[i].args = args # Add command to parser gp.addCommand(args) # Update table model self.m_currentModel.m_data[i].state = GCodeItem.States.InQueue self.m_currentModel.m_data[i].response = "" self.m_currentModel.m_data[i].line = gp.getCommandNumber() if progress.isVisible() and (i % PROGRESSSTEP == 0): progress.setValue(i) QApplication.instance().processEvents() if progress.wasCanceled(): break progress.close() self.ui.tblProgram.setUpdatesEnabled(True) parser.reset() arcPrecision = 0.0 # TODO self.m_settings.arcPrecision() arcDegreeMode = False # TODO self.m_settings.arcDegreeMode() all_lines = parser.getLinesFromParser(gp, arcPrecision(), arcDegreeMode()) #self.updateProgramEstimatedTime(all_lines) self.m_currentDrawer.update() self.ui.glwVisualizer.updateExtremes(self.m_currentDrawer) #self.updateControlsState() if self.m_currentModel == self.m_programModel: self.m_fileChanged = True print("Update parser time: %s" % time.elapsed())
logger = Log(__name__) logger.debug("loading module") #from . import rc_icons try: # integrate Qt mainloop into IPython console: # (the name qt4 here is a relic of the API but what happens # really is not restricted to Qt4...) from IPython.lib.guisupport import get_app_qt4, start_event_loop_qt4 app = get_app_qt4() start_event_loop_qt4(app) except ImportError: app = QApplication.instance() or QApplication([]) app.setApplicationName("amoco-qt") # set default styleSheet: current_path = path.abspath(path.dirname(__file__)) filename = path.join(current_path, 'style.qss') filename = conf.UI.qstylesheet or filename if filename.startswith(":"): if filename[1:]=="qdarkstyle": try: import qdarkstyle app.setStyleSheet(qdarkstyle.load_stylesheet(qt_api='pyside2')) except: pass else: with open(filename,'r') as f:
def createActions(self): self.newAct = QAction(QIcon.fromTheme("document-new", QIcon(':/images/new.png')), "&New", self, shortcut=QKeySequence.New, statusTip="Create a new file", triggered=self.newFile) self.openAct = QAction(QIcon.fromTheme("document-open", QIcon(':/images/open.png')), "&Open...", self, shortcut=QKeySequence.Open, statusTip="Open an existing file", triggered=self.open) self.saveAct = QAction(QIcon.fromTheme("document-save", QIcon(':/images/save.png')), "&Save", self, shortcut=QKeySequence.Save, statusTip="Save the document to disk", triggered=self.save) self.saveAsAct = QAction( "Save &As...", self, shortcut=QKeySequence.SaveAs, statusTip="Save the document under a new name", triggered=self.saveAs) self.exitAct = QAction( "E&xit", self, shortcut=QKeySequence.Quit, statusTip="Exit the application", triggered=QApplication.instance().closeAllWindows) self.cutAct = QAction( QIcon.fromTheme("edit-cut", QIcon(':/images/cut.png')), "Cu&t", self, shortcut=QKeySequence.Cut, statusTip="Cut the current selection's contents to the clipboard", triggered=self.cut) self.copyAct = QAction( QIcon.fromTheme("edit-copy", QIcon(':/images/copy.png')), "&Copy", self, shortcut=QKeySequence.Copy, statusTip="Copy the current selection's contents to the clipboard", triggered=self.copy) self.pasteAct = QAction( QIcon.fromTheme("edit-paste", QIcon(':/images/paste.png')), "&Paste", self, shortcut=QKeySequence.Paste, statusTip= "Paste the clipboard's contents into the current selection", triggered=self.paste) self.closeAct = QAction("Cl&ose", self, statusTip="Close the active window", triggered=self.mdiArea.closeActiveSubWindow) self.closeAllAct = QAction("Close &All", self, statusTip="Close all the windows", triggered=self.mdiArea.closeAllSubWindows) self.tileAct = QAction("&Tile", self, statusTip="Tile the windows", triggered=self.mdiArea.tileSubWindows) self.cascadeAct = QAction("&Cascade", self, statusTip="Cascade the windows", triggered=self.mdiArea.cascadeSubWindows) self.nextAct = QAction("Ne&xt", self, shortcut=QKeySequence.NextChild, statusTip="Move the focus to the next window", triggered=self.mdiArea.activateNextSubWindow) self.previousAct = QAction( "Pre&vious", self, shortcut=QKeySequence.PreviousChild, statusTip="Move the focus to the previous window", triggered=self.mdiArea.activatePreviousSubWindow) self.separatorAct = QAction(self) self.separatorAct.setSeparator(True) self.aboutAct = QAction("&About", self, statusTip="Show the application's About box", triggered=self.about) self.aboutQtAct = QAction("About &Qt", self, statusTip="Show the Qt library's About box", triggered=QApplication.instance().aboutQt)