Example #1
1
def show_info_dialog( caption, parent, initial_text ):
    dialog = QDialog( parent )
    dialog.setWindowTitle( caption )
    # Create OK and Cancel buttons in a horizontal box.
    ok_button = QPushButton("OK")
    ok_button.setDefault(True)
    ok_button.clicked.connect(dialog.accept)
    cancel_button = QPushButton("Cancel")
    cancel_button.setDefault(False)
    cancel_button.clicked.connect(dialog.reject)
    hbox = QHBoxLayout()
    hbox.addWidget(cancel_button,0)
    hbox.addStretch()
    hbox.addWidget(ok_button,0)
    # Lay out a Plain Text Edit above the buttons.
    vbox = QVBoxLayout()
    pt_editor = QPlainTextEdit()
    pt_editor.document().setPlainText( initial_text )
    vbox.addWidget(pt_editor,1)
    vbox.addLayout(hbox,0)
    dialog.setLayout(vbox)
    result = dialog.exec_()
    if result :
        return pt_editor.document().toPlainText()
    else :
        return None
Example #2
0
    def widgetImage(self):
        """Create main image display.
        """
        imageArea = QHBoxLayout()
        scroll = QScrollArea()
        scroll.setAlignment(QtCore.Qt.AlignCenter)
        self.imageLabel = QLabel(self)

        scroll.setWidget(self.imageLabel)
        next = QPushButton(self.tr('>'))
        next.clicked.connect(self.nextCluster)
        prev = QPushButton(self.tr('<'))
        prev.clicked.connect(self.prevCluster)
        imageArea.addWidget(prev)
        imageArea.addWidget(scroll)
        imageArea.addWidget(next)

        vbox = QVBoxLayout()
        self.clusterCountLabel = QLabel(self)
        self.clusterCountLabel.setAlignment(QtCore.Qt.AlignCenter)
        f = QtGui.QFont('Arial', 14, QtGui.QFont.Bold);
        self.clusterCountLabel.setFont(f)
        vbox.addWidget(self.clusterCountLabel)
        vbox.addLayout(imageArea)
        return vbox
Example #3
0
    def __init__(self):
        QMainWindow.__init__(self)
        self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
        self.setWindowTitle("程序主窗口")

        self.file_menu = QMenu('&File', self)
        self.file_menu.addAction('&Quit', self.fileQuit,
                                 QtCore.Qt.CTRL + QtCore.Qt.Key_Q)
        self.menuBar().addMenu(self.file_menu)

        self.help_menu = QMenu('&Help', self)
        self.menuBar().addSeparator()
        self.menuBar().addMenu(self.help_menu)

        self.help_menu.addAction('&About', self.about)

        self.main_widget = QWidget(self)

        l = QVBoxLayout(self.main_widget)
        sc = MyStaticMplCanvas(self.main_widget, width=5, height=4, dpi=100)
        dc = MyDynamicMplCanvas(self.main_widget, width=5, height=4, dpi=100)
        l.addWidget(sc)
        l.addWidget(dc)

        self.main_widget.setFocus()
        self.setCentralWidget(self.main_widget)
        # 状态条显示2秒
        self.statusBar().showMessage("matplotlib 万岁!", 2000)
Example #4
0
def add_to_layout(layout, *items):
    """Add items to QVBox and QHBox layouts easily.

    Keyword arguments:
    layout -- a layout oject (QVBoxLayout or QHBoxLayout) or a string
              if "v" or "h" create a QVBox or QHBox respectively
    *items -- list with items to be added
    """
    if isinstance(layout, str):
        if layout == "v":
            layout = QVBoxLayout()
        elif layout == "h":
            layout = QHBoxLayout()
        else:
            raise TypeError("Invalid layout!")

    for item in items:
        if isinstance(item, QWidget):
            layout.addWidget(item)
        elif isinstance(item, QLayout):
            layout.addLayout(item)
        elif isinstance(item, QSpacerItem):
            layout.addItem(item)
        elif item is None:
            layout.addStretch()
        else:
            raise TypeError("Argument of wrong type!")
    return layout
Example #5
0
class Bool(SimpleBlackbox):
    author = "DrLuke"
    name = "Bool"
    modulename = "drluke.builtin.bool"

    Category = ["Builtin"]

    placeable = True

    implementation = BoolImplementation

    def __init__(self, *args, **kwargs):
        super(Bool, self).__init__(*args, **kwargs)

        self.propertiesWidget = QWidget()

        self.vlayout = QVBoxLayout()
        self.toggle = QCheckBox("Output")
        self.toggle.toggled.connect(self.toggleTrueFalse)

        self.vlayout.addWidget(self.toggle)
        self.vlayout.addItem(QSpacerItem(40, 20, QSizePolicy.Minimum, QSizePolicy.Expanding))

        self.propertiesWidget.setLayout(self.vlayout)

    def toggleTrueFalse(self, bool):
        self.sendDataToImplementations(bool)

    def getPropertiesWidget(self):
        return self.propertiesWidget

    def defineIO(self):
        self.addOutput(bool, "boolout", "Bool out")
Example #6
0
    def __init__(self, *args):
        super().__init__(BrickletTemperatureV2, *args)

        self.tem = self.device

        self.cbe_temperature = CallbackEmulator(self.tem.get_temperature,
                                                None,
                                                self.cb_temperature,
                                                self.increase_error_count)

        self.current_temperature = CurveValueWrapper() # float, °C

        plots_temperature = [('Temperature', Qt.red, self.current_temperature, '{} °C'.format)]
        self.plot_widget_temperature = PlotWidget('Temperature [°C]', plots_temperature, y_resolution=0.01)

        self.enable_heater = QCheckBox("Enable Heater")
        self.enable_heater.stateChanged.connect(self.enable_heater_changed)

        layout_plot = QHBoxLayout()
        layout_plot.addWidget(self.plot_widget_temperature)

        layout_config = QHBoxLayout()
        layout_config.addStretch()
        layout_config.addWidget(self.enable_heater)
        layout_config.addStretch()

        layout_main = QVBoxLayout(self)
        layout_main.addLayout(layout_plot)
        layout_main.addLayout(layout_config)
