class QtAbout(QDialog): def __init__(self): super().__init__() self.layout = QVBoxLayout() # Description title_label = QLabel( "<b>napari: a multi-dimensional image viewer for python</b>") title_label.setTextInteractionFlags(Qt.TextSelectableByMouse) self.layout.addWidget(title_label) # Add information self.infoTextBox = QTextEdit() self.infoTextBox.setTextInteractionFlags(Qt.TextSelectableByMouse) self.infoTextBox.setLineWrapMode(QTextEdit.NoWrap) # Add text copy button self.infoCopyButton = QtCopyToClipboardButton(self.infoTextBox) self.info_layout = QHBoxLayout() self.info_layout.addWidget(self.infoTextBox, 1) self.info_layout.addWidget(self.infoCopyButton, 0, Qt.AlignTop) self.info_layout.setAlignment(Qt.AlignTop) self.layout.addLayout(self.info_layout) self.infoTextBox.setText(sys_info(as_html=True)) self.infoTextBox.setMinimumSize( self.infoTextBox.document().size().width() + 19, self.infoTextBox.document().size().height() + 10, ) self.layout.addWidget(QLabel('<b>citation information:</b>')) self.citationTextBox = QTextEdit(citation_text) self.citationTextBox.setFixedHeight(64) self.citationCopyButton = QtCopyToClipboardButton(self.citationTextBox) self.citation_layout = QHBoxLayout() self.citation_layout.addWidget(self.citationTextBox, 1) self.citation_layout.addWidget(self.citationCopyButton, 0, Qt.AlignTop) self.layout.addLayout(self.citation_layout) self.setLayout(self.layout) @staticmethod def showAbout(qt_viewer): d = QtAbout() d.setObjectName('QtAbout') d.setStyleSheet(qt_viewer.styleSheet()) d.setWindowTitle('About') d.setWindowModality(Qt.ApplicationModal) d.exec_()
def __init__(self): QWidget.__init__(self) self.setMinimumWidth(500) self.setMinimumHeight(200) self._dynamic = False self.setWindowTitle("Load results manually") self.activateWindow() layout = QFormLayout() current_case = getCurrentCaseName() run_path_text = QTextEdit() run_path_text.setText(self.readCurrentRunPath()) run_path_text.setDisabled(True) run_path_text.setFixedHeight(80) layout.addRow("Load data from current run path: ", run_path_text) self._case_model = AllCasesModel() self._case_combo = QComboBox() self._case_combo.setSizeAdjustPolicy( QComboBox.AdjustToMinimumContentsLength) self._case_combo.setMinimumContentsLength(20) self._case_combo.setModel(self._case_model) self._case_combo.setCurrentIndex( self._case_model.indexOf(current_case)) layout.addRow("Load into case:", self._case_combo) self._active_realizations_model = ActiveRealizationsModel() self._active_realizations_field = StringBox( self._active_realizations_model, "load_results_manually/Realizations") self._active_realizations_field.setValidator(RangeStringArgument()) layout.addRow("Realizations to load:", self._active_realizations_field) iterations_count = LoadResultsModel.getIterationCount() self._iterations_model = ValueModel(iterations_count) self._iterations_field = StringBox(self._iterations_model, "load_results_manually/iterations") self._iterations_field.setValidator(IntegerArgument()) layout.addRow("Iteration to load:", self._iterations_field) self.setLayout(layout)
class QtAbout(QDialog): def __init__(self): super().__init__() self.layout = QVBoxLayout() # Description title_label = QLabel( "<b>napari: a multi-dimensional image viewer for python</b>") title_label.setTextInteractionFlags(Qt.TextSelectableByMouse) self.layout.addWidget(title_label) # Add information self.infoTextBox = QTextEdit() self.infoTextBox.setTextInteractionFlags(Qt.TextSelectableByMouse) self.infoTextBox.setLineWrapMode(QTextEdit.NoWrap) self.layout.addWidget(self.infoTextBox, 1) if API_NAME == 'PySide2': API_VERSION = PYSIDE_VERSION elif API_NAME == 'PyQt5': API_VERSION = PYQT_VERSION else: API_VERSION = '' sys_version = sys.version.replace('\n', ' ') versions = (f"<b>napari</b>: {napari.__version__} <br>" f"<b>Platform</b>: {platform.platform()} <br>" f"<b>Python</b>: {sys_version} <br>" f"<b>{API_NAME}</b>: {API_VERSION} <br>" f"<b>Qt</b>: {QtCore.__version__} <br>" f"<b>VisPy</b>: {vispy.__version__} <br>" f"<b>NumPy</b>: {numpy.__version__} <br>" f"<b>SciPy</b>: {scipy.__version__} <br>" f"<b>scikit-image</b>: {skimage.__version__} <br>" f"<b>Dask</b>: {dask.__version__} <br>") sys_info_text = "<br>".join( [vispy.sys_info().split("\n")[index] for index in [-4, -3]]) text = f'{versions} <br> {sys_info_text} <br>' self.infoTextBox.setText(text) self.layout.addWidget(QLabel('<b>citation information:</b>')) citation_text = ('napari contributors (2019). napari: a ' 'multi-dimensional image viewer for python. ' 'doi:10.5281/zenodo.3555620') self.citationTextBox = QTextEdit(citation_text) self.citationTextBox.setFixedHeight(64) self.layout.addWidget(self.citationTextBox) self.setLayout(self.layout) @staticmethod def showAbout(qt_viewer): d = QtAbout() d.setObjectName('QtAbout') d.setStyleSheet(qt_viewer.styleSheet()) d.setWindowTitle('About') d.setWindowModality(Qt.ApplicationModal) d.exec_()
class QtAbout(QDialog): """Qt dialog window for displaying 'About napari' information. Parameters ---------- parent : QWidget, optional Parent of the dialog, to correctly inherit and apply theme. Default is None. Attributes ---------- citationCopyButton : napari._qt.qt_about.QtCopyToClipboardButton Button to copy citation information to the clipboard. citationTextBox : qtpy.QtWidgets.QTextEdit Text box containing napari citation information. citation_layout : qtpy.QtWidgets.QHBoxLayout Layout widget for napari citation information. infoCopyButton : napari._qt.qt_about.QtCopyToClipboardButton Button to copy napari version information to the clipboard. info_layout : qtpy.QtWidgets.QHBoxLayout Layout widget for napari version information. infoTextBox : qtpy.QtWidgets.QTextEdit Text box containing napari version information. layout : qtpy.QtWidgets.QVBoxLayout Layout widget for the entire 'About napari' dialog. """ def __init__(self, parent=None): super().__init__(parent) self.layout = QVBoxLayout() # Description title_label = QLabel( trans._( "<b>napari: a multi-dimensional image viewer for python</b>")) title_label.setTextInteractionFlags(Qt.TextSelectableByMouse) self.layout.addWidget(title_label) # Add information self.infoTextBox = QTextEdit() self.infoTextBox.setTextInteractionFlags(Qt.TextSelectableByMouse) self.infoTextBox.setLineWrapMode(QTextEdit.NoWrap) # Add text copy button self.infoCopyButton = QtCopyToClipboardButton(self.infoTextBox) self.info_layout = QHBoxLayout() self.info_layout.addWidget(self.infoTextBox, 1) self.info_layout.addWidget(self.infoCopyButton, 0, Qt.AlignTop) self.info_layout.setAlignment(Qt.AlignTop) self.layout.addLayout(self.info_layout) self.infoTextBox.setText(sys_info(as_html=True)) self.infoTextBox.setMinimumSize( int(self.infoTextBox.document().size().width() + 19), int(min(self.infoTextBox.document().size().height() + 10, 500)), ) self.layout.addWidget(QLabel(trans._('<b>citation information:</b>'))) self.citationTextBox = QTextEdit(citation_text) self.citationTextBox.setFixedHeight(64) self.citationCopyButton = QtCopyToClipboardButton(self.citationTextBox) self.citation_layout = QHBoxLayout() self.citation_layout.addWidget(self.citationTextBox, 1) self.citation_layout.addWidget(self.citationCopyButton, 0, Qt.AlignTop) self.layout.addLayout(self.citation_layout) self.setLayout(self.layout) @staticmethod def showAbout(parent=None): """Display the 'About napari' dialog box. Parameters ---------- parent : QWidget, optional Parent of the dialog, to correctly inherit and apply theme. Default is None. """ d = QtAbout(parent) d.setObjectName('QtAbout') d.setWindowTitle(trans._('About')) d.setWindowModality(Qt.ApplicationModal) d.exec_()
class QtAbout(QDialog): """Qt dialog window for displaying 'About napari' information. Attributes ---------- citationCopyButton : napari._qt.qt_about.QtCopyToClipboardButton Button to copy citation information to the clipboard. citationTextBox : qtpy.QtWidgets.QTextEdit Text box containing napari citation information. citation_layout : qtpy.QtWidgets.QHBoxLayout Layout widget for napari citation information. infoCopyButton : napari._qt.qt_about.QtCopyToClipboardButton Button to copy napari version information to the clipboard. info_layout : qtpy.QtWidgets.QHBoxLayout Layout widget for napari version information. infoTextBox : qtpy.QtWidgets.QTextEdit Text box containing napari version information. layout : qtpy.QtWidgets.QVBoxLayout Layout widget for the entire 'About napari' dialog. """ def __init__(self): super().__init__() self.layout = QVBoxLayout() # Description title_label = QLabel( "<b>napari: a multi-dimensional image viewer for python</b>") title_label.setTextInteractionFlags(Qt.TextSelectableByMouse) self.layout.addWidget(title_label) # Add information self.infoTextBox = QTextEdit() self.infoTextBox.setTextInteractionFlags(Qt.TextSelectableByMouse) self.infoTextBox.setLineWrapMode(QTextEdit.NoWrap) # Add text copy button self.infoCopyButton = QtCopyToClipboardButton(self.infoTextBox) self.info_layout = QHBoxLayout() self.info_layout.addWidget(self.infoTextBox, 1) self.info_layout.addWidget(self.infoCopyButton, 0, Qt.AlignTop) self.info_layout.setAlignment(Qt.AlignTop) self.layout.addLayout(self.info_layout) self.infoTextBox.setText(sys_info(as_html=True)) self.infoTextBox.setMinimumSize( self.infoTextBox.document().size().width() + 19, self.infoTextBox.document().size().height() + 10, ) self.layout.addWidget(QLabel('<b>citation information:</b>')) self.citationTextBox = QTextEdit(citation_text) self.citationTextBox.setFixedHeight(64) self.citationCopyButton = QtCopyToClipboardButton(self.citationTextBox) self.citation_layout = QHBoxLayout() self.citation_layout.addWidget(self.citationTextBox, 1) self.citation_layout.addWidget(self.citationCopyButton, 0, Qt.AlignTop) self.layout.addLayout(self.citation_layout) self.setLayout(self.layout) @staticmethod def showAbout(qt_viewer): """Display the 'About napari' dialog box. Paramters --------- qt_viewer : QtViewer QtViewer instance that the `About napari` dialog box belongs to. """ d = QtAbout() d.setObjectName('QtAbout') d.setStyleSheet(qt_viewer.styleSheet()) d.setWindowTitle('About') d.setWindowModality(Qt.ApplicationModal) d.exec_()