def __init__(self): super().__init__() self.default_options = dict( login_file="", proxie_file="", path_to_tmp_files=path.join(os.getcwd(), 'tmp') ) self.options = dict(**self.default_options) if path.exists(CONFIG_FILE): with open(CONFIG_FILE) as f: self.options.update(json.load(f)) self.setupUi(self) self.table = MessagesModel() self.sorter_filter_table = MessageFilterSortProxy(self) self.sorter_filter_table.setSourceModel(self.table) self.sorter_filter_table.setDynamicSortFilter(True) self.table.insertRow(Message(login="******", proxie="22", text="33", status=0)) self.tableView.setModel(self.sorter_filter_table) self.lineEdit.setText(self.options['path_to_tmp_files']) self.lineEdit_2.setText(self.options['login_file']) self.lineEdit_3.setText(self.options['proxie_file']) self.lineEdit_4.textChanged.connect(self.changeSettings) self.action.triggered.connect(self.open_file_login) self.action_2.triggered.connect(self.open_file_proxie) self.action_3.triggered.connect(self.clearOptions) self.action_4.triggered.connect(self.get_path_to_tmp_files) self.pushButton.clicked.connect(self.start_parser) self.pushButton_2.clicked.connect(self.stop_parser) self.qerrormessage = QErrorMessage(self) for i in range(10): self.table.insertRow(Message(login="******", proxie="22", text="33", status=i)) self.show()
def _action_export_image(self): """ Export images as either .png or .jpg to the destination folder using the current configuration. """ import cv2 # Error check if self.ui.files_listWidget.count() == 0: mb = QErrorMessage(self) mb.showMessage(self.tr("Please specify source image directories first!")) return write_dir = QFileDialog.getSaveFileName(self, self.tr("Write Current Image"), "", 'JPG (*.jpg);;PNG (*.png)') if write_dir is None: # terminate self._logger.info("Cancelled write.") self._logger.info(f"Writing to: {write_dir[0]}") # Skip files if its not in keys-to-write if it exists todraw = self.draw_worker.get_result() print(todraw.shape) try: todraw = cv2.cvtColor(todraw, cv2.COLOR_RGB2BGR) cv2.imwrite(write_dir[0], todraw) except Exception as e: self._logger.error("Encounter error during write: {}".format(e)) self._logger.log_traceback(e)
def dropEvent(self, evt): urls = evt.mimeData().urls() if len(urls) != 1: errMsg = QErrorMessage() errMsg.showMessage("Drop exactly single rbs file!") else: self.loadTelemetry(urls[0].toLocalFile())
def __init__(self, parent: QWidget): super().__init__(parent, 'Select Data Directory') self.setFileMode(QFileDialog.DirectoryOnly) options = QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks self.setOptions(options) self.setViewMode(QFileDialog.Detail) self.error_message = QErrorMessage(self)
def __init__(self, node_set: NodeSet): super().__init__('Bitcoin Data Directory') self.error_message = QErrorMessage(self) self.node_set = node_set self.datadir = self.node_set.bitcoin.file['datadir'] self.datadir_label = QLabel() self.datadir_label.setText(self.datadir) self.datadir_label.setAlignment(Qt.AlignCenter | Qt.AlignCenter) self.datadir_label.setFixedHeight(50) self.prune_warning_label = QLabel() new_font: QFont = self.prune_warning_label.font() new_font.setPointSize(8) self.prune_warning_label.setFont(new_font) self.prune_warning_label.setAlignment(Qt.AlignCenter | Qt.AlignCenter) self.display_pruning_warning() self.show_directory_button = QtWidgets.QPushButton('Show Directory') # noinspection PyUnresolvedReferences self.show_directory_button.clicked.connect( lambda: reveal(self.datadir)) self.select_directory_button = QtWidgets.QPushButton( 'Select Directory') # noinspection PyUnresolvedReferences self.select_directory_button.clicked.connect(self.file_dialog) layout = QtWidgets.QGridLayout() layout.addWidget(self.datadir_label, 1, 1, 1, 2) layout.addWidget(self.prune_warning_label, 2, 1, 1, 2) layout.addWidget(self.show_directory_button, 3, 1) layout.addWidget(self.select_directory_button, 3, 2) self.setLayout(layout) self.setFixedWidth(self.minimumSizeHint().width())
def __init__(self): super().__init__() self.setWindowTitle('Node Launcher') self.message_box = QMessageBox(self) self.error_message = QErrorMessage(self) self.message_box.setTextFormat(Qt.RichText) try: self.testnet_group_box = NetworkWidget(network=TESTNET) self.mainnet_group_box = NetworkWidget(network=MAINNET) except ZmqPortsNotOpenError as e: self.error_message.showMessage(str(e)) self.error_message.exec_() sys.exit(0) self.data_directory_group_box = DataDirectoryBox() self.data_directory_group_box.file_dialog.new_data_directory.connect( self.change_datadir) self.data_directory_group_box.set_datadir( self.mainnet_group_box.node_set.bitcoin.file['datadir'], self.mainnet_group_box.node_set.bitcoin.file['prune']) self.network_grid = Tabs(self, mainnet=self.mainnet_group_box, testnet=self.testnet_group_box) self.grid = QVBoxLayout() self.grid.addStretch() self.grid.addWidget(self.data_directory_group_box) self.grid.addWidget(self.network_grid) self.grid.setAlignment(self.data_directory_group_box, Qt.AlignHCenter) self.setLayout(self.grid) self.check_version()
def __init__(self, data_connection): """Initialize class.""" from ..ui.spine_datapackage_form import Ui_MainWindow # pylint: disable=import-outside-toplevel super().__init__( flags=Qt.Window ) # TODO: Set parent as toolbox here if it makes sense # TODO: Maybe set the parent as ToolboxUI so that its stylesheet is inherited. This may need # TODO: reimplementing the window minimizing and maximizing actions as well as setting the window modality self._data_connection = data_connection self.datapackage = None self.descriptor_tree_context_menu = None self.selected_resource_name = None self.resource_data = dict() self.resources_model = DatapackageResourcesModel(self) self.fields_model = DatapackageFieldsModel(self) self.foreign_keys_model = DatapackageForeignKeysModel(self) self.resource_data_model = MinimalTableModel(self) self.default_row_height = QFontMetrics(QFont("", 0)).lineSpacing() max_screen_height = max( [s.availableSize().height() for s in QGuiApplication.screens()]) self.visible_rows = int(max_screen_height / self.default_row_height) self.err_msg = QErrorMessage(self) self.remove_row_icon = QIcon(":/icons/minus.png") self.progress_bar = QProgressBar() self.progress_bar.hide() self.focus_widget = None # Last widget which had focus before showing a menu from the menubar # Set up the user interface from Designer. self.ui = Ui_MainWindow() self.ui.setupUi(self) self.setWindowIcon(QIcon(":/symbols/app.ico")) self.qsettings = QSettings("SpineProject", "Spine Toolbox") self.restore_ui() self.add_toggle_view_actions() # Add status bar to form self.ui.statusbar.setFixedHeight(20) self.ui.statusbar.setSizeGripEnabled(False) self.ui.statusbar.setStyleSheet(STATUSBAR_SS) self.ui.statusbar.addPermanentWidget(self.progress_bar) self.ui.tableView_resources.setModel(self.resources_model) self.ui.tableView_fields.setModel(self.fields_model) self.ui.tableView_foreign_keys.setModel(self.foreign_keys_model) self.ui.tableView_resource_data.setModel(self.resource_data_model) self.ui.tableView_resources.verticalHeader().setDefaultSectionSize( self.default_row_height) self.ui.tableView_resource_data.verticalHeader().setDefaultSectionSize( self.default_row_height) self.ui.tableView_resource_data.horizontalHeader( ).setResizeContentsPrecision(self.visible_rows) self.ui.tableView_fields.verticalHeader().setDefaultSectionSize( self.default_row_height) self.ui.tableView_fields.horizontalHeader().setResizeContentsPrecision( self.visible_rows) self.ui.tableView_foreign_keys.verticalHeader().setDefaultSectionSize( self.default_row_height) self.ui.tableView_foreign_keys.horizontalHeader( ).setResizeContentsPrecision(self.visible_rows) self.connect_signals() # Ensure this window gets garbage-collected when closed self.setAttribute(Qt.WA_DeleteOnClose)
def __init__(self, node_set: NodeSet): super(LndWalletLayout, self).__init__() self.node_set = node_set self.password_dialog = QInputDialog() self.error_message = QErrorMessage() self.state = None self.threadpool = QThreadPool() columns = 2 self.addWidget(SectionName('LND Wallet'), column_span=columns) wallet_buttons_layout = QtWidgets.QHBoxLayout() # Unlock wallet button self.unlock_wallet_button = QtWidgets.QPushButton('Unlock') # noinspection PyUnresolvedReferences self.unlock_wallet_button.clicked.connect(self.unlock_wallet) wallet_buttons_layout.addWidget(self.unlock_wallet_button) # Create wallet button self.create_wallet_button = QtWidgets.QPushButton('Create') # noinspection PyUnresolvedReferences self.create_wallet_button.clicked.connect(self.create_wallet) wallet_buttons_layout.addWidget(self.create_wallet_button, same_row=True, column=2) # Recover wallet button self.recover_wallet_button = QtWidgets.QPushButton('Recover') # noinspection PyUnresolvedReferences self.recover_wallet_button.clicked.connect(self.recover_wallet) wallet_buttons_layout.addWidget(self.recover_wallet_button) self.addLayout(wallet_buttons_layout, column_span=columns) self.addWidget(HorizontalLine(), column_span=columns)
def __init__(self, command_generator: CommandGenerator): super().__init__('Bitcoin Data Directory') self.error_message = QErrorMessage(self) self.command_generator = command_generator self.datadir = self.command_generator.testnet.bitcoin.file.datadir self.datadir_label = QLabel() self.datadir_label.setText(self.datadir) self.datadir_label.setAlignment(Qt.AlignCenter | Qt.AlignCenter) self.datadir_label.setFixedHeight(50) self.show_directory_button = QtWidgets.QPushButton('Show Directory') self.show_directory_button.clicked.connect( lambda: reveal(self.datadir)) self.select_directory_button = QtWidgets.QPushButton( 'Select Directory') self.select_directory_button.clicked.connect(self.file_dialog) layout = QtWidgets.QGridLayout() layout.addWidget(self.datadir_label, 1, 1, 1, 2) layout.addWidget(self.show_directory_button, 2, 1) layout.addWidget(self.select_directory_button, 2, 2) self.setLayout(layout)
def _on_compile_clicked(self): try: content = self.editor.toPlainText() compile(content) except: error_dialog = QErrorMessage(self) error_dialog.showMessage('Unknown token')
def roi_view_click(self, event): if event.button() == QtCore.Qt.RightButton: if self.image_item.raiseContextMenu(event): event.accept() try: if hasattr(self.main_widget.data_handler, "pixel_with_rois_flat") and self.main_widget.data_handler.pixel_with_rois_flat is not None: pos = event.pos() y = int(pos.x()) x = int(pos.y()) if self.select_mode == "magic": self.magic_wand(x, y) print("Done generating ROI") elif self.select_pixel_on: event.accept() self.pixel_paint(x, y) else: super().roi_view_click(event) elif self.select_pixel_on or self.select_mode == "magic": error_dialog = QErrorMessage(self.main_widget.main_window) error_dialog.showMessage( "Something has changed, please regenerate ROIs") except ValueError as e: if "shape" in e.args[0]: self.reset_view()
def __init__(self, db_mngr, *db_urls): """Initializes form. Args: db_mngr (SpineDBManager): The manager to use *db_urls (tuple): Database url, codename. """ super().__init__(flags=Qt.Window) from ..ui.data_store_view import Ui_MainWindow self.db_urls = list(db_urls) self.db_url = self.db_urls[0] self.db_mngr = db_mngr self.db_maps = [ self.db_mngr.get_db_map_for_listener(self, url, codename=codename) for url, codename in self.db_urls ] self.db_map = self.db_maps[0] # Setup UI from Qt Designer file self.ui = Ui_MainWindow() self.ui.setupUi(self) self.takeCentralWidget() self.setWindowIcon(QIcon(":/symbols/app.ico")) self.setStyleSheet(MAINWINDOW_SS) self.setAttribute(Qt.WA_DeleteOnClose) self.qsettings = QSettings("SpineProject", "Spine Toolbox") self.err_msg = QErrorMessage(self) self.notification_stack = NotificationStack(self) self.err_msg.setWindowTitle("Error") self.parameter_tag_toolbar = ParameterTagToolBar( self, self.db_mngr, *self.db_maps) self.addToolBar(Qt.TopToolBarArea, self.parameter_tag_toolbar) self.selected_ent_cls_ids = { "object class": {}, "relationship class": {} } self.selected_ent_ids = {"object": {}, "relationship": {}} self.selected_parameter_tag_ids = dict() self.selected_param_def_ids = { "object class": {}, "relationship class": {} } self.parameter_value_list_model = ParameterValueListModel( self, self.db_mngr, *self.db_maps) fm = QFontMetrics(QFont("", 0)) self.default_row_height = 1.2 * fm.lineSpacing() max_screen_height = max( [s.availableSize().height() for s in QGuiApplication.screens()]) self.visible_rows = int(max_screen_height / self.default_row_height) self._selection_source = None self._selection_locked = False self._focusable_childs = [self.ui.treeView_parameter_value_list] self.settings_group = 'treeViewWidget' self.undo_action = None self.redo_action = None db_names = ", ".join( ["{0}[*]".format(db_map.codename) for db_map in self.db_maps]) self.setWindowTitle("{0} - Data store view ".format(db_names)) self.update_commit_enabled()
def _error_function(self, message): error_dialog = QErrorMessage(self) # The QErrorMessage dialog automatically identifies if text is rich text, # html or plain text. Unfortunately, it doesn't do a good job when some of # the text is describing Exceptions due to number comparisons that include # the '>' symbol. As all invocations of this function are done with plain # text we use the convertToPlainText method to ensure that it is displayed # correctly. error_dialog.showMessage( PySide2.QtGui.Qt.convertFromPlainText(message))
def __init__(self, network: str, node_launcher: NodeLauncher): super().__init__(network) self.network = network self.node_launcher = node_launcher layout = QtWidgets.QVBoxLayout() layout.addWidget(ImageLabel(f'bitcoin-{network}.png')) layout.addStretch(1) self.error_message = QErrorMessage(self) if OPERATING_SYSTEM == LINUX: self.error_message.showMessage( 'Linux is not supported, please submit a pull request! ' 'https://github.com/PierreRochard/node-launcher') sys.exit(0) layout.addWidget(HorizontalLine()) # Bitcoin-Qt button self.bitcoin_qt_button = QtWidgets.QPushButton('Launch Bitcoin') bitcoin_qt_launcher = getattr(node_launcher, f'{network}_bitcoin_qt_node') # noinspection PyUnresolvedReferences self.bitcoin_qt_button.clicked.connect(bitcoin_qt_launcher) layout.addWidget(self.bitcoin_qt_button) # LND button self.lnd_button = QtWidgets.QPushButton('Launch LND') lnd_launcher = getattr(node_launcher, f'{network}_lnd_node') # noinspection PyUnresolvedReferences self.lnd_button.clicked.connect(lnd_launcher) layout.addWidget(self.lnd_button) layout.addWidget(HorizontalLine()) # Copy REST API URL button self.rest_url_copy_button = QtWidgets.QPushButton( 'Copy LND REST Address') # noinspection PyUnresolvedReferences self.rest_url_copy_button.clicked.connect(self.copy_rest_url) layout.addWidget(self.rest_url_copy_button) # Show Macaroons button self.show_macaroons_button = QtWidgets.QPushButton('Show Macaroons') # noinspection PyUnresolvedReferences self.show_macaroons_button.clicked.connect(self.reveal_macaroons) layout.addWidget(self.show_macaroons_button) # Copy lncli command button self.lncli_copy_button = QtWidgets.QPushButton('Copy lncli Command') # noinspection PyUnresolvedReferences self.lncli_copy_button.clicked.connect(self.copy_lncli_command) layout.addWidget(self.lncli_copy_button) self.setLayout(layout)
def selectFile(self): file_name = QFileDialog.getOpenFileName()[0] if (file_name == ""): pass else: if file_name.endswith(('.jpg', '.png', '.jpeg')): pixmap = QPixmap(file_name).scaledToWidth(240) self.original_pic.setPixmap(pixmap) else: img_error = QErrorMessage() img_error.showMessage('Oh no!')
def __init__(self, datapackage): """Initialize class. Args: datapackage (CustomPackage): Data package associated to this widget """ from ..ui.spine_datapackage_form import Ui_MainWindow # pylint: disable=import-outside-toplevel super().__init__(flags=Qt.Window) self.datapackage = datapackage self.selected_resource_index = None self.resources_model = DatapackageResourcesModel(self, self.datapackage) self.fields_model = DatapackageFieldsModel(self, self.datapackage) self.foreign_keys_model = DatapackageForeignKeysModel(self, self.datapackage) self.resource_data_model = DatapackageResourceDataModel(self, self.datapackage) self.default_row_height = QFontMetrics(QFont("", 0)).lineSpacing() max_screen_height = max([s.availableSize().height() for s in QGuiApplication.screens()]) self.visible_rows = int(max_screen_height / self.default_row_height) self.err_msg = QErrorMessage(self) self.notification_stack = NotificationStack(self) self._foreign_keys_context_menu = QMenu(self) self._file_watcher = QFileSystemWatcher(self) self._file_watcher.addPath(self.datapackage.base_path) self._changed_source_indexes = set() self.undo_group = QUndoGroup(self) self.undo_stacks = {} self._save_resource_actions = [] self.ui = Ui_MainWindow() self.ui.setupUi(self) self.takeCentralWidget() self._before_save_all = self.ui.menuFile.insertSeparator(self.ui.actionSave_All) self.setWindowIcon(QIcon(":/symbols/app.ico")) self.qsettings = QSettings("SpineProject", "Spine Toolbox") self.restore_ui() self.add_menu_actions() self.setStyleSheet(MAINWINDOW_SS) self.ui.tableView_resources.setModel(self.resources_model) self.ui.tableView_resources.verticalHeader().setDefaultSectionSize(self.default_row_height) self.ui.tableView_resource_data.setModel(self.resource_data_model) self.ui.tableView_resource_data.verticalHeader().setDefaultSectionSize(self.default_row_height) self.ui.tableView_resource_data.horizontalHeader().setResizeContentsPrecision(self.visible_rows) self.ui.tableView_fields.setModel(self.fields_model) self.ui.tableView_fields.verticalHeader().setDefaultSectionSize(self.default_row_height) self.ui.tableView_fields.horizontalHeader().setResizeContentsPrecision(self.visible_rows) self.ui.tableView_foreign_keys.setModel(self.foreign_keys_model) self.ui.tableView_foreign_keys.verticalHeader().setDefaultSectionSize(self.default_row_height) self.ui.tableView_foreign_keys.horizontalHeader().setResizeContentsPrecision(self.visible_rows) self.connect_signals() self.setAttribute(Qt.WA_DeleteOnClose) self.setWindowTitle("{0}[*] - Spine datapackage manager".format(self.datapackage.base_path)) self.load_datapackage()
def __init__(self): super().__init__() self.setupUi(self) self.project = None self.message_dialog = QErrorMessage() self.buttonBox.buttons()[0].setEnabled(False) self.setWindowTitle("Create Project") self.setWindowIcon(QIcon("paragon.ico")) self.rom_button.clicked.connect( lambda: self._open_file_and_set_field("rom_field")) self.project_path_button.clicked.connect( lambda: self._open_file_and_set_field("project_path_field")) self.rom_field.textChanged.connect(self._update_ok_button_enabled) self.project_path_field.textChanged.connect( self._update_ok_button_enabled)
class LaunchWidget(QtWidgets.QWidget): error_message: QErrorMessage network_grid: QGridLayout mainnet_group_box: NetworkWidget testnet_group_box: NetworkWidget def __init__(self): super().__init__() self.setWindowTitle('Node Launcher') self.message_box = QMessageBox(self) self.error_message = QErrorMessage(self) self.message_box.setTextFormat(Qt.RichText) try: self.testnet_group_box = NetworkWidget(network='testnet', parent=self) self.mainnet_group_box = NetworkWidget(network='mainnet', parent=self) except ZmqPortsNotOpenError as e: self.error_message.showMessage(str(e)) self.error_message.exec_() sys.exit(0) self.data_directory_group_box = DataDirectoryBox( self.mainnet_group_box.node_set) self.network_grid = Tabs(mainnet=self.mainnet_group_box, testnet=self.testnet_group_box) self.grid = QtWidgets.QVBoxLayout() self.grid.addStretch() self.grid.addWidget(self.data_directory_group_box) self.grid.addWidget(self.network_grid) self.grid.setAlignment(self.data_directory_group_box, Qt.AlignHCenter) self.setLayout(self.grid) latest_version = LauncherSoftware().get_latest_release_version() latest_major, latest_minor, latest_bugfix = latest_version.split('.') major, minor, bugfix = NODE_LAUNCHER_RELEASE.split('.') major_upgrade = latest_major > major minor_upgrade = latest_major == major and latest_minor > minor bugfix_upgrade = latest_major == major and latest_minor == minor and latest_bugfix > bugfix if major_upgrade or minor_upgrade or bugfix_upgrade: self.message_box.setText(UPGRADE) self.message_box.setInformativeText( f'Your version: {NODE_LAUNCHER_RELEASE}\n' f'New version: {latest_version}') self.message_box.exec_()
def __error(self, message: str): """__error will show a error message with a given message Arguments: message {str} -- Message to show """ err = QErrorMessage(self.parent()) err.setWindowTitle('Flix') err.showMessage(message) err.exec_()
def roi_view_drag(self, event): # if event.button() == QtCore.Qt.RightButton: # if self.image_item.raiseContextMenu(event): # event.accept() pos = event.pos() y = int(pos.x()) x = int(pos.y()) if self.select_pixel_on and self.select_mode != "magic": if hasattr(self.main_widget.data_handler, "pixel_with_rois_flat") and self.main_widget.data_handler.pixel_with_rois_flat is not None: event.accept() self.pixel_paint(x, y) else: error_dialog = QErrorMessage(self.main_widget.main_window) error_dialog.showMessage( "Something has changed, please regenerate ROIs")
def handle_lnd_poll(self, details: str): if 'invalid passphrase' in details: self.set_unlock_state() elif 'unknown service lnrpc.WalletUnlocker' in details: self.set_open_state() elif 'wallet not found' in details: self.set_create_recover_state() else: QErrorMessage(self).showMessage(details) self.set_closed_state()
def __init__(self, db_mngr): """Initializes form. Args: db_mngr (SpineDBManager): The manager to use """ super().__init__(flags=Qt.Window) from ..ui.spine_db_editor_window import Ui_MainWindow # pylint: disable=import-outside-toplevel self.db_mngr = db_mngr self.db_maps = [] self.db_urls = [] self._change_notifiers = [] self._changelog = [] self.db_url = None self._fetcher = None # Setup UI from Qt Designer file self.ui = Ui_MainWindow() self.ui.setupUi(self) self.takeCentralWidget() self.url_toolbar = UrlToolBar(self) self.addToolBar(Qt.TopToolBarArea, self.url_toolbar) self.setStyleSheet(MAINWINDOW_SS) self.setAttribute(Qt.WA_DeleteOnClose) self.qsettings = self.db_mngr.qsettings self.err_msg = QErrorMessage(self) self.err_msg.setWindowTitle("Error") self.err_msg.setWindowFlag(Qt.WindowContextHelpButtonHint, False) self.notification_stack = NotificationStack(self) self.silenced = False fm = QFontMetrics(QFont("", 0)) self.default_row_height = 1.2 * fm.lineSpacing() max_screen_height = max( [s.availableSize().height() for s in QGuiApplication.screens()]) self.visible_rows = int(max_screen_height / self.default_row_height) self.settings_group = "spineDBEditor" self.undo_action = None self.redo_action = None self.ui.actionUndo.setShortcuts(QKeySequence.Undo) self.ui.actionRedo.setShortcuts(QKeySequence.Redo) self.update_commit_enabled() self.setContextMenuPolicy(Qt.NoContextMenu)
class DataDirectoryBox(QtWidgets.QGroupBox): def __init__(self, command_generator: CommandGenerator): super().__init__('Bitcoin Data Directory') self.error_message = QErrorMessage(self) self.command_generator = command_generator self.datadir = self.command_generator.testnet.bitcoin.file.datadir self.datadir_label = QLabel() self.datadir_label.setText(self.datadir) self.datadir_label.setAlignment(Qt.AlignCenter | Qt.AlignCenter) self.datadir_label.setFixedHeight(50) self.show_directory_button = QtWidgets.QPushButton('Show Directory') self.show_directory_button.clicked.connect( lambda: reveal(self.datadir)) self.select_directory_button = QtWidgets.QPushButton( 'Select Directory') self.select_directory_button.clicked.connect(self.file_dialog) layout = QtWidgets.QGridLayout() layout.addWidget(self.datadir_label, 1, 1, 1, 2) layout.addWidget(self.show_directory_button, 2, 1) layout.addWidget(self.select_directory_button, 2, 2) self.setLayout(layout) def file_dialog(self): # noinspection PyCallByClass data_directory = QFileDialog.getExistingDirectory( self, 'Select Data Directory', self.datadir, QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks) if not data_directory: return if not os.path.isdir(data_directory): self.error_message.showMessage( 'Directory does not exist, please try again!') self.command_generator.testnet.bitcoin.file.datadir = data_directory self.datadir = data_directory self.datadir_label.setText(data_directory)
def upload(self): try: login = self.lineEdit_3.text() password = self.lineEdit_4.text() group_id = abs(int(self.lineEdit.text())) path_to_folder = self.lineEdit_2.text() QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) uploader = Uploader(login, password, group_id, path_to_folder) self.progressBar = QtWidgets.QProgressBar(self.gridLayoutWidget) self.progressBar.setEnabled(True) self.progressBar.setValue(0) self.progressBar.setTextVisible(True) self.progressBar.setObjectName("progressBar") self.gridLayout.addWidget(self.progressBar, 10, 0, 1, 1) self.pushButton.setEnabled(False) self.pushButton_2.setEnabled(False) self.update() for i, j in uploader.upload_album(): self.progressBar.setValue(int(i / j * 100)) QApplication.processEvents() except Exception as e: errMsgBox = QErrorMessage() errMsgBox.showMessage(repr(e)) errMsgBox.exec_() finally: self.progressBar.setParent(None) self.pushButton.setEnabled(True) self.pushButton_2.setEnabled(True) QApplication.restoreOverrideCursor()
def handle_lnd_poll(self, details: str): if details is None: return details = details.lower() if 'unknown service lnrpc.walletunlocker' in details: self.set_open_state() elif 'wallet not found' in details: self.set_create_recover_state() elif 'connect failed' in details: pass else: QErrorMessage(self).showMessage(details) self.set_open_state()
def getVkSession(self): try: self.vk = self.login.getVkSession() self.initAudioList() except Exception as e: errMsgBox = QErrorMessage() errMsgBox.showMessage(repr(e)) errMsgBox.exec_()
def __init__(self): super().__init__() self.setWindowTitle('Node Launcher') self.error_message = QErrorMessage(self) try: self.network_widget = NetworkWidget() except ZmqPortsNotOpenError as e: self.error_message.showMessage(str(e)) self.error_message.exec_() sys.exit(0) self.network_grid = Tabs(self, self.network_widget) self.network_grid.currentChanged.connect(self.on_tab_change) self.grid = QVBoxLayout() self.settings_tab = SettingsTabDialog( node_set=self.network_widget.node_set) settings_action = QAction('&Settings', self) settings_action.setShortcut(QKeySequence.Preferences) settings_action.triggered.connect(self.settings_tab.show) self.menubar = QMenuBar() self.menubar.setMinimumWidth(self.menubar.sizeHint().width()) file_menu = self.menubar.addMenu('&File') file_menu.addAction(settings_action) self.grid.addWidget(self.menubar) self.grid.addStretch() self.grid.addWidget(self.network_grid) self.setLayout(self.grid) self.settings_tab.bitcoin_tab.change_network.connect( self.change_network) timer = QTimer() timer.singleShot(1000, self.check_version)
class SelectDirectoryDialog(QFileDialog): new_data_directory = Signal(str) def __init__(self, parent: QWidget): super().__init__(parent, 'Select Data Directory') self.setFileMode(QFileDialog.DirectoryOnly) options = QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks self.setOptions(options) self.setViewMode(QFileDialog.Detail) self.error_message = QErrorMessage(self) def select_new(self, current_datadir: str): self.setDirectory(current_datadir) if self.exec_(): new_datadir = self.selectedFiles()[0] if not new_datadir: return if not os.path.isdir(new_datadir): self.error_message.showMessage( 'Directory does not exist, please try again!') self.select_new(current_datadir) # noinspection PyUnresolvedReferences self.new_data_directory.emit(new_datadir)
def equation_builder(self): try: self.__raw_equation = self.equationLineEdit.text() \ .replace("=0", "").replace("= 0", "").replace("0=", "").replace("0 =", ""). \ replace("y=", "").replace("y =", "").replace("=y", "").replace("= y", "") # Render equation self.display_equation = parse_latex("y = " + self.__raw_equation) Utils.renderLatex(latex(self.display_equation), 15, file='equation.svg') image = QPixmap('equation.svg') self.equationLabel.setPixmap(image) # Fix exp (Add missing closing bracket) self.__raw_equation = self.__raw_equation.replace("e^", r"\exp(") pos = self.__raw_equation.find(r'\exp(') self.__raw_equation = self.__raw_equation[:pos] + \ self.__raw_equation[pos:len(r'\exp(') + 2] + ")" + \ self.__raw_equation[pos + len(r'\exp(') + 1:] self.equation = parse_latex(self.__raw_equation) self.f = lambdify(x, self.equation, 'numpy') # Enable buttons self.graphButton.setEnabled(True) self.bisezioneTable.setEnabled(True) # Set graph self.graphButton.clicked.connect(self.graph) # Calculate table values self.bisezione() except SyntaxError as error: msg = QErrorMessage() msg.showMessage("Errore di sintassi!") return msg
def error_dialogue(message): """Create error window with the message given. Must be called outside of a Qt instance. """ error = QApplication([]) error_dialog = QErrorMessage() error_dialog.setWindowTitle("File not found") error_dialog.showMessage(message) sys.exit(error.exec_())