Example #7
0
    def setup(self, theme, api=None):
        """
        Sets up the window.

        Defines the various attributes of the window and defines how the user
        interface is laid out.
        """
        self.theme = theme
        self.api = api if api else []
        # Give the window a default icon, title and minimum size.
        self.setWindowIcon(load_icon(self.icon))
        self.update_title()
        self.setMinimumSize(926, 600)

        self.widget = QWidget()
        self.splitter = QSplitter(Qt.Vertical)

        widget_layout = QVBoxLayout()
        self.widget.setLayout(widget_layout)

        self.button_bar = ButtonBar(self.widget)

        widget_layout.addWidget(self.button_bar)
        widget_layout.addWidget(self.splitter)
        self.tabs = FileTabs()
        self.splitter.addWidget(self.tabs)

        self.addWidget(self.widget)
        self.setCurrentWidget(self.widget)

        self.set_theme(theme)
        self.show()
        self.autosize_window()
Example #8
0
File: interface.py Project: asb/mu
    def setup(self, theme):
        """
        Sets up the window.

        Defines the various attributes of the window and defines how the user
        interface is laid out.
        """
        self.theme = theme
        # Give the window a default icon, title and minimum size.
        self.setWindowIcon(load_icon(self.icon))
        self.update_title()
        self.setMinimumSize(800, 600)

        self.widget = QWidget()
        self.splitter = QSplitter(Qt.Vertical)

        widget_layout = QVBoxLayout()
        self.widget.setLayout(widget_layout)

        self.button_bar = ButtonBar(self.widget)
        self.tabs = QTabWidget()
        self.tabs.setTabsClosable(True)
        self.tabs.tabCloseRequested.connect(self.tabs.removeTab)

        widget_layout.addWidget(self.button_bar)
        widget_layout.addWidget(self.splitter)

        self.splitter.addWidget(self.tabs)

        self.addWidget(self.widget)
        self.setCurrentWidget(self.widget)

        self.set_theme(theme)
        self.show()
        self.autosize_window()
Example #9
0
class GalleryDownloaderUrlExtracter(QWidget):

	url_emit = pyqtSignal(str)

	def __init__(self, parent=None):
		super().__init__(parent, flags=Qt.Window|Qt.WindowStaysOnTopHint)
		self.main_layout = QVBoxLayout(self)
		self.text_area = QPlainTextEdit(self)
		self.text_area.setPlaceholderText("URLs are seperated by a newline")
		self.main_layout.addWidget(self.text_area)
		self.text_area.setWordWrapMode(QTextOption.NoWrap)
		add_to_queue = QPushButton('Add to queue')
		add_to_queue.adjustSize()
		add_to_queue.setFixedWidth(add_to_queue.width())
		add_to_queue.clicked.connect(self.add_to_queue)
		self.main_layout.addWidget(add_to_queue, 0, Qt.AlignRight)
		self.setWindowIcon(QIcon(app_constants.APP_ICO_PATH))
		self.show()

	def add_to_queue(self):
		txt = self.text_area.document().toPlainText()
		urls = txt.split('\n')
		for u in urls:
			if u:
				self.url_emit.emit(u)
		self.close()
Example #10
0
    def virtual_keyboard(self, i, pw):
        i = i % 3
        if i == 0:
            chars = 'abcdefghijklmnopqrstuvwxyz '
        elif i == 1:
            chars = 'ABCDEFGHIJKLMNOPQRTSUVWXYZ '
        elif i == 2:
            chars = '1234567890!?.,;:/%&()[]{}+-'

        n = len(chars)
        s = []
        for i in range(n):
            while True:
                k = random.randint(0, n - 1)
                if k not in s:
                    s.append(k)
                    break

        def add_target(t):
            return lambda: pw.setText(str(pw.text()) + t)

        vbox = QVBoxLayout()
        grid = QGridLayout()
        grid.setSpacing(2)
        for i in range(n):
            l_button = QPushButton(chars[s[i]])
            l_button.setFixedWidth(25)
            l_button.setFixedHeight(25)
            l_button.clicked.connect(add_target(chars[s[i]]))
            grid.addWidget(l_button, i // 6, i % 6)

        vbox.addLayout(grid)

        return vbox
Example #11
0
    def btnModifyTableStruct_Clicked(self,event):
        self.dlg=QDialog(self)
        self.dlg.setWindowTitle(self.CurrentTable+'表结构修改:')
        self.dlg.setWindowFlags(Qt.Window|
                           Qt.MSWindowsFixedSizeDialogHint
                           )
        #lay
        lay=QVBoxLayout()
        self.dlgMake_AddColumn(lay)
        self.dlgMake_RenameColumn(lay)
        self.dlgMake_ModifyColumnType(lay)
        self.dlgMake_ModifyColumnConstraint(lay)
        #layLists
        layLists=QHBoxLayout()
        lay.addLayout(layLists)
        self.dlgMake_DeleteColumn(layLists)
        self.dlgMake_OrderColumns(layLists)
        ##layBtns
        layBtns=QHBoxLayout()
        lay.addLayout(layBtns)
        ##btnOk
        btnOk=QPushButton('提交修改')
        btnOk.clicked.connect(self.btnOk_Clicked)
        layBtns.addWidget(btnOk)
        ##btnCancel
        btnCancel=QPushButton('放弃修改')
        btnCancel.clicked.connect(self.btnCancel_Clicked)
        layBtns.addWidget(btnCancel)

        self.dlg.setLayout(lay)
        self.dlg.open()
Example #12
0
 def dlgMake_OrderColumns(self,lay=None):
     if lay is None:
         self.dlg=QDialog(self)
         self.dlg.setWindowTitle('调整列顺序:')
     else:
         ##self.grpAdjustColumnOrder
         self.grpAdjustColumnOrder=QGroupBox('调整列顺序:')
         self.grpAdjustColumnOrder.setCheckable(True)
         self.grpAdjustColumnOrder.setChecked(False)
         lay.addWidget(self.grpAdjustColumnOrder)
     ###layAdjustColumnOrder
     layAdjustColumnOrder=QVBoxLayout()
     if lay is None:
         self.dlg.setLayout(layAdjustColumnOrder)
     else:
         self.grpAdjustColumnOrder.setLayout(layAdjustColumnOrder)
     ####lblAdjustColumnOrder
     lblAdjustColumnOrder=QLabel('请调整列顺序:')
     layAdjustColumnOrder.addWidget(lblAdjustColumnOrder)
     ####self.lstAdjustColumnOrder
     self.lstAdjustColumnOrder=QListWidget()
     self.lstAdjustColumnOrder.addItems(self.columnsName)
     self.lstAdjustColumnOrder.setFixedWidth(150)
     layAdjustColumnOrder.addWidget(self.lstAdjustColumnOrder)
     if lay is None:
         self.dlg.setFixedWidth(175)
         self.dlg.show()
Example #13
0
class NavigationBar(QWidget):

    itemName = ['A', 'B', 'C', 'D', 'E']

    def __init__(self, parent):
        super().__init__(parent)

        self.initUI()

    def initUI(self):
        self.setObjectName("naviBar")

        sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(1)
        sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth())
        self.setSizePolicy(sizePolicy)

        self.vboxList = QVBoxLayout(self)
        self.vboxList.setContentsMargins(0, 0, 0, 0)
        self.vboxList.setSpacing(6)
        self.initBtnList(self.vboxList)

    def initBtnList(self, vBox):
        for name in self.itemName:
            btn = QPushButton(name, self)
            vBox.addWidget(btn)
