def show_record(record): """Create a :class:`QtWidgets.QDialog` to display the information about a record. Parameters ---------- record : :class:`~msl.equipment.record_types.EquipmentRecord` or :class:`~msl.equipment.record_types.ConnectionRecord` An Equipment Record or a Connection Record. """ dialog = QtWidgets.QDialog() dialog.setWindowFlags(QtCore.Qt.WindowCloseButtonHint) dialog.setWindowTitle(record.__class__.__name__.replace('R', ' R')) widget = QtWidgets.QTextEdit() widget.setReadOnly(True) widget.setLineWrapMode(QtWidgets.QTextEdit.NoWrap) widget.setText(record.to_yaml()) hbox = QtWidgets.QHBoxLayout() hbox.addWidget(widget) dialog.setLayout(hbox) size = widget.document().size() sb = widget.horizontalScrollBar().size().height() dialog.resize(int((size.width() + sb) * 1.1), int((size.height() + sb) * 1.1)) # add 10% dialog.exec_()
def __init__(self): app = application() self.tab_widget = QtWidgets.QTabWidget() self.main_window = QtWidgets.QMainWindow() self.main_window.setWindowTitle('Standard Icons') self.main_window.setCentralWidget(self.tab_widget) self.main_window.closeEvent = self.close_event # add a progress bar to the status bar self.progress_bar = QtWidgets.QProgressBar( self.main_window.statusBar()) self.progress_bar.setAlignment(QtCore.Qt.AlignCenter) self.main_window.statusBar().addPermanentWidget(self.progress_bar) self.main_window.showMaximized() self.num_icons = 0 self.file_index = 0 self.zoom_widget = QtWidgets.QDialog() self.zoom_widget.setSizeGripEnabled(True) self.zoom_widget.resize(QtCore.QSize(256, 256)) self.zoom_widget.setWindowFlags(QtCore.Qt.WindowCloseButtonHint) vbox = QtWidgets.QVBoxLayout() self.zoom_label = QtWidgets.QLabel() self.zoom_label.setScaledContents(True) vbox.addWidget(self.zoom_label) self.zoom_widget.setLayout(vbox) qt_icons = [sp for sp in dir(QtWidgets.QStyle) if sp.startswith('SP_')] self.windows_files = [ 'accessibilitycpl', 'compstui', 'ddores', 'dmdskres', 'explorer', 'gameux', 'ieframe', 'imageres', 'mmcndmgr', 'mmres', 'moricons', 'netcenter', 'netshell', 'networkexplorer', 'pifmgr', 'pnidui', 'sensorscpl', 'setupapi', 'shell32', 'wmploc', 'wpdshext' ] self.num_files = 1 + len(self.windows_files) self.progress_bar.setRange(0, self.num_files) self.add_qt_tab('Qt Icons', qt_icons) if has_clr: self.windows_index = 0 self.timer = QtCore.QTimer() self.timer.timeout.connect(self.add_windows_tab) self.timer.start(0) else: self.update_message('Loaded {} icons.'.format(self.num_icons)) self.progress_bar.hide() app.exec()
def show_hardware_info(connection): """Displays the hardware information about a Thorlabs_ :class:`~msl.equipment.resources.thorlabs.kinesis.motion_control.MotionControl` device in a :class:`QtWidgets.QDialog`. Parameters ---------- connection : :class:`~msl.equipment.resources.thorlabs.kinesis.motion_control.MotionControl` A Thorlabs Motion Control subclass. """ info = connection.get_hardware_info() dialog = QtWidgets.QDialog() dialog.setWindowFlags(QtCore.Qt.WindowCloseButtonHint) dialog.setWindowTitle(connection.__class__.__name__) widget = QtWidgets.QTextEdit() widget.setReadOnly(True) widget.setLineWrapMode(QtWidgets.QTextEdit.NoWrap) text = 'Serial Number: {}\n'.format(info.serialNumber) text += 'Model Number: {}\n'.format(info.modelNumber.decode('utf-8')) text += 'Type: {}\n'.format(info.type) text += 'Number of Channels: {}\n'.format(info.numChannels) text += 'Notes: {}\n'.format(info.notes.decode('utf-8')) text += 'Firmware Version: {}\n'.format( connection.to_version(info.firmwareVersion)) text += 'Hardware Version: {}\n'.format( connection.to_version(info.hardwareVersion)) text += 'Modification State: {}'.format(info.modificationState) widget.setText(text) hbox = QtWidgets.QHBoxLayout() hbox.addWidget(widget) dialog.setLayout(hbox) size = widget.document().size() pad = widget.horizontalScrollBar().size().height() * 1.1 dialog.resize(int(size.width() + pad), int(size.height() + pad)) dialog.exec_()