def __init__(self, parent=None): super(ImportDialog, self).__init__(parent) from globusonline.catalog.client.examples.catalog_wrapper import CatalogWrapper token_file = os.path.join(os.path.expanduser('~'), '.nexpy', 'globusonline', 'gotoken.txt') self.wrap = CatalogWrapper(token='file', token_file=token_file) _, self.catalogs = self.wrap.catalogClient.get_catalogs() catalog_layout = QtGui.QHBoxLayout() self.catalog_box = QtGui.QComboBox() for catalog in self.catalogs: try: self.catalog_box.addItem(catalog['config']['name']) except: pass self.catalog_box.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToContents) catalog_button = QtGui.QPushButton("Choose Catalog") catalog_button.clicked.connect(self.get_catalog) catalog_layout.addWidget(self.catalog_box) catalog_layout.addWidget(catalog_button) self.layout = QtGui.QVBoxLayout() self.layout.addLayout(catalog_layout) self.layout.addWidget(self.close_buttons()) self.setLayout(self.layout) self.setWindowTitle("Import " + str(filetype))
def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.textEdit = QtGui.QTextEdit() but1 = QtGui.QPushButton('write') but1.clicked.connect(self.but_write) but2 = QtGui.QPushButton('read') but2.clicked.connect(self.but_read) self.a = {'text': ''} self.console = EmbedIPython(testing=123, a=self.a) print "type( console)", type(self.console) #self.console.kernel.shell.run_cell('%pylab qt') vbox = QtGui.QVBoxLayout() hbox = QtGui.QHBoxLayout() vbox.addWidget(self.textEdit) vbox.addWidget(self.console) hbox.addWidget(but1) hbox.addWidget(but2) vbox.addLayout(hbox) b = QtGui.QWidget() b.setLayout(vbox) self.setCentralWidget(b)
def __init__(self, name, parent): super(MagicHelper, self).__init__(name, parent) self.data = None class MinListWidget(QtGui.QListWidget): """Temp class to overide the default QListWidget size hint in order to make MagicHelper narrow """ def sizeHint(self): s = QtCore.QSize() s.setHeight(super(MinListWidget, self).sizeHint().height()) s.setWidth(self.sizeHintForColumn(0)) return s # construct content self.frame = QtGui.QFrame() self.search_label = QtGui.QLabel("Search:") self.search_line = QtGui.QLineEdit() self.search_class = QtGui.QComboBox() self.search_list = MinListWidget() self.paste_button = QtGui.QPushButton("Paste") self.run_button = QtGui.QPushButton("Run") # layout all the widgets main_layout = QtGui.QVBoxLayout() search_layout = QtGui.QHBoxLayout() search_layout.addWidget(self.search_label) search_layout.addWidget(self.search_line, 10) main_layout.addLayout(search_layout) main_layout.addWidget(self.search_class) main_layout.addWidget(self.search_list, 10) action_layout = QtGui.QHBoxLayout() action_layout.addWidget(self.paste_button) action_layout.addWidget(self.run_button) main_layout.addLayout(action_layout) self.frame.setLayout(main_layout) self.setWidget(self.frame) # connect all the relevant signals to handlers self.visibilityChanged[bool].connect(self._update_magic_helper) self.search_class.activated[int].connect(self.class_selected) self.search_line.textChanged[str].connect(self.search_changed) self.search_list.itemDoubleClicked[QtGui.QListWidgetItem].connect( self.paste_requested) self.paste_button.clicked[bool].connect(self.paste_requested) self.run_button.clicked[bool].connect(self.run_requested)
def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.history_s = 20.0 self.next_color = 0 self.paused = False self.figure = matplotlib.figure.Figure() self.canvas = FigureCanvas(self.figure) self.canvas.mpl_connect('key_press_event', self.handle_key_press) self.canvas.mpl_connect('key_release_event', self.handle_key_release) self.left_axis = self.figure.add_subplot(111) self.left_axis.grid() self.left_axis.fmt_xdata = lambda x: '%.3f' % x self.left_axis.legend_loc = LEFT_LEGEND_LOC self.right_axis = None def draw(): # NOTE jpieper: For some reason, on the first repaint # event, the height is negative, which throws spurious # errors. Paper over that here. l, b, w, h = self.figure.bbox.bounds if h < 0: return FigureCanvas.draw(self.canvas) self.canvas.repaint() self.canvas.draw = draw self.toolbar = backend_qt4agg.NavigationToolbar2QT(self.canvas, self) self.pause_action = QtGui.QAction(u'Pause', self) self.pause_action.setCheckable(True) self.pause_action.toggled.connect(self._handle_pause) self.toolbar.addAction(self.pause_action) layout = QtGui.QVBoxLayout(self) layout.addWidget(self.toolbar, 0) layout.addWidget(self.canvas, 1) self.canvas.setFocusPolicy(QtCore.Qt.ClickFocus)
def export(self): """ Displays a dialog for exporting HTML generated by Qt's rich text system. Returns ------- The name of the file that was saved, or None if no file was saved. """ parent = self.control.window() dialog = QtGui.QFileDialog(parent, 'Save as...') dialog.setAcceptMode(QtGui.QFileDialog.AcceptSave) filters = [ 'HTML with PNG figures (*.html *.htm)', 'XHTML with inline SVG figures (*.xhtml *.xml)' ] dialog.setNameFilters(filters) if self.filename: dialog.selectFile(self.filename) root,ext = os.path.splitext(self.filename) if ext.lower() in ('.xml', '.xhtml'): dialog.selectNameFilter(filters[-1]) if dialog.exec_(): self.filename = dialog.selectedFiles()[0] choice = dialog.selectedNameFilter() html = self.control.document().toHtml().encode('utf-8') # Configure the exporter. if choice.startswith('XHTML'): exporter = export_xhtml else: # If there are PNGs, decide how to export them. inline = self.inline_png if inline is None and IMG_RE.search(html): dialog = QtGui.QDialog(parent) dialog.setWindowTitle('Save as...') layout = QtGui.QVBoxLayout(dialog) msg = "Exporting HTML with PNGs" info = "Would you like inline PNGs (single large html " \ "file) or external image files?" checkbox = QtGui.QCheckBox("&Don't ask again") checkbox.setShortcut('D') ib = QtGui.QPushButton("&Inline") ib.setShortcut('I') eb = QtGui.QPushButton("&External") eb.setShortcut('E') box = QtGui.QMessageBox(QtGui.QMessageBox.Question, dialog.windowTitle(), msg) box.setInformativeText(info) box.addButton(ib, QtGui.QMessageBox.NoRole) box.addButton(eb, QtGui.QMessageBox.YesRole) box.setDefaultButton(ib) layout.setSpacing(0) layout.addWidget(box) layout.addWidget(checkbox) dialog.setLayout(layout) dialog.show() reply = box.exec_() dialog.hide() inline = (reply == 0) if checkbox.checkState(): # Don't ask anymore; always use this choice. self.inline_png = inline exporter = lambda h, f, i: export_html(h, f, i, inline) # Perform the export! try: return exporter(html, self.filename, self.image_tag) except Exception, e: msg = "Error exporting HTML to %s\n" % self.filename + str(e) reply = QtGui.QMessageBox.warning(parent, 'Error', msg, QtGui.QMessageBox.Ok, QtGui.QMessageBox.Ok)
def __init__(self, options, parent=None): QtGui.QMainWindow.__init__(self, parent) self.options = options self.port = None self.default_rate = 100 self._buffer = '' self._serial_timer = QtCore.QTimer() self._serial_timer.timeout.connect(self._poll_serial) self._serial_timer.start(10) self._serial_state = self.STATE_LINE self._telemetry_records = {} self._schema_name = None self._config_tree_items = {} self._last_draw_time = 0.0 self.ui = ui_tview_main_window.Ui_TviewMainWindow() self.ui.setupUi(self) self.ui.configTreeWidget = SizedTreeWidget() self.ui.configDock.setWidget(self.ui.configTreeWidget) self.ui.telemetryTreeWidget = SizedTreeWidget() self.ui.telemetryDock.setWidget(self.ui.telemetryTreeWidget) self.ui.telemetryTreeWidget.itemExpanded.connect( self._handle_tree_expanded) self.ui.telemetryTreeWidget.itemCollapsed.connect( self._handle_tree_collapsed) self.ui.telemetryTreeWidget.setContextMenuPolicy( QtCore.Qt.CustomContextMenu) self.ui.telemetryTreeWidget.customContextMenuRequested.connect( self._handle_telemetry_context_menu) self.ui.configTreeWidget.setItemDelegateForColumn( 0, NoEditDelegate(self)) self.ui.configTreeWidget.itemExpanded.connect( self._handle_config_expanded) self.ui.configTreeWidget.itemChanged.connect( self._handle_config_item_changed) self.ui.plotItemRemoveButton.clicked.connect( self._handle_plot_item_remove) self.console = TviewConsoleWidget() self.console.ansi_codes = False self.console.line_input.connect(self._handle_user_input) self.ui.consoleDock.setWidget(self.console) self.tabifyDockWidget(self.ui.configDock, self.ui.telemetryDock) layout = QtGui.QVBoxLayout(self.ui.plotHolderWidget) layout.setContentsMargins(0, 0, 0, 0) layout.setSpacing(0) self.ui.plotHolderWidget.setLayout(layout) self.ui.plotWidget = PlotWidget(self.ui.plotHolderWidget) layout.addWidget(self.ui.plotWidget) def update_plotwidget(value): self.ui.plotWidget.history_s = value self.ui.historySpin.valueChanged.connect(update_plotwidget) self._config_callback = None QtCore.QTimer.singleShot(0, self._handle_startup)