Example #14
0
    def createTreeView(self):
        dockWidget = QDockWidget()
        dockWidget.setAllowedAreas(Qt.LeftDockWidgetArea)
        dockWidget.setFeatures(QDockWidget.NoDockWidgetFeatures)
        dockWidget.setTitleBarWidget(QWidget())
        self.treeView = QTreeView()
        self.treeView.clicked.connect(self.treeItemClicked)
        self.treeModel = TreeModel()
        self.treeView.setModel(self.treeModel)

        self.logo = QLabel()
        logoPixmap = QPixmap(CMAKE_INSTALL_PREFIX + '/share/jderobot/resources/jderobot.png')
        self.logo.setPixmap(logoPixmap)

        self.upButton = QPushButton()
        self.upButton.setText('Up')
        self.upButton.clicked.connect(self.upButtonClicked)

        leftContainer = QWidget()
        leftLayout = QVBoxLayout()
        leftLayout.addWidget(self.treeView)
        leftLayout.addWidget(self.upButton)
        leftLayout.addWidget(self.logo)
        leftContainer.setLayout(leftLayout)

        dockWidget.setWidget(leftContainer)
        self.addDockWidget(Qt.LeftDockWidgetArea, dockWidget)
Example #15
0
 def __init__(self, citylist, accurate_url, appid, parent=None):
     super(CityListDlg, self).__init__(parent)
     self.citylist = citylist
     self.accurate_url = accurate_url
     self.appid = appid
     self.listWidget = QListWidget()
     self.listWidget.addItems(self.citylist)
     buttonLayout = QVBoxLayout()
     self.buttonBox = QDialogButtonBox()
     self.buttonBox.setOrientation(Qt.Horizontal)
     self.buttonBox.setStandardButtons(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
     self.buttonBox.rejected.connect(self.reject)
     self.buttonBox.accepted.connect(self.accept)
     layoutT = QVBoxLayout()
     layout = QHBoxLayout()
     layout.addWidget(self.listWidget)
     layout.addLayout(buttonLayout)
     for text, slot in ((self.tr("&Add..."), self.add),
                        (self.tr("&Remove..."), self.remove),
                        (self.tr("&Up"), self.up),
                        (self.tr("&Down"), self.down),
                        (self.tr("De&fault"), self.default),
                        (self.tr("&Sort"), self.listWidget.sortItems)):
         button = QPushButton(text)
         buttonLayout.addWidget(button)
         button.clicked.connect(slot)
     buttonLayout.addWidget(self.buttonBox)
     self.status = QLabel()
     layoutT.addLayout(layout)
     layoutT.addWidget(self.status)
     self.setLayout(layoutT)
     self.checklength()
Example #16
0
class dailyTab(QWidget):
    def __init__(self):
        super().__init__()
        # Виджет для дейлков
        # Содержит содержит главный таб виджет для дейликов
        self.tab = QTabWidget()

        self.vbox = QVBoxLayout()
        self.vbox.addWidget(self.tab)
        self.setLayout(self.vbox)

        self.threads = []
        # При ините создаём тред для получения дейликов
        self.loadDataThread = loadDataThread(r'https://api.guildwars2.com/v2/achievements/daily')
        self.loadDataThread.signal.connect(self.getEvent, Qt.QueuedConnection)
        self.loadDataThread.start()

    def getEvent(self, signal):
        signal = json.loads(signal)
        for metaEvent in signal.keys():
            setattr(self,metaEvent,frame())
            self.tab.addTab(getattr(self,metaEvent),metaEvent)
            for event in signal[metaEvent]:
                if (event['level']['max'] == 80 and metaEvent == 'pve') or metaEvent != 'pve':
                    getattr(self,metaEvent).getEvent(event)

    def addTab(self, event, metaEvent):
        getattr(self,'{}Tab'.format(metaEvent)).addEvent(event)

        self.resize(self.grid.sizeHint())
Example #17
0
class frame(QWidget):
    def __init__(self):
        super().__init__()
        self.vbox = QVBoxLayout()

        self.setLayout(self.vbox)

        self.threads = []

    def getEvent(self, event):
        self.threads.append(loadDataThread(r'https://api.guildwars2.com/v2/achievements?id='+str(event['id'])))
        self.threads[-1].signal.connect(self.addEvent, Qt.QueuedConnection)
        self.threads[-1].start()

    def addEvent(self, signal):
        signal = json.loads(signal)
        print(type(signal))
        setattr(self,str(signal['id']),label(signal))
        getattr(self,str(signal['id'])).setText(signal['name'])
        getattr(self, str(signal['id'])).signal.connect(self.setEventWindow)
        self.vbox.addWidget(getattr(self,str(signal['id'])))
        # self.resize(self.grid.sizeHint())

    def setEventWindow(self, event):
        self.eventWindow = eventWindow(event)
        self.eventWindow.show()
Example #18
0
def main(args):
    app = QApplication([])

    main_frame = QFrame()

    layout = QVBoxLayout(main_frame)

    number_edit = PyQtExtras.NumberEdit()
    number_edit.set_value(10)
    print "Current value of 1 is: " + str(number_edit.get_value())

    number_edit2 = PyQtExtras.NumberEdit(max_length=2)
    number_edit2.set_value(2)
    print "Current value of 2 is: " + str(number_edit2.get_value())
    number_edit2.set_value(20)
    print "Current value of 2 is: " + str(number_edit2.get_value())

    number_edit3 = PyQtExtras.NumberEdit(max_length=1)
    number_edit3.set_value(2)
    print "Current value of 3 is: " + str(number_edit3.get_value())
    number_edit3.set_value(50)
    print "Current values of 3 is: " + str(number_edit3.get_value())
    number_edit3.set_value(25)
    print "Current value of 3 is: " + str(number_edit3.get_value())
    number_edit3.set_value("text")
    print "Current value of 3 is: " + str(number_edit3.get_value())

    layout.addWidget(number_edit)
    layout.addWidget(number_edit2)
    layout.addWidget(number_edit3)

    main_frame.show()

    app.exec_()
 def __init__(self,  page,  parent=None):
     super(HelpForm, self).__init__(parent)
     self.setAttribute(Qt.WA_DeleteOnClose)
     self.setWindowModality(Qt.WindowModal)
     # actions
     backAction = QAction(QIcon(":/back.png"), "&Back", self)
     backAction.setShortcut(QKeySequence.Back)
     homeAction = QAction(QIcon(":/home.png"), "&Home", self)
     homeAction.setShortcut("Home")
     self.pageLabel = QLabel()
     #toolbar
     toolBar = QToolBar()
     toolBar.addAction(backAction)
     toolBar.addAction(homeAction)
     toolBar.addWidget(self.pageLabel)
     self.textBrowser = QTextBrowser()
     # layout
     layout = QVBoxLayout()
     layout.addWidget(toolBar)
     layout.addWidget(self.textBrowser, 1)
     self.setLayout(layout)
     # signals and slots
     backAction.triggered.connect(self.textBrowser.backward)
     homeAction.triggered.connect(self.textBrowser.home)
     self.textBrowser.sourceChanged.connect(self.updatePageTitle)
     self.textBrowser.setSearchPaths([":/help"])
     self.textBrowser.setSource(QUrl(page))
     self.resize(400, 600)
     self.setWindowTitle("{0} Help".format(
         QApplication.applicationName()))
Example #20
0
class LeftPanel(FFrame):
    def __init__(self, app, parent=None):
        super().__init__(parent)
        self._app = app

        self.library_panel = LP_LibraryPanel(self._app)
        self.playlists_panel = LP_PlaylistsPanel(self._app)

        self._layout = QVBoxLayout(self)
        self.setLayout(self._layout)
        self.setObjectName('c_left_panel')
        self.set_theme_style()
        self.setup_ui()

    def set_theme_style(self):
        theme = self._app.theme_manager.current_theme
        style_str = '''
            #{0} {{
                background: transparent;
            }}
        '''.format(self.objectName(),
                   theme.color5.name())
        self.setStyleSheet(style_str)

    def setup_ui(self):
        self._layout.setContentsMargins(0, 0, 0, 0)
        self._layout.setSpacing(0)

        self._layout.addWidget(self.library_panel)
        self._layout.addWidget(self.playlists_panel)
        self._layout.addStretch(1)
Example #21
0
class RightPanel_Container(FScrollArea):
    def __init__(self, app, parent=None):
        super().__init__(parent)
        self._app = app

        self.right_panel = RightPanel(self._app)
        self._layout = QVBoxLayout(self)
        self.setWidget(self.right_panel)

        self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.setWidgetResizable(True)

        self.setObjectName('c_left_panel')
        self.set_theme_style()
        self.setup_ui()

    def set_theme_style(self):
        theme = self._app.theme_manager.current_theme
        style_str = '''
            #{0} {{
                background: transparent;
                border: 0px;
            }}
        '''.format(self.objectName(),
                   theme.color5.name())
        self.setStyleSheet(style_str)

    def setup_ui(self):
        self._layout.setContentsMargins(0, 0, 0, 0)
        self._layout.setSpacing(0)
Example #22
0
 def _createPlotWidget(self):
     self._plotWidget = QWidget()
     self._plotFigure = Figure()
     self._plotCanvas = FigureCanvas(self._plotFigure)
     self._plotCanvas.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
     self._plotCanvas.updateGeometry()
     self._plotCanvas.setParent(self._plotWidget)
     self._plotCanvas.mpl_connect('scroll_event', self._onScroll)
     self._plotFigure.set_canvas(self._plotCanvas)
     # Vm and command voltage go in the same subplot
     self._vm_axes = self._plotFigure.add_subplot(2,2,1, title='Membrane potential')
     self._vm_axes.set_ylim(-20.0, 120.0)
     # Channel conductances go to the same subplot
     self._g_axes = self._plotFigure.add_subplot(2,2,2, title='Channel conductance')
     self._g_axes.set_ylim(0.0, 0.5)
     # Injection current for Vclamp/Iclamp go to the same subplot
     self._im_axes = self._plotFigure.add_subplot(2,2,3, title='Injection current')
     self._im_axes.set_ylim(-0.5, 0.5)
     # Channel currents go to the same subplot
     self._i_axes = self._plotFigure.add_subplot(2,2,4, title='Channel current')
     self._i_axes.set_ylim(-10, 10)
     for axis in self._plotFigure.axes:
         axis.set_autoscale_on(False)
     layout = QVBoxLayout()
     layout.addWidget(self._plotCanvas)
     self._plotNavigator = NavigationToolbar(self._plotCanvas, self._plotWidget)
     layout.addWidget(self._plotNavigator)
     self._plotWidget.setLayout(layout)
Example #23
0
class LayerListDialog(QDialog):
    def __init__(self, parent):
        QDialog.__init__(self, parent)

        # add a button box
        self.layout = QVBoxLayout()

        self.layer_list = LayerListWidget(self)
        self.button_box = QDialogButtonBox(self)
        self.button_box.setOrientation(Qt.Horizontal)
        self.button_box.setStandardButtons(QDialogButtonBox.Cancel | QDialogButtonBox.Ok)
        self.button_box.accepted.connect(self.accept)
        self.button_box.rejected.connect(self.reject)

        self.layout.addWidget(self.layer_list)
        self.layout.addWidget(self.button_box)

        self.setLayout(self.layout)

    def set_labeling_model(self, model):
        self.layer_list.set_model(model)

    def exec_(self):
        self.layer_list.update_from_layers()
        return QDialog.exec_(self)

    def accept(self):
        # update layers
        self.layer_list.update_labeling_from_list()
        QDialog.accept(self)
Example #24
0
 def message_dialog(self, msg):
     self.clear_dialog()
     self.dialog = dialog = WindowModalDialog(self.top_level_window(), _("Coldcard Status"))
     l = QLabel(msg)
     vbox = QVBoxLayout(dialog)
     vbox.addWidget(l)
     dialog.show()
Example #25
0
class ScrollAreaWidget(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.parent = parent

         #Container Widget
        widget = QWidget()
        #Layout of Container Widget
        self.layout = QVBoxLayout(self)
        widget.setLayout(self.layout)

        #Scroll Area Properties
        self.scroll = QScrollArea()
        self.scroll.setWidgetResizable(False)
        self.scroll.setWidget(widget)

        #Scroll Area Layer add
        scroll_layout = QVBoxLayout(self)
        scroll_layout.addWidget(self.scroll)
        self.setLayout(scroll_layout)

    def add_widget_item(self, widget_item):
        self.layout.addWidget(widget_item)
        widget_item.show()

        widget = QWidget()
        widget.setLayout(self.layout)
        self.scroll.setWidget(widget)
Example #26
0
    def __init__(self, parent=None):
        super(MeasurementsWidget, self).__init__(parent)

        self.offset = 0
        self.limit = PaginatorTableWidget.PAGE_ROW_COUNT
        self._filter = {}

        self.filtering = FilteringWidget()
        self.filtering.filterChanged.connect(self.on_filterChanged)

        self.table = PaginatorTableWidget()
        self.table.layout().setContentsMargins(0, 0, 0, 0)
        self.table.setPageRowCount(self.limit)
        self.table.requestData.connect(self.on_table_requestData)
        self.table.setColumnHeaders(['Datum a čas', 'Hodnota 1', 'Hodnota 2',
            'Rozdíl hodnot', 'Přístroj', 'Odchylka'])
        header = self.table.table.horizontalHeader()
        header.resizeSection(0, 190)
        header.resizeSection(1, 110)
        header.resizeSection(2, 110)
        header.resizeSection(3, 110)
        header.resizeSection(4, 160)

        layout = QVBoxLayout()
        layout.addWidget(self.filtering)
        layout.addWidget(self.table)
        self.setLayout(layout)
Example #27
0
    def __init__(self, parent=None):
        super(ResultHandler, self).__init__()
        self.setWindowTitle('Dash results')
        self.control_label = QLabel()
        self.rendered_label = QLabel()
        self.diff_label = QLabel()

        self.mask_label = QLabel()
        self.new_mask_label = QLabel()

        self.scrollArea = QScrollArea()
        self.widget = QWidget()

        self.test_name_label = QLabel()
        grid = QGridLayout()
        grid.addWidget(self.test_name_label, 0, 0)
        grid.addWidget(QLabel('Control'), 1, 0)
        grid.addWidget(QLabel('Rendered'), 1, 1)
        grid.addWidget(QLabel('Difference'), 1, 2)
        grid.addWidget(self.control_label, 2, 0)
        grid.addWidget(self.rendered_label, 2, 1)
        grid.addWidget(self.diff_label, 2, 2)
        grid.addWidget(QLabel('Current Mask'), 3, 0)
        grid.addWidget(QLabel('New Mask'), 3, 1)
        grid.addWidget(self.mask_label, 4, 0)
        grid.addWidget(self.new_mask_label, 4, 1)

        self.widget.setLayout(grid)
        self.scrollArea.setWidget(self.widget)
        v_layout = QVBoxLayout()
        v_layout.addWidget(self.scrollArea, 1)

        next_image_button = QPushButton()
        next_image_button.setText('Skip')
        next_image_button.pressed.connect(self.load_next)

        self.overload_spin = QDoubleSpinBox()
        self.overload_spin.setMinimum(1)
        self.overload_spin.setMaximum(255)
        self.overload_spin.setValue(1)
        self.overload_spin.valueChanged.connect(lambda: save_mask_button.setEnabled(False))

        preview_mask_button = QPushButton()
        preview_mask_button.setText('Preview New Mask')
        preview_mask_button.pressed.connect(self.preview_mask)
        preview_mask_button.pressed.connect(lambda: save_mask_button.setEnabled(True))

        save_mask_button = QPushButton()
        save_mask_button.setText('Save New Mask')
        save_mask_button.pressed.connect(self.save_mask)

        button_layout = QHBoxLayout()
        button_layout.addWidget(next_image_button)
        button_layout.addWidget(QLabel('Mask diff multiplier:'))
        button_layout.addWidget(self.overload_spin)
        button_layout.addWidget(preview_mask_button)
        button_layout.addWidget(save_mask_button)
        button_layout.addStretch()
        v_layout.addLayout(button_layout)
        self.setLayout(v_layout)
Example #28
0
    def __init__(self, parent=None):
        super(ToolOffsetDialog, self).__init__(parent)
        self._color = QColor(0, 0, 0, 150)
        self._state = False
        self.setWindowModality(Qt.ApplicationModal)
        self.setWindowFlags(self.windowFlags() | Qt.Tool |
                            Qt.Dialog |
                            Qt.WindowStaysOnTopHint | Qt.WindowSystemMenuHint)
        self.setMinimumSize(200, 200)
        buttonBox = QDialogButtonBox()
        buttonBox.setEnabled(False)
        STATUS.connect('not-all-homed', lambda w, axis: buttonBox.setEnabled(False))
        STATUS.connect('all-homed', lambda w: buttonBox.setEnabled(True))
        STATUS.connect('state-estop', lambda w: buttonBox.setEnabled(False))
        STATUS.connect('state-estop-reset', lambda w: buttonBox.setEnabled(STATUS.machine_is_on()
                                                                           and STATUS.is_all_homed()))
        for i in('X', 'Y', 'Z'):
            b = 'button_%s' % i
            self[b] = QPushButton('Zero %s' % i)
            self[b].clicked.connect(self.zeroPress('%s' % i))
            buttonBox.addButton(self[b], 3)

        v = QVBoxLayout()
        h = QHBoxLayout()
        self._o = TOOLVIEW_WIDGET()
        self._o._hal_init()
        self.setLayout(v)
        v.addWidget(self._o)
        b = QPushButton('OK')
        b.clicked.connect(lambda: self.close())
        h.addWidget(b)
        h.addWidget(buttonBox)
        v.addLayout(h)
        self.setModal(True)
    def __init__(self, opPixelClassification, parent):
        super( QDialog, self ).__init__(parent=parent)
        self._op = opPixelClassification
        classifier_listwidget = QListWidget(parent=self)
        classifier_listwidget.setSelectionMode( QListWidget.SingleSelection )

        classifier_factories = self._get_available_classifier_factories()
        for name, classifier_factory in list(classifier_factories.items()):
            item = QListWidgetItem( name )
            item.setData( Qt.UserRole, classifier_factory )
            classifier_listwidget.addItem(item)

        buttonbox = QDialogButtonBox( Qt.Horizontal, parent=self )
        buttonbox.setStandardButtons( QDialogButtonBox.Ok | QDialogButtonBox.Cancel )
        buttonbox.accepted.connect( self.accept )
        buttonbox.rejected.connect( self.reject )
        
        layout = QVBoxLayout()
        layout.addWidget( classifier_listwidget )
        layout.addWidget( buttonbox )

        self.setLayout(layout)
        self.setWindowTitle( "Select Classifier Type" )
        
        # Save members
        self._classifier_listwidget = classifier_listwidget
Example #30
0
    def init(self):

        vbox = QVBoxLayout()
        self.setLayout(vbox)

        text = QLineEdit('0.')
        text.setReadOnly(True)
        vbox.addWidget(text)

        grid = QGridLayout()
        vbox.addLayout(grid)

        names = ['Exit', 'AC', 'DEL', '+/-',
                 '7', '8', '9', '/',
                 '4', '5', '6', '*',
                 '1', '2', '3', '-',
                 '0', '.', '=', '+']

        positions = [(i, j) for i in range(5) for j in range(4)]

        for position, name in zip(positions, names):
            btn = QPushButton(name)
            grid.addWidget(btn, *position)

        self.move(300, 200)
        self.setWindowTitle('Calculator')
        self.show()
Example #31
0
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Linha")
        self.setGeometry(300, 300, 200, 100)
        layout = QVBoxLayout()

        self.coordenadaX1 = QLineEdit()
        self.coordenadaY1 = QLineEdit()
        self.coordenadaX2 = QLineEdit()
        self.coordenadaY2 = QLineEdit()
        self.colorLine = QLineEdit()

        layout.addWidget(QLabel('Coordenada X1:'))
        layout.addWidget(self.coordenadaX1)
        layout.addWidget(QLabel('Coordenada Y1:'))
        layout.addWidget(self.coordenadaY1)
        layout.addWidget(QLabel('Coordenada X2:'))
        layout.addWidget(self.coordenadaX2)
        layout.addWidget(QLabel('Coordenada Y2:'))
        layout.addWidget(self.coordenadaY2)
        layout.addWidget(QLabel('Color: r,g,b (between 0 and 255)'))
        layout.addWidget(self.colorLine)

        self.Confirma = QPushButton('Confirmar')
        self.Confirma.setStyleSheet('font-size: 30px')
        layout.addWidget(self.Confirma)
        self.Confirma.clicked.connect(self.printXeY)
        self.setLayout(layout)

        self.limpar = QPushButton('Limpar')
        self.limpar.setStyleSheet('font-size: 15px')
        layout.addWidget(self.limpar)
        self.limpar.clicked.connect(self.clearLabels)
        self.setLayout(layout)
Example #32
0
class WaterfallPlotter(QWidget):

    generated_rectangles_signal = QtCore.pyqtSignal(
        list)  #send list of rects for data display in tree

    def __init__(self, parent):
        super(WaterfallPlotter, self).__init__(parent)

        self.figure = plt.figure()
        self.canvas = FigureCanvas(self.figure)

        self.toolbar = NavigationToolbar(self.canvas, self)

        self.btn_plot = QPushButton('Default Plot')
        self.btn_plot.clicked.connect(self.default_plot)

        self.layout = QVBoxLayout()
        self.layout.addWidget(self.toolbar)
        self.layout.addWidget(self.canvas)
        self.layout.addWidget(self.btn_plot)
        self.setLayout(self.layout)

    def on_waterfall_data_signal(self, signal):
        self.waterfall_data = signal['waterfall_data']  #pandas dataframe
        self.btn_plot.setEnabled(True)

    def on_general_settings_signal(self, signal):
        try:
            hasattr(self, 'ax')
            self.ax.set_title(signal[0])
            self.ax.set_xlabel(signal[1])
            self.ax.set_ylabel(signal[2])
            self.canvas.draw()
        except Exception as e:
            print(e)

    def default_plot(self):
        '''
        Plot waterfall data
        '''
        self.figure.clear()
        self.rect_locations = np.arange(
            len(self.waterfall_data['Best response percent change']))
        self.ax = self.figure.add_subplot(111)
        self.ax.axhline(y=20,
                        linestyle='--',
                        c='k',
                        alpha=0.5,
                        lw=2.0,
                        label='twenty_percent')
        self.ax.axhline(y=-30,
                        linestyle='--',
                        c='k',
                        alpha=0.5,
                        lw=2.0,
                        label='thirty_percent')
        self.ax.axhline(y=0, c='k', alpha=1, lw=2.0, label='zero_percent')
        self.ax.grid(color='k', axis='y', alpha=0.25)
        self.rects = self.ax.bar(
            self.rect_locations,
            self.waterfall_data['Best response percent change'],
            label=self.waterfall_data['Patient number'])
        self.auto_label_responses(self.ax, self.rects, self.waterfall_data)
        #self.plot_table()
        self.canvas.draw()
        self.ax.hold(False)  #rewrite the plot when plot() called
        self.generated_rectangles_signal.emit([self.rects])

    def plot_table(self):
        rows = ['%s' % x for x in self.waterfall_data.keys()]
        rows = rows[
            4:]  #skip first three, they are the 4 standard headers, rest are table rows
        columns = self.waterfall_data['Patient number']  #patient numbers
        cell_text = []
        for row in rows:
            cell_text_temp = []
            for col in range(len(columns)):
                cell_text_temp.append(self.waterfall_data[row][col])
            cell_text.append(cell_text_temp)
        the_table = plt.table(cellText=cell_text,
                              rowLabels=rows,
                              colLabels=columns,
                              loc='bottom',
                              cellLoc='center')
        plt.subplots_adjust(bottom=0.15, left=0.5)
        self.ax.set_xlim(-0.5, len(columns) - 0.5)
        plt.tick_params(
            axis='x',  # changes apply to the x-axis
            which='both',  # both major and minor ticks are affected
            bottom='off',  # ticks along the bottom edge are off
            top='off',  # ticks along the top edge are off
            labelbottom='off')  # labels along the bottom edge are off

    def update_plot(self):
        '''
        TODO
        '''
        pass

    def auto_label_responses(self, ax, rects, waterfall_data):
        '''Add labels above/below bars'''
        i = 0
        for rect in rects:
            height = rect.get_height()
            if height >= 0:
                valign = 'bottom'
            else:
                valign = 'top'

            ax.text(rect.get_x() + rect.get_width() / 2.,
                    height,
                    '%s' % waterfall_data['Overall response'][i],
                    ha='center',
                    va=valign)
            i += 1
Example #33
0
    def __init__(self):
        QWidget.__init__(self, None)

        self.setMinimumSize(600, 400)

        # Create two labels and a button
        self.vertLabel = QLabel("Vertex code", self)
        self.fragLabel = QLabel("Fragment code", self)
        self.theButton = QPushButton("Compile!", self)
        self.theButton.clicked.connect(self.on_compile)

        # Create two editors
        self.vertEdit = TextField(self)
        self.vertEdit.setPlainText(VERT_CODE)
        self.fragEdit = TextField(self)
        self.fragEdit.setPlainText(FRAG_CODE)

        # Create a canvas
        self.canvas = Canvas(parent=self)

        # Layout
        hlayout = QHBoxLayout(self)
        self.setLayout(hlayout)
        vlayout = QVBoxLayout()
        #
        hlayout.addLayout(vlayout, 1)
        hlayout.addWidget(self.canvas.native, 1)
        #
        vlayout.addWidget(self.vertLabel, 0)
        vlayout.addWidget(self.vertEdit, 1)
        vlayout.addWidget(self.fragLabel, 0)
        vlayout.addWidget(self.fragEdit, 1)
        vlayout.addWidget(self.theButton, 0)

        self.show()
Example #34
0
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setSubTitle(self.tr("<h2>Congratulations!</h2>"))

        self.homepage_url = "http://www.pisilinux.org"
        self.forum_url = "http://forum.pisilinux.org"
        self.wiki_url = "http://wiki.pisilinux.org"

        vlayout = QVBoxLayout(self)

        label = QLabel(self)
        label.setWordWrap(True)
        label.setText(
            self.
            tr("<p><strong>Your settings have been applied.</strong> Now you can start enjoying Pisi Linux \
        or you can and support. Don't forget to <strong>join our community!<strong></p>"
               ))
        vlayout.addWidget(label)

        vlayout.addItem(
            QSpacerItem(20, 40, QSizePolicy.Preferred, QSizePolicy.Preferred))

        groupBox1 = QGroupBox()
        groupBox1.setTitle(self.tr("System Settings"))
        groupBox1.setMinimumHeight(150)

        groupHLayout1 = QHBoxLayout(groupBox1)
        groupLabelImage = QLabel()
        groupLabelImage.setPixmap(
            QIcon.fromTheme("preferences-system").pixmap(64, 64))
        groupLabelImage.setMaximumSize(64, 64)
        groupHLayout1.addWidget(groupLabelImage)
        groupLabel1 = QLabel()
        groupLabel1.setWordWrap(True)
        groupLabel1.setText(
            self.
            tr("<p>Configuration tools for Pisi Linux such as the display, firewall, keyboard, user manager...</p>"
               ))
        groupButton1 = QPushButton()
        groupButton1.setMaximumWidth(200)
        groupButton1.setText(self.tr("System Settings"))

        groupHLayout1.addWidget(groupLabel1)
        groupHLayout1.addItem(
            QSpacerItem(40, 20, QSizePolicy.Preferred, QSizePolicy.Preferred))
        groupHLayout1.addWidget(groupButton1)

        vlayout.addWidget(groupBox1)

        vlayout.addItem(
            QSpacerItem(20, 40, QSizePolicy.Preferred, QSizePolicy.Preferred))

        groupBox2 = QGroupBox()
        groupBox2.setTitle(self.tr("Help and Support"))
        groupBox2.setMinimumHeight(150)

        groupHLayout2 = QHBoxLayout(groupBox2)
        groupLabelImage2 = QLabel()
        groupLabelImage2.setPixmap(
            QIcon.fromTheme("system-help").pixmap(64, 64))
        groupHLayout2.addWidget(groupLabelImage2)
        groupLabelImage2.setMaximumSize(64, 64)
        groupLabel2 = QLabel()
        groupLabel2.setWordWrap(True)
        groupLabel2.setText(
            self.
            tr("<p>Pisi Linux community, mailing lists, chat rooms, Wiki documents, help and support pages...</p>"
               ))
        groupButton2 = QPushButton()
        groupButton2.setMaximumWidth(200)
        groupButton2.setText(self.tr("Help and Support"))

        groupHLayout2.addWidget(groupLabel2)
        groupHLayout2.addItem(
            QSpacerItem(40, 20, QSizePolicy.Preferred, QSizePolicy.Preferred))
        groupHLayout2.addWidget(groupButton2)

        vlayout.addWidget(groupBox2)

        vlayout.addItem(
            QSpacerItem(20, 40, QSizePolicy.Preferred, QSizePolicy.Preferred))

        groupButton2.clicked.connect(self.helpPagesOpen)
        groupButton1.clicked.connect(self.systemSettingsOpen)
Example #35
0
 def setupUi(self, PropDetailsDlg):
     PropDetailsDlg.setModal(True)
     layout = QVBoxLayout(PropDetailsDlg)
     layout.setContentsMargins(10, 15, 10, 10)
     name = QLabel("<b><i>%s</i></b>" % PropDetailsDlg.data.name)
     name.setAlignment(Qt.AlignCenter)
     layout.addWidget(name)
     body = QFormLayout()
     body.setLabelAlignment(Qt.AlignRight)
     body.setVerticalSpacing(20)
     body.setContentsMargins(25, 10, 25, 30)
     link = "<a href='%s'>%s</a>" % (PropDetailsDlg.data.URL,
                                     PropDetailsDlg.data.URL)
     link_label = QLabel(link)
     link_label.setOpenExternalLinks(True)
     body.addRow(QLabel("<b>URL: </b>"), link_label)
     body.addRow(QLabel("<b>TotalPayment: </b>"),
                 QLabel(str(PropDetailsDlg.data.ToalPayment)))
     body.addRow(QLabel("<b>MonthlyPayment: </b>"),
                 QLabel(str(PropDetailsDlg.data.MonthlyPayment)))
     hashLabel = self.selectable_line(PropDetailsDlg.data.Hash)
     body.addRow(QLabel("<b>Hash: </b>"), hashLabel)
     feeHashLabel = self.selectable_line(PropDetailsDlg.data.FeeHash)
     body.addRow(QLabel("<b>FeeHash: </b>"), feeHashLabel)
     body.addRow(QLabel("<b>BlockStart: </b>"),
                 QLabel(str(PropDetailsDlg.data.BlockStart)))
     body.addRow(QLabel("<b>BlockEnd: </b>"),
                 QLabel(str(PropDetailsDlg.data.BlockEnd)))
     body.addRow(QLabel("<b>TotalPayCount: </b>"),
                 QLabel(str(PropDetailsDlg.data.TotalPayCount)))
     body.addRow(QLabel("<b>RemainingPayCount: </b>"),
                 QLabel(str(PropDetailsDlg.data.RemainingPayCount)))
     addyLabel = self.selectable_line(PropDetailsDlg.data.PaymentAddress)
     body.addRow(QLabel("<b>PaymentAddress: </b>"), addyLabel)
     votes = "<span style='color: green'>%d YEAS</span> / " % PropDetailsDlg.data.Yeas
     votes += "<span style='color: orange'>%d ABSTAINS</span> / " % PropDetailsDlg.data.Abstains
     votes += "<span style='color: red'>%d NAYS</span>" % PropDetailsDlg.data.Nays
     body.addRow(QLabel("<b>Votes: </b>"), QLabel(votes))
     my_yeas = [
         "%s <em style='color: green'>(%s)</em>" %
         (x[0], strftime('%Y-%m-%d %H:%M:%S', gmtime(x[1][1])))
         for x in PropDetailsDlg.data.MyYeas
     ]
     body.addRow(QLabel("<b>My Yeas: </b>"), self.scroll(my_yeas))
     my_abstains = [
         "%s <em style='color: orange'>(%s)</em>" %
         (x[0], strftime('%Y-%m-%d %H:%M:%S', gmtime(x[1][1])))
         for x in PropDetailsDlg.data.MyAbstains
     ]
     body.addRow(QLabel("<b>My Abstains: </b>"), self.scroll(my_abstains))
     my_nays = [
         "%s <em style='color: red'>(%s)</em>" %
         (x[0], strftime('%Y-%m-%d %H:%M:%S', gmtime(x[1][1])))
         for x in PropDetailsDlg.data.MyNays
     ]
     body.addRow(QLabel("<b>My Nays: </b>"), self.scroll(my_nays))
     layout.addLayout(body)
     self.okButton = QPushButton('OK')
     self.okButton.clicked.connect(self.accept)
     layout.addWidget(self.okButton)
     sh = layout.sizeHint()
     self.setFixedSize(sh)
Example #36
0
    def index_Button(self):

        self.index_start = QPushButton('START', self)
        self.index_start.clicked.connect(self.start)
        self.index_start.setFont(QFont('Castellar', 26))

        self.index_quit = QPushButton('QUIT', self)
        self.index_quit.clicked.connect(QCoreApplication.instance().quit)
        self.index_quit.setFont(QFont('Castellar', 26))

        hbox = QVBoxLayout()
        hbox.addStretch(1)
        hbox.addWidget(self.index_start)
        hbox.addStretch(1)
        hbox.addWidget(self.index_quit)
        hbox.addStretch(1)

        vbox = QHBoxLayout()
        vbox.addStretch(1)
        vbox.addLayout(hbox)
        vbox.addStretch(1)

        self.setLayout(vbox)