def __init__(self,info,title="gpvdm"):
		QWidget.__init__(self)
		self.ret=False
		self.setWindowTitle(title)
		self.setWindowFlags(Qt.WindowStaysOnTopHint)
		self.vbox=QVBoxLayout()
		self.edit_boxes=[]
		for i in range(0,len(info)):
			l=QLabel(info[i][0])
			self.vbox.addWidget(l)

			self.edit_boxes.append(QLineEdit())
			self.edit_boxes[-1].setText(info[i][1])

			self.vbox.addWidget(self.edit_boxes[-1])


		w=QWidget()
		hb=QHBoxLayout()
		w.setLayout(hb)
		ok=QPushButton(_("OK"))
		ok.pressed.connect(self.callback_click_ok)
		cancel=QPushButton(_("Cancel"))
		cancel.pressed.connect(self.callback_click_cancel)
		
		hb.addWidget(cancel)
		hb.addWidget(ok)

		self.vbox.addWidget(w)

		self.setLayout(self.vbox)
Example #2
0
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setSubTitle(self.tr("<h2>Select Menu Style</h2>"))

        texts = [
            self.tr("<p>Application Menu is the default for KaOS because of its \
            extremely lightweight (and fast) structure.</p>"),
            self.tr("<p>Application Launcher is the standard for KDE. \
            Application shortcuts are arranged under a tab structure.</p>"),
            self.tr("<p>Application Panel is a full screen menu style. \
            Application shortcuts are arranged so that you can access them quickly and easily.</p>")
        ]

        self.menus = [[":/data/images/menu-kicker.png", texts[0]],
                 [":/data/images/menu-kickoff.png", texts[1]],
                 [":/data/images/menu-kimpanel.png", texts[2]]]

        vlayout = QVBoxLayout(self)

        labelLayout = QHBoxLayout()

        iconLabel = QLabel()
        iconLabel.setMaximumSize(64, 64)
        iconLabel.setPixmap(QIcon.fromTheme("kde").pixmap(64, 64))
        labelLayout.addWidget(iconLabel)

        label = QLabel(self)
        label.setText(self.tr("<p>You can also customize your <strong>KDE menu</strong> as you like. \
        Please choose one from the following styles.</p>"))
        labelLayout.addWidget(label)
        vlayout.addLayout(labelLayout)

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

        self.comboBox = QComboBox(self)
        self.comboBox.addItem(self.tr("Application Menu"))
        self.comboBox.addItem(self.tr("Application Launcher"))
        self.comboBox.addItem(self.tr("Application Dashboard"))
        vlayout.addWidget(self.comboBox)

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

        hlayout = QHBoxLayout(self)

        self.labelMenu = QLabel(self)
        self.labelMenu.setPixmap(QPixmap(self.menus[0][0]))
        self.labelMenu.setMaximumSize(350 ,214)
        hlayout.addWidget(self.labelMenu)
        self.labelText = QLabel(self)
        self.labelText.setWordWrap(True)
        self.labelText.setText(self.tr(self.menus[0][1]))
        hlayout.addWidget(self.labelText)

        vlayout.addLayout(hlayout)

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

        self.comboBox.currentIndexChanged.connect(self.menuSelect)

        self.menuSelected = 0
Example #3
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 #4
0
	def init_ui(self):
		path = os.getcwd()
		url = path + HTM_FILE
		self.webView.setUrl(QtCore.QUrl(url))
		self.webView.page().loadFinished.connect(self.load_finished)  # for test

		self.inputText.setEnabled(False)
		self.inputText.setAcceptRichText(False)
		self.inputText.setToolTip("每行一组经纬度,纬度lat在前\n" + "以空格、逗号或制表符分隔")

		self.runButton.clicked.connect(self.add_points)  # show all points in input text window
		self.clrButton.clicked.connect(self.clr_points)

		buttonBox = QHBoxLayout()  # button box
		buttonBox.addStretch()
		buttonBox.addWidget(self.runButton)
		buttonBox.addWidget(self.clrButton)

		rightBox = QVBoxLayout()  # right box
		rightBox.addWidget(self.sourceType)
		rightBox.addWidget(self.inputText)
		rightBox.addLayout(buttonBox)
		rightBox.addWidget(self.statusBar)

		layout = QHBoxLayout()  # main box
		layout.addWidget(self.webView)
		layout.addLayout(rightBox)

		self.setLayout(layout)
		self.setWindowTitle('经纬度地图显示')
		self.show()
Example #5
0
    def __init__(self, tableName, parent=None):
        super(TableEditor, self).__init__(parent)

        self.model = QSqlTableModel(self)
        self.model.setTable(tableName)
        self.model.setEditStrategy(QSqlTableModel.OnManualSubmit)
        self.model.select()

        self.model.setHeaderData(0, Qt.Horizontal, "ID")
        self.model.setHeaderData(1, Qt.Horizontal, "First name")
        self.model.setHeaderData(2, Qt.Horizontal, "Last name")

        view = QTableView()
        view.setModel(self.model)

        submitButton = QPushButton("Submit")
        submitButton.setDefault(True)
        revertButton = QPushButton("&Revert")
        quitButton = QPushButton("Quit")

        buttonBox = QDialogButtonBox(Qt.Vertical)
        buttonBox.addButton(submitButton, QDialogButtonBox.ActionRole)
        buttonBox.addButton(revertButton, QDialogButtonBox.ActionRole)
        buttonBox.addButton(quitButton, QDialogButtonBox.RejectRole)

        submitButton.clicked.connect(self.submit)
        revertButton.clicked.connect(self.model.revertAll)
        quitButton.clicked.connect(self.close)

        mainLayout = QHBoxLayout()
        mainLayout.addWidget(view)
        mainLayout.addWidget(buttonBox)
        self.setLayout(mainLayout)

        self.setWindowTitle("Cached Table")
Example #6
0
    def __init__(self, *args):
        super().__init__(BrickletRotaryPotiV2, *args)

        self.rp = self.device

        self.cbe_position = CallbackEmulator(self.rp.get_position,
                                             None,
                                             self.cb_position,
                                             self.increase_error_count)

        self.position_knob = KnobWidget(self)
        self.position_knob.setFocusPolicy(Qt.NoFocus)
        self.position_knob.set_total_angle(300)
        self.position_knob.set_range(-150, 150)
        self.position_knob.set_scale(30, 3)
        self.position_knob.set_knob_radius(25)

        self.current_position = CurveValueWrapper()

        plots = [('Position', Qt.red, self.current_position, str)]
        self.plot_widget = PlotWidget('Position', plots, update_interval=0.025, y_resolution=1.0)

        layout = QHBoxLayout(self)
        layout.addWidget(self.plot_widget)
        layout.addWidget(self.position_knob)
Example #7
0
    def createBottomLeftTabWidget(self):
        self.bottomLeftTabWidget = QTabWidget()
        self.bottomLeftTabWidget.setSizePolicy(QSizePolicy.Preferred,
                QSizePolicy.Ignored)

        tab1 = QWidget()
        tableWidget = QTableWidget(10, 10)

        tab1hbox = QHBoxLayout()
        tab1hbox.setContentsMargins(5, 5, 5, 5)
        tab1hbox.addWidget(tableWidget)
        tab1.setLayout(tab1hbox)

        tab2 = QWidget()
        textEdit = QTextEdit()

        textEdit.setPlainText("Twinkle, twinkle, little star,\n"
                              "How I wonder what you are.\n" 
                              "Up above the world so high,\n"
                              "Like a diamond in the sky.\n"
                              "Twinkle, twinkle, little star,\n" 
                              "How I wonder what you are!\n")

        tab2hbox = QHBoxLayout()
        tab2hbox.setContentsMargins(5, 5, 5, 5)
        tab2hbox.addWidget(textEdit)
        tab2.setLayout(tab2hbox)

        self.bottomLeftTabWidget.addTab(tab1, "&Table")
        self.bottomLeftTabWidget.addTab(tab2, "Text &Edit")
Example #8
0
class RightPanel(FFrame):
    def __init__(self, app, parent=None):
        super().__init__(parent)
        self._app = app

        self.widget = None

        self._layout = QHBoxLayout(self)
        self.setLayout(self._layout)
        self.setObjectName('right_panel')
        self.set_theme_style()
        self.setup_ui()

    def set_theme_style(self):
        style_str = '''
            #{0} {{
                background: transparent;
            }}
        '''.format(self.objectName())
        self.setStyleSheet(style_str)

    def set_widget(self, widget):
        if self.widget and self.widget != widget:
            self._layout.removeWidget(self.widget)
            self.widget.hide()
            widget.show()
            self._layout.addWidget(widget)
        else:
            self._layout.addWidget(widget)
        self.widget = widget

    def setup_ui(self):
        self._layout.setContentsMargins(0, 0, 0, 0)
        self._layout.setSpacing(0)
Example #9
0
    def createChartView(
            self, _x2idx: dict, _idx2x: list
    ) -> QHBoxLayout:
        chart = QChart()

        # assign y range
        self.calcRangeY()
        self.setAxisY(self.begin_y, self.end_y)

        value_layout = QFormLayout()
        # add each series
        for v in self.series_table.values():
            v.addSeries(_x2idx, _idx2x, chart, self.axis_x, self.axis_y)
            if v.show_value:
                value_layout.addWidget(v.show_group)

        # create chartview and layout for view and value
        chartview = ChartView(chart, self.wizard)
        chartview.setRenderHint(QPainter.Antialiasing)

        global_layout = QHBoxLayout()
        global_layout.addWidget(chartview, self.chart_stretch)
        global_layout.addLayout(value_layout)

        return global_layout
Example #10
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)
Example #11
0
    def __init__(self, win):
        QWidget.__init__(self)
        self.win = win
        self.setWindowTitle('Electrum - '+_('Payment Request'))
        self.setMinimumSize(800, 250)
        self.address = ''
        self.label = ''
        self.amount = 0
        self.setFocusPolicy(QtCore.Qt.NoFocus)

        main_box = QHBoxLayout()

        self.qrw = QRCodeWidget()
        main_box.addWidget(self.qrw, 1)

        vbox = QVBoxLayout()
        main_box.addLayout(vbox)

        self.address_label = QLabel("")
        #self.address_label.setFont(QFont(MONOSPACE_FONT))
        vbox.addWidget(self.address_label)

        self.label_label = QLabel("")
        vbox.addWidget(self.label_label)

        self.amount_label = QLabel("")
        vbox.addWidget(self.amount_label)

        vbox.addStretch(1)
        self.setLayout(main_box)
    def createDisplay(self):
        self.displayLCD = QGroupBox("")
        layout = QHBoxLayout()

        paletteLosses = QPalette()
        paletteVictory = QPalette()

        paletteLosses.setColor(paletteLosses.WindowText, QColor(255, 000, 000))
        paletteVictory.setColor(paletteVictory.WindowText, QColor(000, 255, 000))

        self.lossesLcd = QLCDNumber(3)
        self.lossesLcd.setSegmentStyle(QLCDNumber.Filled)
        self.lossesLcd.setPalette(paletteLosses)

        self.victoryLcd = QLCDNumber(3)
        self.victoryLcd.setSegmentStyle(QLCDNumber.Filled)
        self.victoryLcd.setPalette(paletteVictory)

        self.lossesLcd.setMinimumHeight(100)
        self.victoryLcd.setMinimumHeight(100)

        self.lossesLcd.setMinimumWidth(150)
        self.victoryLcd.setMinimumWidth(150)

        layout.addWidget(self.victoryLcd)
        layout.addWidget(self.lossesLcd)

        self.displayLCD.setLayout(layout)
Example #13
0
    def intervalButtons(self):
        widget = QGroupBox('Interval')
        group = QButtonGroup(widget)
        layout = QHBoxLayout()
        widget.setLayout(layout)

        def setInterval():
            self.interval = group.checkedId()
            interval = self.INTERVALS[self.interval][0]
            self.updateTitle()
            if interval:
                self.progress.show()
                self.progress.setMaximum(interval)
                value = self.timer.seconds()
                if value < interval:
                    self.progress.resume()
                else:
                    self.progress.stop()
                self.progress.setValue(min(interval, value))
            else:
                self.progress.hide()

        for i, interval in enumerate(self.INTERVALS):
            button = QPushButton(interval[1])
            button.setCheckable(True)
            button.clicked.connect(setInterval)
            group.addButton(button, i)
            layout.addWidget(button, 1 if i > 0 else 0)

        return widget
Example #14
0
File: tabs.py Project: MazeFX/pat
class LetterListTab(QWidget):

    dbhelper = None

    def __init__(self, dbhelper, *args):
        super(LetterListTab, self).__init__(*args)
        Lumberjack.info('spawning a << LetterListTab >>')
        self.dbhelper = dbhelper

        self.horizontalLayout = QHBoxLayout(self)

        model = AlchemicalTableModel(
            self.dbhelper.get_app_db_session(),
            Letter,
            [('Date', Letter.date, 'date', {}),
             ('Subject', Letter.subject, 'subject', {}),
             ('Sender', Letter.relation, 'relation.name', {}),
             ('Reference', Letter.reference, 'reference', {}),
             ('User', Letter.user, 'user.fullname', {}),
             ('Letter scan', Letter.scan_file, 'scan_file', {}),
             ('Letter type', Letter.letter_type, 'letter_type.letter', {}),
             ('Date created', Letter.date_created, 'date_created', {})])

        self.tableView = MyTableView()
        self.tableView.setModel(model)

        self.form = LetterForm(model, self.dbhelper)
        selectionModel = self.tableView.selectionModel()
        selectionModel.selectionChanged.connect(self.form.set_mapper_index_from_selection)

        self.horizontalLayout.addWidget(self.form)
        self.horizontalLayout.addWidget(self.tableView)

        self.setLayout(self.horizontalLayout)
Example #15
0
File: tabs.py Project: MazeFX/pat
class BankAccountListTab(QWidget):

    dbhelper = None

    def __init__(self, dbhelper, *args):
        super(BankAccountListTab, self).__init__(*args)
        Lumberjack.info('spawning a << BankAccountListTab >>')
        self.dbhelper = dbhelper

        self.horizontalLayout = QHBoxLayout(self)

        model = AlchemicalTableModel(
            self.dbhelper.get_app_db_session(),
            BankAccount,
            [('Bank name', BankAccount.bank_name, 'bank_name', {}),
             ('User', BankAccount.user, 'user.name', {}),
             ('Account Nr.', BankAccount.account, 'account', {}),
             ('Balance', BankAccount.balance, 'balance', {'type': 'currency', }),
             ('Date created', BankAccount.date_created, 'date_created', {})])
        # TODO - Create visual effect for negative balance or amount eg: green for positive, red for negative.

        self.tableView = MyTableView()
        self.tableView.setModel(model)

        self.form = BankAccountForm(model, self.dbhelper)
        self.form.tableBuddy = self.tableView
        selectionModel = self.tableView.selectionModel()
        selectionModel.selectionChanged.connect(self.form.set_mapper_index_from_selection)

        self.horizontalLayout.addWidget(self.form)
        self.horizontalLayout.addWidget(self.tableView)

        self.setLayout(self.horizontalLayout)
Example #16
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 #17
0
File: tabs.py Project: MazeFX/pat
class EmailAddressListTab(QWidget):

    dbhelper = None

    def __init__(self, dbhelper, *args):
        super(EmailAddressListTab, self).__init__(*args)
        Lumberjack.info('spawning a << EmailAddressListTab >>')
        self.dbhelper = dbhelper

        self.horizontalLayout = QHBoxLayout(self)

        model = AlchemicalTableModel(
            self.dbhelper.get_app_db_session(),
            EmailAddress,
            [('User', EmailAddress.user, 'user.fullname', {}),
             ('Address', EmailAddress.address, 'address', {}),
             ('Date created', EmailAddress.date_created, 'date_created', {})])

        self.tableView = MyTableView()
        self.tableView.setModel(model)

        self.form = EmailAddressForm(model, self.dbhelper)
        selectionModel = self.tableView.selectionModel()
        selectionModel.selectionChanged.connect(self.form.set_mapper_index_from_selection)

        self.horizontalLayout.addWidget(self.form)
        self.horizontalLayout.addWidget(self.tableView)

        self.setLayout(self.horizontalLayout)
Example #18
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 #19
0
	def __init__(self, path, gallery, parent=None):
		super().__init__(parent)
		gallery.dead_link = True
		def commit():
			msgbox = QMessageBox(self)
			msgbox.setIcon(QMessageBox.Question)
			msgbox.setWindowTitle('Type of gallery source')
			msgbox.setInformativeText('What type of gallery source is it?')
			dir = msgbox.addButton('Directory', QMessageBox.YesRole)
			archive = msgbox.addButton('Archive', QMessageBox.NoRole)
			msgbox.exec()
			new_path = ''
			if msgbox.clickedButton() == dir:
				new_path = QFileDialog.getExistingDirectory(self, 'Choose directory')
			elif msgbox.clickedButton() == archive:
				new_path = QFileDialog.getOpenFileName(self, 'Choose archive',
										   filter=utils.FILE_FILTER)
				new_path = new_path[0]
			else: return None
			if new_path:
				g = utils.update_gallery_path(new_path, gallery)
				self.UPDATE_SIGNAL.emit(g)
				self.close()

		def remove_commit():
			self.REMOVE_SIGNAL.emit(gallery)
			self.close()

		main_layout = QVBoxLayout()
		inner_layout = QHBoxLayout()
		cover = QLabel()
		img = QPixmap(gallery.profile)
		cover.setPixmap(img)
		title_lbl = QLabel(gallery.title)
		title_lbl.setAlignment(Qt.AlignCenter)
		info_lbl = QLabel("The path to this gallery has been removed\n"+
					"What do you want to do?")
		#info_lbl.setWordWrap(True)
		path_lbl = QLabel(path)
		path_lbl.setWordWrap(True)
		info_lbl.setAlignment(Qt.AlignCenter)
		inner_layout.addWidget(cover)
		inner_layout.addWidget(info_lbl)
		main_layout.addLayout(inner_layout)
		main_layout.addWidget(path_lbl)
		close_btn = QPushButton('Close')
		close_btn.clicked.connect(self.close)
		update_btn = QPushButton('Update path...')
		update_btn.clicked.connect(commit)
		remove_btn = QPushButton('Remove')
		remove_btn.clicked.connect(remove_commit)
		buttons_layout = QHBoxLayout()
		buttons_layout.addWidget(remove_btn)
		buttons_layout.addWidget(update_btn)
		buttons_layout.addWidget(close_btn)
		main_layout.addWidget(title_lbl)
		main_layout.addLayout(buttons_layout)
		self.main_widget.setLayout(main_layout)
		self.adjustSize()
		self.show()
Example #20
0
    def _build_add_del_part(self, child_editors, layout, box, modify_callback, current_name):
        def add_handler():
            new_element = self.append()
            i = len(child_editors)
            editor = new_element.to_editor(modify_callback, "%s[%d]" % (current_name, i))
            layout.insertWidget(i, editor)
            child_editors.append(editor)
            if modify_callback:
                modify_callback(current_name, self, box)
        def delete_handler():
            if len(child_editors) == 0:
                return
            self.pop()
            child_editors[-1].setParent(None)
            child_editors.pop()
            if modify_callback:
                modify_callback(current_name, self, box)

        button_add = QPushButton("+")
        button_add.clicked.connect(add_handler)
        button_delete = QPushButton("-")
        button_delete.clicked.connect(delete_handler)
        hlayout = QHBoxLayout()
        hlayout.addWidget(button_add)
        hlayout.addWidget(button_delete)
        layout.addLayout(hlayout)
class DateRangeSelectorView(QWidget):
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)
        self._setupUi()

    def _setupUi(self):
        self.resize(259, 32)
        self.horizontalLayout = QHBoxLayout(self)
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.prevButton = QPushButton(self)
        icon = QIcon()
        icon.addPixmap(QPixmap(":/nav_left_9"), QIcon.Normal, QIcon.Off)
        self.prevButton.setIcon(icon)
        self.horizontalLayout.addWidget(self.prevButton)
        self.typeButton = QPushButton("<date range>")
        sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.typeButton.sizePolicy().hasHeightForWidth())
        self.typeButton.setSizePolicy(sizePolicy)
        self.typeButton.setMinimumSize(QSize(0, 0))
        self.typeButton.setMaximumSize(QSize(16777215, 16777215))
        self.typeButton.setIconSize(QSize(6, 6))
        self.horizontalLayout.addWidget(self.typeButton)
        self.nextButton = QPushButton(self)
        icon1 = QIcon()
        icon1.addPixmap(QPixmap(":/nav_right_9"), QIcon.Normal, QIcon.Off)
        self.nextButton.setIcon(icon1)
        self.horizontalLayout.addWidget(self.nextButton)
        self.horizontalLayout.setStretch(1, 1)
Example #22
0
    def _get_control_layout(self):
        """
        Create static layout.
        """

        widget = QWidget()
        vbox = QVBoxLayout()
        widget.setLayout(vbox)
        vbox.setContentsMargins(0, 0, 0, 0)

        self.template_combo_box = QComboBox()
        self.template_combo_box.currentIndexChanged.connect(self._item_selected)
        vbox.addWidget(self.template_combo_box)

        scrollable_vbox = utils.get_scrollable(self.controls_layout)
        vbox.addWidget(scrollable_vbox, stretch=80)

        buttons_layout = QHBoxLayout()
        vbox.addLayout(buttons_layout, stretch=20)

        b = QPushButton("Назад")
        b.setObjectName("controls")
        b.clicked.connect(self._close)
        buttons_layout.addWidget(b)

        widget.setGraphicsEffect(utils.get_shadow())
        return widget
Example #23
0
    def __init__(self):
        super(MainWindow, self).__init__()

        self.createActions()
        self.createMenus()
        self.createToolBox()

        self.scene = DiagramScene(self.itemMenu)
        self.scene.setSceneRect(QRectF(0, 0, 5000, 5000))
        self.scene.itemInserted.connect(self.itemInserted)
        self.scene.textInserted.connect(self.textInserted)
        self.scene.itemSelected.connect(self.itemSelected)

        self.createToolbars()

        layout = QHBoxLayout()
        layout.addWidget(self.toolBox)
        self.view = QGraphicsView(self.scene)
        layout.addWidget(self.view)

        self.widget = QWidget()
        self.widget.setLayout(layout)

        self.setCentralWidget(self.widget)
        self.setWindowTitle("Diagramscene")
Example #24
0
    def _make_file_info(self, filename: str) -> QLayout:
        # Widgets
        file_icon = QLabel()
        file_icon.setPixmap(QIcon.fromTheme("document").pixmap(48))
        file_icon.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)

        file_info = QLabel("Filename: <b>{}</b><br>"
                           "Size: 0 bytes<br>"
                           "Modified: Today".format(html.escape(filename)))
        file_info.setTextFormat(Qt.RichText)
        file_info.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)

        rename_btn = QPushButton("Rename")

        # Layout
        hbox = QHBoxLayout()
        hbox.addWidget(file_icon)
        hbox.addWidget(file_info)
        hbox.addWidget(rename_btn)

        # Signals
        if filename is self._source_filename:
            rename_btn.clicked.connect(lambda: self.done(ConflictResolution.RENAME_SOURCE.value))
        elif filename is self._target_filename:
            rename_btn.clicked.connect(lambda: self.done(ConflictResolution.RENAME_TARGET.value))

        return hbox
Example #25
0
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setSubTitle(self.tr("<h2>Setup Mouse Behavior</h2>"))

        vlayout = QVBoxLayout(self)

        labelLayout = QHBoxLayout()
        imageLabel = QLabel()
        imageLabel.setPixmap(QPixmap(":/data/images/preferences-desktop-peripherals.png"))
        imageLabel.setMaximumSize(64, 64)
        labelLayout.addWidget(imageLabel)

        mouseLabel = QLabel(self)
        mouseLabel.setText(self.tr("""<p>The <strong>clicking behavior</strong> defines how many times you want
        to click when you are opening a file. If you are <strong>left handed</strong>, you may prefer to
        swap the left and right buttons of your pointing device.</p>"""))
        mouseLabel.setWordWrap(True)
        labelLayout.addWidget(mouseLabel)
        vlayout.addLayout(labelLayout)

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

        hlayout = QHBoxLayout()
        vlayout.addLayout(hlayout)

        self.createGroupBox(hlayout)

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

        self.folderSingleClick = False
        self.mouseButtonMap = "RightHanded"
        self.reverseScrollPolarity = False
Example #26
0
    def __init__(self, parent=None):
        super(ConfigurationPage, self).__init__(parent)

        configGroup = QGroupBox("Server configuration")

        serverLabel = QLabel("Server:")
        serverCombo = QComboBox()
        serverCombo.addItem("Trolltech (Australia)")
        serverCombo.addItem("Trolltech (Germany)")
        serverCombo.addItem("Trolltech (Norway)")
        serverCombo.addItem("Trolltech (People's Republic of China)")
        serverCombo.addItem("Trolltech (USA)")

        serverLayout = QHBoxLayout()
        serverLayout.addWidget(serverLabel)
        serverLayout.addWidget(serverCombo)

        configLayout = QVBoxLayout()
        configLayout.addLayout(serverLayout)
        configGroup.setLayout(configLayout)

        mainLayout = QVBoxLayout()
        mainLayout.addWidget(configGroup)
        mainLayout.addStretch(1)

        self.setLayout(mainLayout)
Example #27
0
 def __init__(self, parent: QWidget = None):
     super(InputStringDialog, self).__init__(parent)
     self._value = ""
     # layout
     self._layout = QVBoxLayout()
     self.setLayout(self._layout)
     self._hlayout1 = QHBoxLayout()
     self._hlayout2 = QHBoxLayout()
     # input controls
     self._lbl_prompt = QLabel(self)
     self._le_text = QLineEdit(self)
     # buttons
     # self._btn_ok = QPushButton(self.tr('OK'), self)
     # self._btn_cancel = QPushButton(self.tr('Cancel'), self)
     self._btnbox = QDialogButtonBox(self)
     self._btnbox.addButton(QDialogButtonBox.Ok)
     self._btnbox.addButton(QDialogButtonBox.Cancel)
     self._btnbox.accepted.connect(self.on_ok)
     self._btnbox.rejected.connect(self.on_cancel)
     #
     # finalize layout
     self._hlayout1.addWidget(self._lbl_prompt)
     self._hlayout1.addWidget(self._le_text)
     self._hlayout2.addWidget(self._btnbox)
     self._layout.addLayout(self._hlayout1)
     self._layout.addLayout(self._hlayout2)
Example #28
0
    def _show_templates(self):
        """
        Update templates on shoeEvent.
        """

        cols = 3
        templates = template_module.Template.get_all()

        for j, item in enumerate(self.visible_items):
            if not templates[item.id]:
                l = QLabel("Нет шаблонов для данного объекта\nУправлять шаблонами можно на вкладке настроек")
                l.setAlignment(Qt.AlignCenter)
                self.templates_layout.addWidget(l)
                continue
            layouts = [QVBoxLayout() for _ in range(cols)]
            for i, each in enumerate(templates[item.id]):
                b = QRadioButton(each.name)
                b.setChecked(item.template == each)
                b.clicked.connect(functools.partial(self._template_clicked, j, each))
                b.mouseDoubleClickEvent = functools.partial(self.open_template_edit_widget, j, each)
                layouts[i % cols].addWidget(b)

            wrapper = QHBoxLayout()
            for each in layouts:
                each.addStretch()
                wrapper.addLayout(each, stretch=int(100 / cols))
            self.templates_layout.addWidget(utils.get_scrollable(wrapper))
    def init(self, parent):
        layout = QHBoxLayout(parent)
        layout.setContentsMargins(0, 0, 0, 0)
        self.m_treeWidget = QtPropertyEditorView(parent)
        self.m_treeWidget.setEditorPrivate(self)
        self.m_treeWidget.setIconSize(QSize(18, 18))
        layout.addWidget(self.m_treeWidget)
        parent.setFocusProxy(self.m_treeWidget)

        self.m_treeWidget.setColumnCount(2)
        labels = QList()
        labels.append(QCoreApplication.translate("QtTreePropertyBrowser", "Property"))
        labels.append(QCoreApplication.translate("QtTreePropertyBrowser", "Value"))
        self.m_treeWidget.setHeaderLabels(labels)
        self.m_treeWidget.setAlternatingRowColors(True)
        self.m_treeWidget.setEditTriggers(QAbstractItemView.EditKeyPressed)
        self.m_delegate = QtPropertyEditorDelegate(parent)
        self.m_delegate.setEditorPrivate(self)
        self.m_treeWidget.setItemDelegate(self.m_delegate)
        self.m_treeWidget.header().setSectionsMovable(False)
        self.m_treeWidget.header().setSectionResizeMode(QHeaderView.Stretch)

        self.m_expandIcon = drawIndicatorIcon(self.q_ptr.palette(), self.q_ptr.style())

        self.m_treeWidget.collapsed.connect(self.slotCollapsed)
        self.m_treeWidget.expanded.connect(self.slotExpanded)
        self.m_treeWidget.currentItemChanged.connect(self.slotCurrentTreeItemChanged)
Example #30
0
    def initialize(self):
        tab_widget = QTabWidget()
        tab1 = QWidget()
        tab2 = QWidget()

        juggle_button = QPushButton("Juggle")
        juggle_button.clicked.connect(self.start_simulation)

        hbox = QHBoxLayout()
        hbox.addStretch(1)
        hbox.addWidget(juggle_button)

        vbox = QVBoxLayout(tab1)
        vbox.addStretch(1)
        vbox.addLayout(hbox)

        hbox2 = QHBoxLayout(tab2)

        tab_widget.addTab(tab1, "Main")
        tab_widget.addTab(tab2, "Other")

        self.setCentralWidget(tab_widget)

        menubar = self.menuBar()
        file_menu = menubar.addMenu('&File')
        help_menu = menubar.addMenu('&Help')
        about = help_menu.addMenu('&About')
        exit_action = QAction(QIcon('exit.png'), '&Exit', self)
        exit_action.triggered.connect(qApp.quit)
        file_menu.addAction(exit_action)

        self.setGeometry(300, 300, 350, 300)
        self.setWindowTitle('Juggling Simulator')
        self.show()
Example #31
0
    def __init__(self, form_context, parent=None):
        super().__init__(parent)
        self._form_context = form_context

        self.setObjectName("FundsSelector")

        balance = form_context.wallet_api.get_balance()
        sv_text, fiat_text = form_context.wallet_api.get_amount_and_units(balance)

        if fiat_text:
            column_count = 3
        else:
            column_count = 2
        model = QStandardItemModel(1, 3, self)
        model.setItem(0, 0, QStandardItem(_("All available funds")))
        sv_item = QStandardItem(sv_text)
        sv_item.setTextAlignment(Qt.AlignRight | Qt.AlignVCenter)
        model.setItem(0, 1, sv_item)
        if fiat_text:
            fiat_item = QStandardItem(fiat_text)
            fiat_item.setTextAlignment(Qt.AlignRight | Qt.AlignVCenter)
            model.setItem(0, 2, fiat_item)

        tableView = QTableView(self)
        tableView.setObjectName("FundsSelectionPopup")
        tableView.setWordWrap(False)
        tableView.setModel(model)
        tableView.verticalHeader().setVisible(False)
        tableView.horizontalHeader().setVisible(False)
        tableView.setHorizontalScrollBarPolicy(Qt.ScrollBarAsNeeded)
        tableView.setSelectionBehavior(QAbstractItemView.SelectRows)
        tableView.setAutoScroll(False)
        tableView.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Fixed)
        # Show more compact rows, this will actually be larger forced out by the contents to be
        # just the necessary size.
        tableView.setRowHeight(0, 20)

        combo = QComboBox()
        combo.setObjectName("FundsSelectorCombo")
        combo.setModel(model)
        combo.setView(tableView)
        combo.setMinimumWidth(300)

        # Detect when the combobox popup view is shown by rebinding and wrapping the method.
        def _new_showPopup(_self: QTableView) -> None:
            nonlocal old_showPopup, tableView
            old_showPopup()
            tableView.resizeColumnsToContents()

        old_showPopup = combo.showPopup
        setattr(combo, "showPopup", _new_showPopup.__get__(combo, combo.__class__))

        hlayout1 = QHBoxLayout()
        hlayout1.setSpacing(0)
        hlayout1.setContentsMargins(0, 0, 0, 2)
        hlayout1.addWidget(combo, 1)

        hlayout2 = QHBoxLayout()
        hlayout2.setSpacing(0)
        hlayout2.setContentsMargins(0, 2, 0, 0)
        balance_icon_label = QLabel("")
        balance_icon_label.setPixmap(QPixmap(icon_path("sb_balance.png")))
        balance_icon_label.setToolTip(_("The balance of the selected account."))
        hlayout2.addWidget(balance_icon_label)
        hlayout2.addSpacing(4)
        sv_balance = QLineEdit(sv_text)
        sv_balance.balance_currency = form_context.wallet_api.get_base_unit()
        sv_balance.balance_amount = form_context.wallet_api.get_base_amount(balance)
        sv_balance.setAlignment(Qt.AlignHCenter)
        sv_balance.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed)
        sv_balance.setReadOnly(True)
        hlayout2.addWidget(sv_balance)
        if fiat_text:
            hlayout2.addSpacing(2)
            balance_equals_label = QLabel("")
            balance_equals_label.setPixmap(QPixmap(icon_path("sb_approximate")))
            hlayout2.addWidget(balance_equals_label)
            hlayout2.addSpacing(2)
            fiat_balance = QLineEdit(fiat_text)
            fiat_balance.balance_currency = form_context.wallet_api.get_fiat_unit()
            fiat_balance.balance_amount = form_context.wallet_api.get_fiat_amount(balance)
            fiat_balance.setAlignment(Qt.AlignHCenter)
            fiat_balance.setReadOnly(True)
            hlayout2.addWidget(fiat_balance)

        vlayout = QVBoxLayout()
        vlayout.setSpacing(0)
        vlayout.setContentsMargins(0, 0, 0, 0)
        vlayout.addLayout(hlayout1)
        vlayout.addLayout(hlayout2)
        self.setLayout(vlayout)

        self._sv_balance = sv_balance
        self._fiat_balance = fiat_balance

        sv_balance.installEventFilter(self)
        fiat_balance.installEventFilter(self)
Example #32
0
    def __init__(self, parent):
        QVBoxLayout.__init__(self)
        self.parent = parent
        self.name = 'Measure'
        self.trigger = None
        box_layout = QHBoxLayout()
        self.addLayout(box_layout)
        self.experiment_box = QComboBox()

        box_layout.addWidget(self.experiment_box)
        self.experiment_box.currentTextChanged.connect(self.update_params)
        box_layout.addWidget(IconButton('dashboard/gui/media/Material/content-save-outline.svg', self.save_params, tooltip='Save parameters'))
        box_layout.addWidget(IconButton('dashboard/gui/media/Material/content-undo.svg', self.reset_params, tooltip='Reset parameters'))
        # box_layout.addWidget(IconButton('dashboard/gui/media/Material/outline-repeat_one.svg', self.update_params))
        trigger_button = IconButton('dashboard/gui/media/Material/outline-hourglass-empty.svg', None, tooltip='Trigger')
        box_layout.addWidget(trigger_button)    # placeholder
        box_layout.addWidget(IconButton('dashboard/gui/media/Material/outline-play-arrow.svg', lambda: parent.start_process(process='measure'), tooltip='Start'))

        self.trigger_menu = QMenu()
        self.trigger_menu.addAction('No triggers defined')

        trigger_button.setMenu(self.trigger_menu)

        ''' Experiment parameters '''
        self.experiment_table = ParameterTable()
        self.addWidget(self.experiment_table)
Example #33
0
    def createControl(self):
        #self.msg.emit("Hello")
        self.rotSliderLayout = QHBoxLayout()

        self.rotSlider = QSlider(Qt.Horizontal)
        self.rotSlider.setRange(*self.maxRange['x'])
        self.rotSlider.setMinimumWidth(300)
        self.rotSlider.setTickInterval(5)
        self.rotSlider.setTickPosition(QSlider().TicksBothSides)
        self.rotSlider.valueChanged[int].connect(self.rotSliderChanged)
        self.rotLabel = QLabel('Rotate')
        self.rotLine = QLineEdit('0')
        self.rotLine.setMaximumWidth(30)

        self.rotSliderLayout.addWidget(self.rotSlider)
        self.rotSliderLayout.addStretch(1)
        self.rotSliderLayout.addWidget(self.rotLabel)
        self.rotSliderLayout.addWidget(self.rotLine)

        self.controlLayout = QHBoxLayout()

        self.joystick = Joy(self.maxRange)
        self.joystick.setFocusPolicy(Qt.StrongFocus)
        self.joystick.setMinimumSize(300, 200)
        self.joystick.sender[int, int].connect(self.joystickMoved)

        self.gazSlider = QSlider(Qt.Vertical)
        self.gazSlider.setRange(*self.maxRange['y'])
        self.gazSlider.setMinimumWidth(80)
        self.gazSlider.setTickInterval(2)
        self.gazSlider.setTickPosition(QSlider().TicksBothSides)
        self.gazSlider.valueChanged[int].connect(self.gazSliderChanged)
        self.controlLayout.addStretch(1)
        self.controlLayout.addWidget(self.joystick)
        self.controlLayout.addStretch(1)
        self.controlLayout.addWidget(self.gazSlider)
        self.controlLayout.addStretch(1)

        self.bottomLayout = QHBoxLayout()
        self.bKey = QPushButton('key')
        self.bFix = QPushButton('Fix')
        self.bLog = QPushButton('Log')
        self.bLog.clicked.connect(self.p)
        self.bSettings = QPushButton('set')
        self.bKey.setMaximumWidth(40)
        self.bFix.setMaximumWidth(40)
        self.bLog.setMaximumWidth(40)
        self.bSettings.setMaximumWidth(40)

        self.labelSpeed = QLabel('Speed')
        self.lineSpeed = QLineEdit('0')
        self.gazLabel = QLabel('Gas')
        self.gazLine = QLineEdit('0')
        self.lineSpeed.setMaximumWidth(50)
        self.bottomLayout.addWidget(self.bKey)
        self.bottomLayout.addWidget(self.bFix)
        self.bottomLayout.addWidget(self.bLog)
        self.bottomLayout.addWidget(self.bSettings)

        self.bottomLayout.addStretch(1)
        self.bottomLayout.addWidget(self.labelSpeed)
        self.bottomLayout.addWidget(self.lineSpeed)
        self.bottomLayout.addWidget(self.gazLabel)
        self.bottomLayout.addWidget(self.gazLine)
        self.bottomLayout.addStretch(1)

        self.mainWidgetLayout.addLayout(self.rotSliderLayout)
        self.mainWidgetLayout.addLayout(self.controlLayout)
        self.mainWidgetLayout.addLayout(self.bottomLayout)
Example #34
0
class Control(Widgets):
    maxRange = {'x': (-90, 90), 'y': (-30, 30)}
    isConnected = False

    def __init__(self, pasp):
        super().__init__(pasp)
        self.createMenu()
        self.createControl()
        self.createConnecter()

    def createMenu(self):
        self.gb = QGroupBox()
        self.gbLayout = QHBoxLayout()
        self.gbLayout.addWidget(self.gb)
        self.gb.setTitle('Windows')
        self.menuLayout = QHBoxLayout()
        self.gb.setLayout(self.menuLayout)
        self.mainWidgetLayout.addLayout(self.gbLayout)
        self.setMaximumWidth(400)
        self.setMaximumHeight(400)

        self.lis = ('Camera', 'Map', 'Locator (atop)', 'locator (side)',
                    'Collisions')
        self.menu = [0] * 5
        self.menuBoxMapper = QSignalMapper(self)
        for i in range(5):
            self.menu[i] = QCheckBox(self.lis[i])
            self.menuBoxMapper.setMapping(self.menu[i], i)
            self.menu[i].stateChanged[int].connect(self.menuBoxMapper.map)
            self.menuLayout.addWidget(self.menu[i])

        self.menuBoxMapper.mapped[int].connect(self.changeWindows)
        self.bLog = QPushButton('Log')
        self.bSettings = QPushButton('set')

    def changeWindows(self, i):
        state = self.menu[i].checkState()
        #self.changeWindSignal.emit(i, state)
    def createControl(self):
        #self.msg.emit("Hello")
        self.rotSliderLayout = QHBoxLayout()

        self.rotSlider = QSlider(Qt.Horizontal)
        self.rotSlider.setRange(*self.maxRange['x'])
        self.rotSlider.setMinimumWidth(300)
        self.rotSlider.setTickInterval(5)
        self.rotSlider.setTickPosition(QSlider().TicksBothSides)
        self.rotSlider.valueChanged[int].connect(self.rotSliderChanged)
        self.rotLabel = QLabel('Rotate')
        self.rotLine = QLineEdit('0')
        self.rotLine.setMaximumWidth(30)

        self.rotSliderLayout.addWidget(self.rotSlider)
        self.rotSliderLayout.addStretch(1)
        self.rotSliderLayout.addWidget(self.rotLabel)
        self.rotSliderLayout.addWidget(self.rotLine)

        self.controlLayout = QHBoxLayout()

        self.joystick = Joy(self.maxRange)
        self.joystick.setFocusPolicy(Qt.StrongFocus)
        self.joystick.setMinimumSize(300, 200)
        self.joystick.sender[int, int].connect(self.joystickMoved)

        self.gazSlider = QSlider(Qt.Vertical)
        self.gazSlider.setRange(*self.maxRange['y'])
        self.gazSlider.setMinimumWidth(80)
        self.gazSlider.setTickInterval(2)
        self.gazSlider.setTickPosition(QSlider().TicksBothSides)
        self.gazSlider.valueChanged[int].connect(self.gazSliderChanged)
        self.controlLayout.addStretch(1)
        self.controlLayout.addWidget(self.joystick)
        self.controlLayout.addStretch(1)
        self.controlLayout.addWidget(self.gazSlider)
        self.controlLayout.addStretch(1)

        self.bottomLayout = QHBoxLayout()
        self.bKey = QPushButton('key')
        self.bFix = QPushButton('Fix')
        self.bLog = QPushButton('Log')
        self.bLog.clicked.connect(self.p)
        self.bSettings = QPushButton('set')
        self.bKey.setMaximumWidth(40)
        self.bFix.setMaximumWidth(40)
        self.bLog.setMaximumWidth(40)
        self.bSettings.setMaximumWidth(40)

        self.labelSpeed = QLabel('Speed')
        self.lineSpeed = QLineEdit('0')
        self.gazLabel = QLabel('Gas')
        self.gazLine = QLineEdit('0')
        self.lineSpeed.setMaximumWidth(50)
        self.bottomLayout.addWidget(self.bKey)
        self.bottomLayout.addWidget(self.bFix)
        self.bottomLayout.addWidget(self.bLog)
        self.bottomLayout.addWidget(self.bSettings)

        self.bottomLayout.addStretch(1)
        self.bottomLayout.addWidget(self.labelSpeed)
        self.bottomLayout.addWidget(self.lineSpeed)
        self.bottomLayout.addWidget(self.gazLabel)
        self.bottomLayout.addWidget(self.gazLine)
        self.bottomLayout.addStretch(1)

        self.mainWidgetLayout.addLayout(self.rotSliderLayout)
        self.mainWidgetLayout.addLayout(self.controlLayout)
        self.mainWidgetLayout.addLayout(self.bottomLayout)

    def p(self):
        print('Ffffffff')

    def createConnecter(self):
        self.connectGB = QGroupBox(self)

        self.connectGBLayout = QHBoxLayout()

        self.choosePortBox = QFormLayout()
        self.cbPort = QComboBox()
        self.cbPort.setMaximumWidth(80)
        self.cbPort.addItems(d.portList)
        self.cbPort.activated[int].connect(self.connect)
        self.cbPort.setCurrentIndex(15)
        self.cbLabel = QLabel('<font color = "red">Disconnected</font>')

        self.choosePortBox.addRow("Port", self.cbPort)
        self.choosePortBox.addRow("State", self.cbLabel)

        self.connectGBLayout.addLayout(self.choosePortBox)

        self.chooseSpeedBox = QFormLayout()
        self.cbSpeed = QComboBox()
        self.cbSpeed.setMaximumWidth(80)
        self.cbSpeed.addItems(d.serialSpeedCases)
        self.cbSpeed.setCurrentIndex(0)

        self.chooseSpeedBox.addRow("Speed", self.cbSpeed)

        self.connectGBLayout.addLayout(self.chooseSpeedBox)

        self.connectGB.setLayout(self.connectGBLayout)
        self.mainWidgetLayout.addWidget(self.connectGB)

        self.pSending = QPixmap('pause.png')
        self.lSending = QLabel()
        self.lSending.setPixmap(self.pSending)
        self.pCheck = QPushButton('Check')
        self.connectGBLayout.addWidget(self.lSending)
        self.connectGBLayout.addWidget(self.pCheck)

    def rotSliderChanged(self, rot):
        global rotate
        rotate = rot
        self.updateControls()

    def gazSliderChanged(self, gaze):
        global gaz
        gaz = gaze
        self.updateControls()

    def updateControls(self):
        self.rotLine.setText(str(rotate))
        self.gazLine.setText(str(gaz))
        self.joystick.setPosition(rotate, gaz)
        self.rotSlider.setValue(rotate)
        self.gazSlider.setValue(gaz)
        self.send.emit('move' + str(rotate) + '/' + str(gaz), self.pasp)

    def joystickMoved(self, x, y):
        global gaz
        global rotate
        gaz = y
        rotate = x
        self.updateControls()

    def connect(self, port):
        global portList
        speed = self.cbSpeed.currentText()
        self.sendData('connect' + d.portList[port] + '/' + speed)

    def connectStateChanged(self, data):
        if data == True:
            self.cbLabel.setText('font color = "green">Connected</font>')
        else:
            self.cbLabel.setText('<font color = "red">Disconnected</font>')
Example #35
0
    def request_safe_t_init_settings(self, wizard, method, device):
        vbox = QVBoxLayout()
        next_enabled = True
        label = QLabel(_("Enter a label to name your device:"))
        name = QLineEdit()
        hl = QHBoxLayout()
        hl.addWidget(label)
        hl.addWidget(name)
        hl.addStretch(1)
        vbox.addLayout(hl)

        def clean_text(widget):
            text = widget.toPlainText().strip()
            return ' '.join(text.split())

        if method in [TIM_NEW, TIM_RECOVER]:
            gb = QGroupBox()
            hbox1 = QHBoxLayout()
            gb.setLayout(hbox1)
            vbox.addWidget(gb)
            gb.setTitle(_("Select your seed length:"))
            bg = QButtonGroup()
            for i, count in enumerate([12, 18, 24]):
                rb = QRadioButton(gb)
                rb.setText(_("{:d} words").format(count))
                bg.addButton(rb)
                bg.setId(rb, i)
                hbox1.addWidget(rb)
                rb.setChecked(True)
            cb_pin = QCheckBox(_('Enable PIN protection'))
            cb_pin.setChecked(True)
        else:
            text = QTextEdit()
            text.setMaximumHeight(60)
            if method == TIM_MNEMONIC:
                msg = _("Enter your BIP39 mnemonic:")
            else:
                msg = _("Enter the master private key beginning with xprv:")

                def set_enabled():
                    from electrum_nmc.bip32 import is_xprv
                    wizard.next_button.setEnabled(is_xprv(clean_text(text)))

                text.textChanged.connect(set_enabled)
                next_enabled = False

            vbox.addWidget(QLabel(msg))
            vbox.addWidget(text)
            pin = QLineEdit()
            pin.setValidator(QRegExpValidator(QRegExp('[1-9]{0,9}')))
            pin.setMaximumWidth(100)
            hbox_pin = QHBoxLayout()
            hbox_pin.addWidget(QLabel(_("Enter your PIN (digits 1-9):")))
            hbox_pin.addWidget(pin)
            hbox_pin.addStretch(1)

        if method in [TIM_NEW, TIM_RECOVER]:
            vbox.addWidget(WWLabel(RECOMMEND_PIN))
            vbox.addWidget(cb_pin)
        else:
            vbox.addLayout(hbox_pin)

        passphrase_msg = WWLabel(PASSPHRASE_HELP_SHORT)
        passphrase_warning = WWLabel(PASSPHRASE_NOT_PIN)
        passphrase_warning.setStyleSheet("color: red")
        cb_phrase = QCheckBox(_('Enable passphrases'))
        cb_phrase.setChecked(False)
        vbox.addWidget(passphrase_msg)
        vbox.addWidget(passphrase_warning)
        vbox.addWidget(cb_phrase)

        wizard.exec_layout(vbox, next_enabled=next_enabled)

        if method in [TIM_NEW, TIM_RECOVER]:
            item = bg.checkedId()
            pin = cb_pin.isChecked()
        else:
            item = ' '.join(str(clean_text(text)).split())
            pin = str(pin.text())

        return (item, name.text(), pin, cb_phrase.isChecked())
 def _setUp(self):
     self._lay=QHBoxLayout(self,self.parentWidget())
Example #37
0
    def add_row(self, label_text: QWidget, field_widget: QWidget,
            stretch_field: bool=False) -> None:
        line = QFrame()
        line.setObjectName("PaymentSeparatorLine")
        line.setFrameShape(QFrame.HLine)
        line.setFixedHeight(1)

        self.frame_layout.addWidget(line)

        label = QLabel(label_text)
        label.setObjectName("PaymentSectionLabel")
        label.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum)

        help_label = QLabel()
        help_label.setPixmap(
            QPixmap(icon_path("icons8-help.svg")).scaledToWidth(16, Qt.SmoothTransformation))
        help_label.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum)

        label_layout = QHBoxLayout()
        label_layout.addWidget(label)
        label_layout.addWidget(help_label)
        # Ensure that the top-aligned vertical spacing matches the fields.
        label_layout.setContentsMargins(0,2,0,2)
        label_layout.setSizeConstraint(QLayout.SetFixedSize)

        grid_layout = QGridLayout()
        grid_layout.addLayout(label_layout, 0, 0, Qt.AlignLeft | Qt.AlignTop)
        if stretch_field:
            grid_layout.addWidget(field_widget, 0, 1)
        else:
            field_layout = QHBoxLayout()
            field_layout.setContentsMargins(0, 0, 0, 0)
            field_layout.addWidget(field_widget)
            field_layout.addStretch(1)
            grid_layout.addLayout(field_layout, 0, 1)
        grid_layout.setColumnMinimumWidth(0, 80)
        grid_layout.setColumnStretch(0, 0)
        grid_layout.setColumnStretch(1, 1)
        grid_layout.setHorizontalSpacing(0)
        grid_layout.setSizeConstraint(QLayout.SetMinimumSize)

        self.frame_layout.addLayout(grid_layout)
    def initUI(self):

        # 레이아웃 첫째 줄
        Name = QLabel('Name :', self)
        self.NameInput = QLineEdit()
        Age = QLabel('Age :', self)
        self.AgeInput = QLineEdit()
        Score = QLabel('Score :', self)
        self.ScoreInput = QLineEdit()

        hbox = QHBoxLayout()
        hbox.addWidget(Name)
        hbox.addWidget(self.NameInput)
        hbox.addWidget(Age)
        hbox.addWidget(self.AgeInput)
        hbox.addWidget(Score)
        hbox.addWidget(self.ScoreInput)

        # 레이아웃 둘째 줄
        Amount = QLabel('Amount :', self)
        self.AmountInput = QLineEdit()
        Key = QLabel('Key :')
        self.KeyList = QComboBox()
        self.KeyList.addItem("Name")
        self.KeyList.addItem("Score")
        self.KeyList.addItem("Age")

        hbox2 = QHBoxLayout()
        hbox2.addStretch()
        hbox2.addWidget(Amount)
        hbox2.addWidget(self.AmountInput)
        hbox2.addWidget(Key)
        hbox2.addWidget(self.KeyList)

        # 레이아웃 셋째 줄
        AddButton = QPushButton('Add', self)
        DelButton = QPushButton('Del', self)
        FindButton = QPushButton('Find', self)
        IncButton = QPushButton('Inc', self)
        ShowButton = QPushButton('Show', self)

        AddButton.clicked.connect(self.AddButtonClicked)
        DelButton.clicked.connect(self.DelButtonClicked)
        FindButton.clicked.connect(self.FindButtonClicked)
        IncButton.clicked.connect(self.IncButtonClicked)
        ShowButton.clicked.connect(self.ShowButtonClicked)

        hbox3 = QHBoxLayout()
        hbox3.addStretch()
        hbox3.addWidget(AddButton)
        hbox3.addWidget(DelButton)
        hbox3.addWidget(FindButton)
        hbox3.addWidget(IncButton)
        hbox3.addWidget(ShowButton)


        # 레이아웃 넷쨰 줄
        Result = QLabel('Result :')

        hbox4 = QHBoxLayout()
        # hbox4.addStretch()
        hbox4.addWidget(Result)

        # 레이아웃 다섯쨰 줄
        self.ResultBox = QTextEdit(self)

        hbox5 = QHBoxLayout()
        hbox5.addWidget(self.ResultBox)

        # 수평 정렬 레이아웃을 수직 정렬
        vbox = QVBoxLayout()
        vbox.addLayout(hbox)
        vbox.addLayout(hbox2)
        vbox.addLayout(hbox3)
        vbox.addLayout(hbox4)
        vbox.addLayout(hbox5)

        self.setLayout(vbox)

        self.setGeometry(300, 300, 500, 250)
        self.setWindowTitle('Assignment6')    
        self.show()
Example #39
0
    def __init__(self, title: str, *args, **kwargs):

        self.pages: Optional[Sequence[BytesIO]] = None
        self.current_page = 1
        self.zoom_factor = 1.0

        super().__init__(title, *args, **kwargs)
        layout = QVBoxLayout()
        self.setLayout(layout)

        scroller = QScrollArea(self)
        self.preview_box = QLabel(scroller)
        scroller.setWidget(self.preview_box)
        scroller.setAlignment(Qt.AlignCenter)
        layout.addWidget(scroller)

        control_layout = QHBoxLayout()
        self.button_zoom_fit = QPushButton(
            QIcon(appctxt.get_resource("actions/zoom_fit.png")), "", self)
        self.button_zoom_fit.clicked.connect(self.zoom_fit)
        self.button_zoom_out = QPushButton(
            QIcon(appctxt.get_resource("actions/zoom_out.png")), "", self)
        self.button_zoom_out.clicked.connect(
            lambda: self.set_zoom(self.zoom_factor * 0.9))
        self.button_zoom_in = QPushButton(
            QIcon(appctxt.get_resource("actions/zoom_in.png")), "", self)
        self.button_zoom_in.clicked.connect(
            lambda: self.set_zoom(self.zoom_factor * 1.1))
        control_layout.addWidget(self.button_zoom_fit)
        control_layout.addWidget(self.button_zoom_out)
        control_layout.addWidget(self.button_zoom_in)

        control_layout.addSpacing(100)

        self.button_prev_page = QPushButton(
            QIcon(appctxt.get_resource("actions/prev.png")), "", self)
        self.button_prev_page.clicked.connect(
            lambda: self.set_page(self.current_page - 1))

        self.label_current_page = QLabel("", self)
        self.label_current_page.setAlignment(Qt.AlignCenter)

        self.button_next_page = QPushButton(
            QIcon(appctxt.get_resource("actions/next.png")), "", self)
        self.button_next_page.clicked.connect(
            lambda: self.set_page(self.current_page + 1))

        control_layout.addWidget(self.button_prev_page)
        control_layout.addWidget(self.label_current_page)
        control_layout.addWidget(self.button_next_page)

        control_widget = QWidget(self)
        control_widget.setLayout(control_layout)

        layout.addWidget(control_widget)
        self.update_preview()
Example #40
0
    def setFODImageNameField(self, imageName, cameraID, subsectorID, date,
                             time):

        title_FODImgName = QLabel('Image name: ' + imageName)
        title_cameraID = QLabel('Camera: ' + cameraID)
        title_subsectorID = QLabel('Subsector: ' + subsectorID)
        title_date = QLabel('Date: ' + date)
        title_time = QLabel('Time: ' + time)

        vbox1 = QVBoxLayout()
        vbox1.addWidget(title_FODImgName)
        vbox1.addWidget(title_cameraID)
        vbox1.addWidget(title_subsectorID)
        vbox1.addWidget(title_date)
        vbox1.addWidget(title_time)
        vbox1.setSpacing(10)
        vbox1.addStretch(1)  # Add a strechable h-space before the widgets

        title_UserRemark = QLabel('User Remark: ')
        textbox_UserRemark = QTextEdit()  # multiple lines
        textbox_UserRemark.setFixedHeight(
            textbox_UserRemark.document().size().height() * 4)
        textbox_UserRemark.setFixedWidth(
            textbox_UserRemark.document().size().width() * 20)
        textbox_UserRemark.setDisabled(True)
        gridUserRemark = QGridLayout()
        gridUserRemark.addWidget(textbox_UserRemark, 0,
                                 0)  # row 1 col 0, span 1 row 1 col
        vbox2 = QVBoxLayout()
        vbox2.addWidget(title_UserRemark)
        vbox2.addLayout(gridUserRemark)
        vbox2.setSpacing(10)
        vbox2.addStretch(1)

        title_SSLRemark = QLabel('SSL Remark: ')
        textbox_SSLRemark = QTextEdit()  # multiple lines
        textbox_SSLRemark.setFixedHeight(
            textbox_SSLRemark.document().size().height() * 4)
        textbox_SSLRemark.setFixedWidth(
            textbox_SSLRemark.document().size().width() * 20)
        gridSSLRemark = QGridLayout()
        gridSSLRemark.addWidget(textbox_SSLRemark, 0,
                                0)  # row 1 col 0, span 1 row 1 col
        vbox3 = QVBoxLayout()
        vbox3.addWidget(title_SSLRemark)
        vbox3.addLayout(gridSSLRemark)
        vbox3.setSpacing(10)
        vbox3.addStretch(1)

        button_SaveRemarks = QPushButton("Save Remarks")
        button_CopyImage = QPushButton("Copy Image")
        checkbox_skipEmptyImg = QCheckBox("Skip empty images")
        checkbox_skipEmptyImg.setChecked(True)
        #checkbox_skipEmptyImg.hide() # Not to let users know there are FOD detail without images.
        vbox4 = QVBoxLayout()
        vbox4.addWidget(button_SaveRemarks)
        vbox4.addWidget(button_CopyImage)
        vbox4.addWidget(checkbox_skipEmptyImg)
        vbox4.setSpacing(10)
        vbox4.addStretch(1)

        hbox = QHBoxLayout()
        hbox.addLayout(vbox1)
        hbox.addLayout(self.createEmptyBoxLayout())
        hbox.addLayout(vbox2)
        #hbox.addLayout(self.createEmptyBoxLayout())
        hbox.addLayout(vbox3)
        hbox.addLayout(self.createEmptyBoxLayout())
        hbox.addLayout(vbox4)
        hbox.addStretch(1)  # Add strechable v-space above the h-box

        pixmap_FODImage = QPixmap("FODImage.jpg")
        pixmap_FODImage = pixmap_FODImage.scaledToWidth(self.imageWidth *
                                                        self.frameScaleRatio)
        display_FODImage = QLabel(self)
        display_FODImage.setPixmap(pixmap_FODImage)

        gridAppLayout = QGridLayout()
        gridAppLayout.addLayout(hbox, 0, 0)
        gridAppLayout.addWidget(display_FODImage, 1, 0)
        self.setLayout(gridAppLayout)

        pass
    def initUI(self):
        #pyqt5初始化UI界面
        self.setGeometry(100, 100, 700, 650)
        self.setWindowTitle('TestCams')
        self.setWindowIcon(QIcon('GCap.ico'))

        #左相机相关
        self.btnOpen = QPushButton('打开左相机', self)
        self.combo = QComboBox(self)
        self.combo.addItem('25%')
        self.combo.addItem('50%')
        self.combo.addItem('100%')
        self.combo.setCurrentIndex(2)
        self.btnStart = QPushButton('开始采集', self)
        self.btnPause = QPushButton('暂停采集', self)
        self.btnSave = QPushButton('保存左图像', self)
        self.btnSetting = QPushButton('设置', self)
        self.btnClose = QPushButton('关闭左相机', self)
        self.combo.setEnabled(False)
        self.btnStart.setEnabled(False)
        self.btnPause.setEnabled(False)
        self.btnSave.setEnabled(False)
        self.btnSetting.setEnabled(False)
        self.btnClose.setEnabled(False)
        self.label = QLabel('Left', self)
        self.QScrollArea = QScrollArea(self)
        self.QScrollArea.setBackgroundRole(QPalette.Dark)
        self.QScrollArea.setWidget(self.label)
        self.winid = self.label.winId()  # 获取label对象的句柄
        self.label.setStyleSheet("QLabel{background:Dark;}")
        hbox = QHBoxLayout()
        hbox.addWidget(self.btnOpen)
        hbox.addWidget(self.combo)
        hbox.addWidget(self.btnStart)
        hbox.addWidget(self.btnPause)
        hbox.addWidget(self.btnSave)
        hbox.addWidget(self.btnSetting)
        hbox.addWidget(self.btnClose)
        hbox.addStretch(1)

        # 使用的信号槽机制连接触发事件
        self.btnOpen.clicked.connect(self.openCam)
        self.combo.activated[str].connect(self.setSize)
        self.btnStart.clicked.connect(self.startGrab)
        self.btnPause.clicked.connect(self.pauseGrab)
        self.btnSave.clicked.connect(self.saveImage)
        self.btnSetting.clicked.connect(self.setting)
        self.btnClose.clicked.connect(self.closeCam)

        #右相机相关
        self.btnOpen2 = QPushButton('打开右相机', self)
        self.combo2 = QComboBox(self)
        self.combo2.addItem('25%')
        self.combo2.addItem('50%')
        self.combo2.addItem('100%')
        self.combo2.setCurrentIndex(2)
        self.btnStart2 = QPushButton('开始采集', self)
        self.btnPause2 = QPushButton('暂停采集', self)
        self.btnSave2 = QPushButton('保存右图像', self)
        self.btnSetting2 = QPushButton('设置', self)
        self.btnClose2 = QPushButton('关闭右相机', self)
        self.combo2.setEnabled(False)
        self.btnStart2.setEnabled(False)
        self.btnPause2.setEnabled(False)
        self.btnSave2.setEnabled(False)
        self.btnSetting2.setEnabled(False)
        self.btnClose2.setEnabled(False)
        self.label2 = QLabel('Right', self)
        self.QScrollArea2 = QScrollArea(self)
        self.QScrollArea2.setBackgroundRole(QPalette.Dark)
        self.QScrollArea2.setWidget(self.label2)
        self.winid2 = self.label2.winId()  # 获取label对象的句柄
        self.label2.setStyleSheet("QLabel{background:Dark;}")
        hbox2 = QHBoxLayout()
        hbox2.addWidget(self.btnOpen2)
        hbox2.addWidget(self.combo2)
        hbox2.addWidget(self.btnStart2)
        hbox2.addWidget(self.btnPause2)
        hbox2.addWidget(self.btnSave2)
        hbox2.addWidget(self.btnSetting2)
        hbox2.addWidget(self.btnClose2)
        hbox2.addStretch(1)
        vbox2 = QVBoxLayout()
        vbox2.addLayout(hbox)
        vbox2.addWidget(self.QScrollArea)
        vbox2.addLayout(hbox2)
        vbox2.addWidget(self.QScrollArea2)
        self.setLayout(vbox2)

        # 使用的信号槽机制连接触发事件
        self.btnOpen2.clicked.connect(self.openCam2)
        self.combo2.activated[str].connect(self.setSize)
        self.btnStart2.clicked.connect(self.startGrab2)
        self.btnPause2.clicked.connect(self.pauseGrab)
        self.btnSave2.clicked.connect(self.saveImage)
        self.btnSetting2.clicked.connect(self.setting)
        self.btnClose2.clicked.connect(self.closeCam)
        self.show()
Example #42
0
    def __init__(self):
        super().__init__()

        self.setWindowTitle("Schnitt Tisch")
        self.setWindowIcon(QIcon("src/main/icons/Icon.ico"))
        self.init_menu()

        self.file_box = InputFilesWidget("Eingabedateien", self)
        self.outputformat_box = OutputFormatWidget("Ausgabeformate",
                                                   PAGE_SIZES.keys(),
                                                   Defaults.ACTIVE_PAGE_SIZES,
                                                   self)

        io_layout = QVBoxLayout()
        io_layout.addWidget(self.file_box, 3)
        io_layout.addWidget(self.outputformat_box, 1)
        io_widget = QWidget(self)
        io_widget.setMinimumWidth(250)
        io_widget.setMaximumWidth(400)
        io_widget.setLayout(io_layout)

        self.outputoptions_box = OutputOptionsWidget("Ausgabepfad", self)

        self.underlaysettings_box = UnderlaySettingsWidget(
            "Dokumenteinstellungen", self)

        self.gluemarks_box = GlueMarkWidget("Klebehilfen", self)

        settings_layout = QVBoxLayout()
        settings_layout.addWidget(self.outputoptions_box, 1)
        settings_layout.addWidget(self.underlaysettings_box, 2)
        settings_layout.addWidget(self.gluemarks_box, 5)

        settings_widget = QWidget(self)
        settings_widget.setLayout(settings_layout)
        settings_widget.setMaximumWidth(400)
        settings_widget.setMinimumWidth(350)

        preview_layout = QHBoxLayout()
        preview_widget_container = QWidget(self)
        preview_widget_container.setLayout(preview_layout)
        self.preview_widget = PreviewWidget("Vorschau", self)
        preview_layout.addWidget(self.preview_widget)

        action_button_layout = QHBoxLayout()

        site_link = QLabel('<a href="https://naehcram.de/">by Nähcram</a>')
        site_link.setTextFormat(Qt.RichText)
        site_link.setTextInteractionFlags(Qt.TextBrowserInteraction)
        site_link.setOpenExternalLinks(True)
        action_button_layout.addWidget(site_link, alignment=Qt.AlignLeft)

        self.export_button = QPushButton(
            QIcon(appctxt.get_resource("actions/save.png")), "Exportieren")

        self.loadSettings()
        self.file_box.file_list.currentRowChanged.connect(self.updatePreview)
        self.outputformat_box.outputformats_list.currentRowChanged.connect(
            self.updatePreview)
        self.underlaysettings_box.dpi.valueChanged.connect(self.updatePreview)
        self.underlaysettings_box.overlap.valueChanged.connect(
            self.updatePreview)
        self.gluemarks_box.font.currentTextChanged.connect(self.updatePreview)
        self.gluemarks_box.font_size.valueChanged.connect(self.updatePreview)
        self.gluemarks_box.marker_type_x.currentTextChanged.connect(
            self.updatePreview)
        self.gluemarks_box.marker_type_y.currentTextChanged.connect(
            self.updatePreview)
        self.gluemarks_box.marker_labels_x.currentTextChanged.connect(
            self.updatePreview)
        self.gluemarks_box.marker_labels_y.currentTextChanged.connect(
            self.updatePreview)
        self.gluemarks_box.marker_inner_size.sliderReleased.connect(
            self.updatePreview)
        self.gluemarks_box.marker_outer_size.sliderReleased.connect(
            self.updatePreview)
        self.export_button.clicked.connect(self.exportPdf)
        self.file_box.file_list.model().rowsInserted.connect(
            self.update_export_state)
        self.file_box.file_list.model().rowsRemoved.connect(
            self.update_export_state)
        self.update_export_state()

        self.export_button.setFixedWidth(200)
        action_button_layout.addWidget(self.export_button,
                                       alignment=Qt.AlignRight)
        action_button_widget = QWidget(self)
        action_button_widget.setLayout(action_button_layout)

        self.setCentralWidget(preview_widget_container)
        left_widget = QDockWidget()
        left_widget.setWidget(io_widget)
        left_widget.setFeatures(QDockWidget.NoDockWidgetFeatures)
        left_widget.setTitleBarWidget(QWidget(self))

        right_widget = QDockWidget()
        right_widget.setWidget(settings_widget)
        right_widget.setFeatures(QDockWidget.NoDockWidgetFeatures)
        right_widget.setTitleBarWidget(QWidget(self))

        bottom_widget = QDockWidget()
        bottom_widget.setWidget(action_button_widget)
        bottom_widget.setFeatures(QDockWidget.NoDockWidgetFeatures)
        bottom_widget.setTitleBarWidget(QWidget(self))
        bottom_widget.setMaximumHeight(50)
        bottom_widget.setMinimumHeight(50)

        self.addDockWidget(Qt.LeftDockWidgetArea, left_widget)
        self.addDockWidget(Qt.RightDockWidgetArea, right_widget)
        self.addDockWidget(Qt.BottomDockWidgetArea, bottom_widget)
Example #43
0
class Window(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(Window, self).__init__()
        self.setupUi(self)

        # -------setupUi------------
        self.originImgFigure = ImgFigure()
        self.enhancedImgFigure = ImgFigure()

        self.originImgLayout = QHBoxLayout(self.originBox)
        self.enhancedImgLayout = QHBoxLayout(self.enhancedBox)
        self.originImgLayout.addWidget(self.originImgFigure)
        self.enhancedImgLayout.addWidget(self.enhancedImgFigure)

        self.statusBar.showMessage("请选择文件")
        self.progressBar = QProgressBar()
        self.statusBar.addPermanentWidget(self.progressBar)
        # self.progressBar.setVisible(False)

        self.showProgressBarAct.triggered['bool'].connect(
            self.progressBar.setVisible)

        self.showToolBarAct.setChecked(True)
        self.showProgressBarAct.setChecked(True)
        # -------setupUi------------

        self.alpha = 1
        self.gamma = 0.7
        self.weigh = 1

        self.settingWindow = SettingWindow()
        self.settingWindow.changeParameterSignal.connect(self.changeParameter)

        self._illuMapWindowFlag = False

        with open("./resource/config/.history", 'r') as fp:
            self.action1 = self.recentOpenMenu.addAction(fp.readline())
            self.action1.triggered.connect(
                lambda: self.openImage(self.action1.text()))
            self.action2 = self.recentOpenMenu.addAction(fp.readline())
            self.action2.triggered.connect(
                lambda: self.openImage(self.action2.text()))
            self.action3 = self.recentOpenMenu.addAction(fp.readline())
            self.action3.triggered.connect(
                lambda: self.openImage(self.action3.text()))

    @pyqtSlot()
    def on_openAct_triggered(self):
        # imgPath = "./data/13.jpg"
        imgPath = QFileDialog.getOpenFileName(
            self, "请选择图片", "./data", "All Files (*)")[0]
        self.openImage(imgPath)

    def openImage(self, imgPath):
        self.imgPath = imgPath.strip()
        if imgPath != '':
            self.originImg = imread(self.imgPath)
            self.originImgFigure.axes.imshow(self.originImg)
            self.originImgFigure.draw()
            self.statusBar.showMessage("当前图片路径: " + self.imgPath)

            self.historyFile()
            self.progressBar.setValue(0)
            self.enhanceAct.setEnabled(True)
        else:
            QMessageBox.warning(self, "提示", "请重新选择图片")

    def historyFile(self):
        with open("./resource/config/.history", 'r+') as fp:
            history = fp.readlines()
            history = self.imgPath + '\n' + history[0] + history[1]
            fp.seek(0, 0)
            fp.truncate()
            fp.write(history)

    def changeParameter(self, alpha, gamma, weigh):
        self.alpha = alpha
        self.gamma = gamma
        self.weigh = weigh

    @pyqtSlot()
    def on_enhanceAct_triggered(self):
        self.progressBar.setValue(0)
        # self.progressBar.setVisible(True)
        self.workThread = WorkThread(
            self.imgPath, self.progressBar, self.alpha, self.gamma)
        self.workThread.start()
        self.workThread.finishSignal.connect(self.on_workThread_finishSignal)

    def on_workThread_finishSignal(self, T, R):
        self.T = T
        self.R = R
        self.statusBar.showMessage("当前图片路径: " + self.imgPath + "   图像增强成功")
        # self.imgFigure.T_axes.imshow(self.T, )
        self.enhancedImgFigure.axes.imshow(self.R)

        self.progressBar.setValue(self.progressBar.maximum())
        # self.progressBar.setVisible(False)

        self.enhancedImgFigure.draw()
        self.saveAct.setEnabled(True)
        self.saveAsAct.setEnabled(True)
        self.saveIlluMapAct.setEnabled(True)
        self.denoiseAct.setEnabled(True)
        self.illuMapAct.setEnabled(True)

    @pyqtSlot()
    def on_saveAsAct_triggered(self):
        savePath = QFileDialog.getSaveFileName(
            self, "请选择保存位置", "./data", "BMP格式 (*.bmp);;JPG格式 (*.jpg)")[0]
        if savePath != '':
            imsave(savePath, self.R)
            QMessageBox.about(self, "提示", "保存成功")
        else:
            QMessageBox.warning(self, "提示", "请重新选择保存位置")

    @pyqtSlot()
    def on_saveAct_triggered(self):
        savePath = self.imgPath
        imsave(savePath, self.R)
        QMessageBox.about(self, "提示", "保存成功")

    @pyqtSlot()
    def on_clearAct_triggered(self):
        self.originImgFigure.axes.cla()
        self.originImgFigure.draw()
        self.enhancedImgFigure.axes.cla()
        self.enhancedImgFigure.draw()

        self.enhanceAct.setEnabled(False)
        self.saveIlluMapAct.setEnabled(False)
        self.saveAsAct.setEnabled(False)
        self.saveAct.setEnabled(False)
        self.denoiseAct.setEnabled(False)

    @pyqtSlot()
    def on_quitAct_triggered(self):
        qApp.quit()

    @pyqtSlot()
    def on_denoiseAct_triggered(self):
        self.R = restoration.denoise_tv_bregman(self.R, self.weigh)
        self.enhancedImgFigure.axes.imshow(self.R)
        self.enhancedImgFigure.draw()
        QMessageBox.about(self, "提示", "去噪成功")

    @pyqtSlot()
    def on_saveIlluMapAct_triggered(self):
        savePath = QFileDialog.getSaveFileName(
            self, "请选择保存位置", "./data", "BMP格式 (*.bmp);;JPG格式 (*.jpg)")[0]
        if savePath != '':
            if self._illuMapWindowFlag == True:
                color = self.illuMapWindow.colorComboBox.currentText()
                color = self.illuMapWindow.colorMap[color]
                imsave(savePath, self.T, cmap=get_cmap(color))
            else:
                imsave(savePath, self.T, cmap=get_cmap('OrRd_r'))
            QMessageBox.about(self, "提示", "保存成功")
        else:
            QMessageBox.warning(self, "提示", "请重新选择保存位置")

        # -------------其他界面-------------

    @pyqtSlot()
    def on_aboutAct_triggered(self):
        self.aboutWindow = AboutWindow()
        self.aboutWindow.show()

    @pyqtSlot()
    def on_illuMapAct_triggered(self):
        self.illuMapWindow = IlluMapWindow()
        self._illuMapWindowFlag = True
        self.illuMapWindow.saveIlluMapBtn.clicked.connect(
            self.on_saveIlluMapAct_triggered)
        self.illuMapWindow.confirmBtn.clicked.connect(
            self.on_confirmBtn_triggered)
        self.illuMapWindow.figure.axes.imshow(self.T, cmap=get_cmap('OrRd_r'))
        self.illuMapWindow.figure.draw()
        self.illuMapWindow.show()

    def on_confirmBtn_triggered(self):
        color = self.illuMapWindow.colorComboBox.currentText()
        color = self.illuMapWindow.colorMap[color]
        self.illuMapWindow.figure.axes.imshow(self.T, cmap=get_cmap(color))
        self.illuMapWindow.figure.draw()

    @pyqtSlot()
    def on_settingAct_triggered(self):
        self.settingWindow.smoothnessSlider.setValue(
            int(401 - 100 * self.alpha))
        self.settingWindow.brightnessSlider.setValue(int(100 * self.gamma))
        self.settingWindow.denosieSlider.setValue(int(100*self.weigh))
        self.settingWindow.show()
Example #44
0
    def __init__(self, title: str, *args, **kwargs):

        super().__init__(title, *args, **kwargs)
        layout = QGridLayout()
        self.setLayout(layout)

        font_layout = QHBoxLayout(self)
        self.font_size = QSpinBox(self)
        self.font_size.setMinimum(5)
        self.font_size.setMaximum(100)
        self.font_size.setValue(Defaults.FONT_SIZE)

        self.font = QComboBox(self)
        for font in sorted(font_manager.ttflist, key=lambda x: x.face.name):
            self.font.addItem(
                QIcon(appctxt.get_resource("files/font.png")),
                font.face.name.decode("ascii"),
                font,
            )

        font_layout.addWidget(self.font, 3)
        font_layout.addWidget(self.font_size, 1)
        font_layout.setContentsMargins(0, 0, 0, 0)

        font_widget = QWidget(self)
        font_widget.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Minimum)
        font_widget.setMaximumHeight(self.font.height())
        font_widget.setContentsMargins(0, 0, 0, 0)
        font_widget.setLayout(font_layout)
        layout.addWidget(QLabel("Schrift", self), 0, 0)
        layout.addWidget(font_widget, 0, 1, 1, 2)

        layout.addWidget(QLabel("Marker", self), 4, 0)
        self.marker_type_x = QComboBox(self)
        self.marker_type_y = QComboBox(self)

        for name, marker in MARKERS.items():
            marker_icon = QIcon(appctxt.get_resource(f"markers/{name}.png"))
            self.marker_type_x.addItem(marker_icon, name, marker)
            self.marker_type_y.addItem(marker_icon, name, marker)

        layout.addWidget(self.marker_type_x, 4, 1)
        layout.addWidget(self.marker_type_y, 4, 2)

        layout.addWidget(QLabel("Beschriftungen", self), 5, 0)
        self.marker_labels_x = QComboBox(self)
        self.marker_labels_y = QComboBox(self)

        for name, marker_set in MARKER_SETS.items():
            label_icon = QIcon(appctxt.get_resource(f"labels/{name}.png"))
            self.marker_labels_x.addItem(label_icon, name, marker_set)
            self.marker_labels_y.addItem(label_icon, name, marker_set)

        layout.addWidget(self.marker_labels_x, 5, 1)
        layout.addWidget(self.marker_labels_y, 5, 2)

        layout.addWidget(QLabel("Größe innen", self), 6, 0)
        self.marker_inner_size = QSlider(Qt.Horizontal, self)
        self.marker_inner_size.setMinimum(10)
        self.marker_inner_size.setMaximum(240)
        self.marker_inner_size.valueChanged.connect(self.validate_outer_size)
        marker_inner_size_label = QLabel(self)
        self.marker_inner_size.valueChanged.connect(
            lambda x: marker_inner_size_label.setText(f"{x} pt"))
        layout.addWidget(self.marker_inner_size, 6, 1)
        layout.addWidget(marker_inner_size_label, 6, 2)

        layout.addWidget(QLabel("Größe außen", self), 7, 0)
        self.marker_outer_size = QSlider(Qt.Horizontal, self)
        self.marker_outer_size.setMinimum(15)
        self.marker_outer_size.setMaximum(250)
        self.marker_outer_size.valueChanged.connect(self.validate_inner_size)
        marker_outer_size_label = QLabel(self)
        self.marker_outer_size.valueChanged.connect(
            lambda x: marker_outer_size_label.setText(f"{x} pt"))
        layout.addWidget(self.marker_outer_size, 7, 1)
        layout.addWidget(marker_outer_size_label, 7, 2)

        self.marker_inner_size.setValue(35)
        self.marker_outer_size.setValue(45)
    def __init__(self, parent=None):
        super(Window, self).__init__(parent)

        self.setWindowTitle('Feedback Interactive Analysis')

        self.enzyme = E_PIP5K
        self.f_type = FEEDBACK_POSITIVE
        self.f_carry = 1
        self.f_multi = 1
        self.f_hill = 1
        self.f_sub = I_PIP2
        self.carry_factor = 1
        self.lipids_to_analyze = [I_PIP2]
        self.mutant_enzyme = E_NONE
        self.enz_box = None
        self.show_standard = True

        # a figure instance to plot on
        self.figure = plt.figure()
        # this is the Canvas Widget that displays the `figure`
        self.canvas = FigureCanvas(self.figure)
        # it takes the Canvas widget and a parent
        self.toolbar = NavigationToolbar(self.canvas, self)

        grid = QGridLayout()
        widget = QWidget(self)  # central widget

        s_box = QHBoxLayout()

        substrate_group = QButtonGroup(widget)  # Substrate group
        s_box.addStretch()
        s_box.setContentsMargins(1, 15, 1, 1)
        s_box.addWidget(QLabel("Feedback From"))
        self.substrates = []
        for l in LIPID_NAMES:
            b = QRadioButton(l, self)
            b.setObjectName(l)
            b.setCheckable(True)
            if l == L_PIP2:
                b.setChecked(True)
            b.clicked.connect(partial(self.substrate_clicked, l))
            self.substrates.append(b)
            substrate_group.addButton(b)
            s_box.addWidget(b)

        display_box = QVBoxLayout()
        display_box.setContentsMargins(30, 1, 1, 1)
        display_box.addStretch()
        self.display_lipids = []
        for l in LIPID_NAMES:
            b = QCheckBox(l)
            b.setObjectName(l)
            b.setCheckable(True)
            if l == L_PIP2:
                b.setChecked(True)
            b.clicked.connect(partial(self.on_display_lipid_changed, l))
            self.display_lipids.append(b)
            display_box.addWidget(b)
        display_box.addStretch()

        feedback_group = QButtonGroup(widget)  # Number group
        f_box = QVBoxLayout()
        f_box.setContentsMargins(30, 1, 1, 1)
        f_box.addStretch()
        f_box.addWidget(QLabel("Feedback Type"))
        self.b_pos_feed = QRadioButton("Positive", self)
        self.b_pos_feed.setObjectName("p")
        self.b_pos_feed.setCheckable(True)
        self.b_pos_feed.setChecked(True)
        self.b_pos_feed.clicked.connect(partial(self.feedback_changed, "p"))
        feedback_group.addButton(self.b_pos_feed)
        f_box.addWidget(self.b_pos_feed)

        self.b_neg_feed = QRadioButton("Negative", self)
        self.b_neg_feed.setObjectName("n")
        self.b_neg_feed.setCheckable(True)
        self.b_neg_feed.clicked.connect(partial(self.feedback_changed, "n"))
        feedback_group.addButton(self.b_neg_feed)
        f_box.addWidget(self.b_neg_feed)
        f_box.addStretch()

        a_box = QVBoxLayout()
        a_box.setContentsMargins(30, 30, 30, 15)
        a_slider = QSlider(Qt.Horizontal, self)
        a_slider.setMinimum(1)
        a_slider.setMaximum(100)
        a_slider.setTickInterval(1)
        self.a_label = QLabel("Multiplication Factor : 1")
        a_slider.valueChanged[int].connect(self.multi_changed)
        a_slider.setValue(1)
        a_box.addWidget(self.a_label)
        a_box.addWidget(a_slider)

        c_box = QVBoxLayout()
        c_box.setContentsMargins(30, 0, 30, 15)
        c_slider = QSlider(Qt.Horizontal, self)
        c_slider.setMinimum(1)
        c_slider.setMaximum(10)
        c_slider.setTickInterval(1)
        self.c_label = QLabel("Carrying Capacity : 1")
        c_slider.valueChanged[int].connect(self.carry_changed)
        c_slider.setValue(1)

        c_sub_box = QHBoxLayout()
        c_sub_box.addWidget(self.c_label)

        carry_factor = QComboBox(self)
        for c in CARRY_FACTORS:
            carry_factor.addItem(c)
        carry_factor.activated[str].connect(self.on_carry_factor)
        c_sub_box.addWidget(carry_factor)
        c_sub_box.addStretch()

        c_box.addLayout(c_sub_box, 1)
        c_box.addWidget(c_slider)

        h_box = QVBoxLayout()
        h_box.setContentsMargins(30, 0, 30, 15)
        h_slider = QSlider(Qt.Horizontal, self)
        h_slider.setMinimum(0)
        h_slider.setMaximum(5)
        h_slider.setTickInterval(1)
        self.h_label = QLabel("Hill Coefficient")
        h_slider.valueChanged[int].connect(self.hill_changed)
        h_slider.setValue(1)
        h_box.addWidget(self.h_label)
        h_box.addWidget(h_slider)

        e_box = QVBoxLayout()
        e_box.setContentsMargins(30, 1, 1, 1)
        e_box.addStretch()
        e_box.addWidget(QLabel("Feedback to"))
        enz_box = QComboBox(self)
        for e in ENZYME_NAMES:
            enz_box.addItem(e)
        enz_box.activated[str].connect(self.on_enzyme_selection)
        e_box.addWidget(enz_box)
        e_box.addStretch()

        hill_box = QHBoxLayout()
        hill_box.addLayout(h_box)
        hill_box.addWidget(self.toggle_plot)

        grid.addWidget(self.toolbar, 1, 0)
        grid.addWidget(self.canvas, 2, 0)
        grid.addLayout(display_box, 1, 1, 2, 2)
        grid.addLayout(s_box, 4, 0)
        grid.addLayout(f_box, 5, 1, 2, 2)
        grid.addLayout(self.mutant_list, 4, 1)
        grid.addLayout(a_box, 5, 0)
        grid.addLayout(c_box, 6, 0)
        grid.addLayout(hill_box, 7, 0)
        grid.addLayout(e_box, 7, 1)
        self.setLayout(grid)
Example #46
0
    def __init__(self, main_window):
        super(View, self).__init__()
        self.main_window = main_window

        label_path1 = QLabel("Copy till here: ")

        # Initial Layout
        # Edit Box
        self.search_box = QLineEdit()
        self.search_box.textChanged.connect(
            partial(setattr, self, "folderpath"))

        # Push button
        go_back_button = QPushButton('Back')
        go_back_button.setToolTip('Show List of items')

        # Search and button Layout grouping
        horizontal_groupbox = QGroupBox()
        layout = QHBoxLayout()
        layout.addWidget(label_path1)
        layout.addWidget(self.search_box)
        layout.addWidget(go_back_button)
        horizontal_groupbox.setLayout(layout)

        # Central Layout for data view
        # Tree View
        data_groupBox = QGroupBox("Android Directory")
        self.dataView = QTreeView()
        self.dataView.setRootIsDecorated(False)
        self.dataView.setAlternatingRowColors(True)
        # self.dataView.setSortingEnabled(True)
        self.dataView.setEditTriggers(QAbstractItemView.NoEditTriggers)

        data_layout = QHBoxLayout()
        data_layout.addWidget(self.dataView)
        data_groupBox.setLayout(data_layout)

        # Footer Layout
        label_path2 = QLabel("PATH:")
        label_path2.setStyleSheet("border: .5px solid black; max-width:50px;")
        self.path_label_name = QLabel()
        self.path_label_name.setStyleSheet(
            "border: 1px solid black; min-width:450px;")
        self.path_label_name.setWordWrap(True)
        pull_button = QPushButton("Pull")
        pull_button.setToolTip("Push this path to desire folder")
        pull_button.setStyleSheet("min-width: 70px;min-height:15px")

        footer_groupbox = QGroupBox()
        footer_layout = QHBoxLayout()
        footer_layout.addWidget(label_path2)
        footer_layout.addWidget(self.path_label_name)
        footer_layout.addWidget(pull_button, alignment=Qt.AlignCenter)
        footer_groupbox.setLayout(footer_layout)

        main_layout = QVBoxLayout()
        main_layout.addWidget(horizontal_groupbox)
        main_layout.addWidget(data_groupBox)
        main_layout.addWidget(footer_groupbox)

        main_window.setLayout(main_layout)

        # Signals to button for do event and then show in view
        go_back_button.clicked.connect(self.go_back_signal)
        self.dataView.clicked.connect(self.single_click_event)
        self.dataView.doubleClicked.connect(self.double_click_event)
        pull_button.clicked.connect(self.pull_file_signal)
Example #47
0
    def __init__(self, parent=None):  # pylint: disable=too-many-statements
        super(HooksPanel, self).__init__(parent=parent)

        self._app_window = parent

        if self._app_window.dwarf is None:
            print('HooksPanel created before Dwarf exists')
            return

        # connect to dwarf
        self._app_window.dwarf.onAddJavaHook.connect(self._on_add_hook)
        self._app_window.dwarf.onAddNativeHook.connect(self._on_add_hook)
        self._app_window.dwarf.onAddNativeOnLoadHook.connect(self._on_add_hook)
        self._app_window.dwarf.onAddJavaOnLoadHook.connect(self._on_add_hook)
        self._app_window.dwarf.onHitNativeOnLoad.connect(
            self._on_hit_native_on_load)
        self._app_window.dwarf.onHitJavaOnLoad.connect(
            self._on_hit_java_on_load)
        self._app_window.dwarf.onDeleteHook.connect(self._on_hook_deleted)

        self._hooks_list = DwarfListView()
        self._hooks_list.doubleClicked.connect(self._on_dblclicked)
        self._hooks_list.setContextMenuPolicy(Qt.CustomContextMenu)
        self._hooks_list.customContextMenuRequested.connect(
            self._on_context_menu)
        self._hooks_model = QStandardItemModel(0, 5)

        self._hooks_model.setHeaderData(0, Qt.Horizontal, 'Address')
        self._hooks_model.setHeaderData(1, Qt.Horizontal, 'T')
        self._hooks_model.setHeaderData(1, Qt.Horizontal, Qt.AlignCenter,
                                        Qt.TextAlignmentRole)
        self._hooks_model.setHeaderData(2, Qt.Horizontal, 'Input')
        self._hooks_model.setHeaderData(3, Qt.Horizontal, '{}')
        self._hooks_model.setHeaderData(3, Qt.Horizontal, Qt.AlignCenter,
                                        Qt.TextAlignmentRole)
        self._hooks_model.setHeaderData(4, Qt.Horizontal, '<>')
        self._hooks_model.setHeaderData(4, Qt.Horizontal, Qt.AlignCenter,
                                        Qt.TextAlignmentRole)

        self._hooks_list.setModel(self._hooks_model)

        self._hooks_list.header().setStretchLastSection(False)
        self._hooks_list.header().setSectionResizeMode(
            0, QHeaderView.ResizeToContents | QHeaderView.Interactive)
        self._hooks_list.header().setSectionResizeMode(
            1, QHeaderView.ResizeToContents)
        self._hooks_list.header().setSectionResizeMode(2, QHeaderView.Stretch)
        self._hooks_list.header().setSectionResizeMode(
            3, QHeaderView.ResizeToContents)
        self._hooks_list.header().setSectionResizeMode(
            4, QHeaderView.ResizeToContents)

        v_box = QVBoxLayout(self)
        v_box.setContentsMargins(0, 0, 0, 0)
        v_box.addWidget(self._hooks_list)
        #header = QHeaderView(Qt.Horizontal, self)

        h_box = QHBoxLayout()
        h_box.setContentsMargins(5, 2, 5, 5)
        self.btn1 = QPushButton(
            QIcon(utils.resource_path('assets/icons/plus.svg')), '')
        self.btn1.setFixedSize(20, 20)
        self.btn1.clicked.connect(self._on_additem_clicked)
        btn2 = QPushButton(QIcon(utils.resource_path('assets/icons/dash.svg')),
                           '')
        btn2.setFixedSize(20, 20)
        btn2.clicked.connect(self.delete_items)
        btn3 = QPushButton(
            QIcon(utils.resource_path('assets/icons/trashcan.svg')), '')
        btn3.setFixedSize(20, 20)
        btn3.clicked.connect(self.clear_list)
        h_box.addWidget(self.btn1)
        h_box.addWidget(btn2)
        h_box.addSpacerItem(
            QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Preferred))
        h_box.addWidget(btn3)
        # header.setLayout(h_box)
        # header.setFixedHeight(25)
        # v_box.addWidget(header)
        v_box.addLayout(h_box)
        self.setLayout(v_box)

        self._bold_font = QFont(self._hooks_list.font())
        self._bold_font.setBold(True)

        shortcut_addnative = QShortcut(QKeySequence(Qt.CTRL + Qt.Key_N),
                                       self._app_window, self._on_addnative)
        shortcut_addnative.setAutoRepeat(False)

        shortcut_addjava = QShortcut(QKeySequence(Qt.CTRL + Qt.Key_J),
                                     self._app_window, self._on_addjava)
        shortcut_addjava.setAutoRepeat(False)

        shortcut_add_native_on_load = QShortcut(
            QKeySequence(Qt.CTRL + Qt.Key_O), self._app_window,
            self._on_add_native_on_load)
        shortcut_add_native_on_load.setAutoRepeat(False)

        # new menu
        self.new_menu = QMenu('New')
        self.new_menu.addAction('Native', self._on_addnative)
        self.new_menu.addAction('Java', self._on_addjava)
        self.new_menu.addAction('Module loading', self._on_add_native_on_load)
Example #48
0
class DataEntryForm(QWidget):
    def __init__(self):
        super().__init__()
        self.items = 0

        # Data
        self._data = {}

        # Left Side
        self.table = QTableWidget()
        self.table.setColumnCount(2)
        self.table.setHorizontalHeaderLabels(('Description', 'Price'))
        self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

        self.layoutRight = QVBoxLayout()

        # Chart Widget
        self.chartView = QChartView()
        self.chartView.setRenderHint(QPainter.Antialiasing)

        self.lineEditDescription = QLineEdit()
        self.lineEditPrice = QLineEdit()
        self.buttonAdd = QPushButton('Add Expense')
        self.buttonClear = QPushButton('Clear All')
        self.buttonPlot = QPushButton('Pie Chart')

        self.buttonAdd.setEnabled(False)

        self.layoutRight.setSpacing(10)
        self.layoutRight.addWidget(QLabel('Description'))
        self.layoutRight.addWidget(self.lineEditDescription)
        self.layoutRight.addWidget(QLabel('Price'))
        self.layoutRight.addWidget(self.lineEditPrice)
        self.layoutRight.addWidget(self.buttonAdd)
        self.layoutRight.addWidget(self.buttonPlot)
        self.layoutRight.addWidget(self.chartView)
        self.layoutRight.addWidget(self.buttonClear)

        self.layout = QHBoxLayout()
        self.layout.addWidget(self.table, 50)
        self.layout.addLayout(self.layoutRight, 50)

        self.setLayout(self.layout)

        self.buttonClear.clicked.connect(self.reset_table)
        self.buttonPlot.clicked.connect(self.graph_chart)
        self.buttonAdd.clicked.connect(self.add_entry)

        self.lineEditDescription.textChanged[str].connect(self.check_disable)
        self.lineEditPrice.textChanged[str].connect(self.check_disable)

        self.fill_table()

    # Fill Table
    def fill_table(self, data=None):
        data = self._data if not data else data
        for desc, price in data.items():
            descItem = QTableWidgetItem(desc)
            priceItem = QTableWidgetItem('${0:.2f}'.format(price))
            priceItem.setTextAlignment(Qt.AlignRight | Qt.AlignCenter)
            self.table.insertRow(self.items)
            self.table.setItem(self.items, 0, descItem)
            self.table.setItem(self.items, 1, priceItem)
            self.items += 1

    # Add Entry
    def add_entry(self):
        desc = self.lineEditDescription.text()
        price = self.lineEditPrice.text()
        try:
            descItem = QTableWidgetItem(desc)
            priceItem = QTableWidgetItem('${0:.2f}'.format(float(price)))
            priceItem.setTextAlignment(Qt.AlignRight | Qt.AlignCenter)
            self.table.insertRow(self.items)
            self.table.setItem(self.items, 0, descItem)
            self.table.setItem(self.items, 1, priceItem)
            self.items += 1
            self.lineEditDescription.setText('')
            self.lineEditPrice.setText('')
        except ValueError:
            pass

    # Check If Buttons Are Disabled
    def check_disable(self):
        if self.lineEditDescription.text() and self.lineEditPrice.text():
            self.buttonAdd.setEnabled(True)
        else:
            self.buttonAdd.setEnabled(False)

    # Reset Table
    def reset_table(self):
        self.table.setRowCount(0)
        self.items = 0
        chart = QChart()
        self.chartView.setChart(chart)

    # Graph Data Chart
    def graph_chart(self):
        series = QPieSeries()
        for i in range(self.table.rowCount()):
            text = self.table.item(i, 0).text()
            val = float(self.table.item(i, 1).text().replace('$', ''))
            series.append(text, val)

        chart = QChart()
        chart.addSeries(series)
        chart.legend().setAlignment(Qt.AlignTop)
        self.chartView.setChart(chart)
Example #49
0
class ParamWidget(QTableWidget):
    
    def __init__(self, layout):
        super().__init__()
        self.layout=layout
        self.setColumnCount(2)
        self.setHorizontalHeaderLabels(['Param', 'Value'])
        self.verticalHeader().setVisible(False)
        self.setMaximumWidth(300)
        #self.itemChanged.connect(self.item_changed)
        self.clicked_item=None
        self.previous_content=None
        #self.itemClicked.connect(self.item_clicked)
        self.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.contextMenu=None
        self.customContextMenuRequested.connect(self.RightClickMenu)
    
    def RightClickMenu(self, point):
        self.contextMenu=QParamsContextMenu(point, self.window())
    
    def actualize(self, params):
        item = self.window().tree_widget.active_item
        if item is not None:
            self.clear()
            self.setHorizontalHeaderLabels(['Param', 'Value'])
            self.setRowCount(len(params.keys()))
            for i,(k, v) in enumerate(params.items()):
                key = QTableWidgetItem()
                key.setText(k)
                self.setItem(i,0,key)
                value = QTableWidgetItem()
                value.setText(str(v))
                self.setItem(i,1,value)
    
    def mousePressEvent(self, event):
        if event.button()==QtCore.Qt.RightButton:
            tree = self.window().tree_widget
            if hasattr(tree, "active_item") and tree.active_item is not None:
                current_id=self.window().tree_widget.active_item.data(0,0)
                if current_id is not None:
                    pass
    
    def contextMenuEvent(self, event):
        current_id=self.window().tree_widget.active_item.data(0,0)
        if current_id is not None:
            self.menu = QMenu(self)
            addParamAction = self.menu.addAction("add new parameter")
            action = self.menu.exec_(self.mapToGlobal(event.pos()))
            if action == addParamAction:
                self.new_param_menu()
                self.menu.close()
                
    def new_param_menu(self):
        self.new_param_window=QWidget(self.window())
        self.new_param_layout=QHBoxLayout(self.new_param_window)
        self.name_layout=QVBoxLayout(self.new_param_window)
        self.name_text=QLabel('Name')
        self.name_text.setStyleSheet("QLabel { background-color : white; color : black; }")
        self.name_layout.addWidget(self.name_text)
        self.name_box=QLineEdit(self.new_param_window)
        self.name_layout.addWidget(self.name_box)
        self.new_param_layout.addLayout(self.name_layout)
        self.new_param_window.setLayout(self.new_param_layout)
        self.new_param_window.setGeometry(QRect(500, 250, 300, 100))
        self.param_layout=QVBoxLayout(self.new_param_window)
        self.param_text=QLabel('param')
        self.param_text.setStyleSheet("QLabel { background-color : white; color : black; }")
        self.param_layout.addWidget(self.param_text)
        self.param_box=QLineEdit(self.new_param_window)
        self.param_layout.addWidget(self.param_box)
        self.new_param_layout.addLayout(self.param_layout)
        self.button=QPushButton()
        self.button.setText('add new parameter')
        self.button.clicked.connect(self.get_new_param)
        self.new_param_layout.addWidget(self.button)
        self.new_param_window.show()
    
    def get_new_param(self):
        name, param = self.name_box.text(), self.param_box.text()
        current_id=self.window().tree_widget.active_item.data(0,0)
        date=self.window().tree_widget.active_item.data(2,0)
        params=PlotWidget.get_params_from_date_and_id(date, current_id)
        params[name]=param
        folder=PlotWidget.get_folder_from_date(date)
        if not '{:}.h5'.format(current_id) in os.listdir(folder):
                print('the h5 file is nowhere to be found')
        else:
            with h5py.File(os.path.join(folder, '{:}.h5'.format(current_id)), 'r+') as f:
                data=f['data']
                for key, val in params.items():
                    if val is None:
                        data.attrs[key]='NONE'
                    elif isinstance(val, dict):
                        data.attrs[key]=json.dumps(val)
                    else:
                        data.attrs[key]=val
        self.new_param_window.close()
 def mutant_list(self):
     e_box = QHBoxLayout()
     e_box.setContentsMargins(30, 1, 1, 1)
     e_box.addStretch()
     e_box.addWidget(QLabel("Mutant Enzyme : "))
     self.enz_box = QComboBox(self)
     self.enz_box.addItem(E_NONE)
     for e in ENZYME_NAMES:
         self.enz_box.addItem(e)
         self.enz_box.activated[str].connect(self.on_mutant_selection)
     e_box.addWidget(self.enz_box)
     e_box.addStretch()
     return e_box
Example #51
0
    def __init__(self, model: MultipleSelectComponent, callback):
        super(MultipleSelectQt, self).__init__(model.label if model.label else None)
        self.setStyleSheet(css.GROUP_BOX)
        self.model = model
        self._layout = QGridLayout()
        self.setLayout(self._layout)

        if model.max_width > 0:
            self.setMaximumWidth(model.max_width)

        if model.max_height > 0:
            self.setMaximumHeight(model.max_height)

        if model.label:
            line = 1
            pre_label = QLabel()
            self.layout().addWidget(pre_label, 0, 1)
        else:
            line = 0

        col = 0

        pixmap_help = QPixmap()

        for op in model.options:  # loads the help icon if at least one option has a tooltip
            if op.tooltip:
                try:
                    pixmap_help = QIcon(resource.get_path('img/about.svg')).pixmap(QSize(16, 16))
                except:
                    traceback.print_exc()

                break

        for op in model.options:
            comp = CheckboxQt(op, model, callback)

            if model.values and op in model.values:
                self.value = comp
                comp.setChecked(True)

            widget = QWidget()
            widget.setLayout(QHBoxLayout())
            widget.layout().addWidget(comp)

            if op.tooltip:
                help_icon = QLabel()
                help_icon.setPixmap(pixmap_help)
                help_icon.setToolTip(op.tooltip)
                widget.layout().addWidget(help_icon)

            self._layout.addWidget(widget, line, col)

            if col + 1 == self.model.max_per_line:
                line += 1
                col = 0
            else:
                col += 1

        if model.label:
            pos_label = QLabel()
            self.layout().addWidget(pos_label, line + 1, 1)
Example #52
0
class NewFilterWidget(QGroupBox):
    
    def __init__(self, parent, filter_widget):
        super().__init__(parent=parent)
        self.parent=parent
        self.filter_widget=filter_widget
        self.global_layout=QHBoxLayout()
        self.setLayout(self.global_layout)
        self.item1=QComboBox()
        for column in Filter.columns:
            self.item1.addItem(column)
        self.global_layout.addWidget(self.item1)
        self.item2=QComboBox()
        for operation in ['<','<=','=','>','>=']:
            self.item2.addItem(operation)
        self.global_layout.addWidget(self.item2)
        self.item3=QLineEdit()
        self.global_layout.addWidget(self.item3)
        self.calendar=QCalendarWidget()
        self.global_layout.addWidget(self.calendar)
        self.calendar.hide()
        self.remove_button=QToolButton()
        folder=os.path.split(inspect.getfile(Curve))[0]
        self.remove_button.setIcon(QtGui.QIcon(os.path.join(folder,'minus.png')))
        self.global_layout.addWidget(self.remove_button)
        self.remove_button.clicked.connect(self.remove)
        self.activate_box = QCheckBox('activate')
        
        self.global_layout.addWidget(self.activate_box)
        self.item1.currentTextChanged.connect(self.columnchanged)
        
    def columnchanged(self, text):
        if text=='date':
            self.item3.hide()
            self.calendar.show()
            self.item2.clear()
            for operation in ['<','<=','=','>','>=']:
                self.item2.addItem(operation)
        elif text in ['name', 'project', 'sample']:
            self.calendar.hide()
            self.item2.clear()
            self.item3.show()
            for operation in ['=', 'contains']:
                self.item2.addItem(operation)
        else:
            self.calendar.hide()
            self.item3.show()
            self.item2.clear()
            for operation in ['<','<=','=','>','>=']:
                self.item2.addItem(operation)
        
    def remove(self):
        for widget in [self.remove_button,self.item1,
                       self.item2, self.item3,
                       self.activate_box]:
            widget.hide()
            self.global_layout.removeWidget(widget)
        self.filter_widget.remove_filter(self)
        self.hide()
    
    def get_query(self):
        if self.item1.currentText() in ['id', 'parent', 'sample', 'project', 'name']:
            return Filter(self.item1.currentText(),
                          self.item2.currentText(),
                          self.item3.text())
        if self.item1.currentText()=='date':
            date=self.calendar.selectedDate()
            if self.item2.currentText() in ['<','>=']:
                t=datetime(date.year(), date.month(), date.day()).timestamp()
                return Filter(self.item1.currentText(),
                              self.item2.currentText(),
                              str(t))
            elif self.item2.currentText() in ['>','<=']:
                t=datetime(date.year(), date.month(), date.day()+1).timestamp()
                return Filter(self.item1.currentText(),
                              self.item2.currentText(),
                              str(t))
            elif self.item2.currentText()=='=':
                t1=datetime(date.year(), date.month(), date.day()).timestamp()
                t2=datetime(date.year(), date.month(), date.day()+1).timestamp()
                return [Filter(self.item1.currentText(),
                              '>',
                              str(t1)),
                        Filter(self.item1.currentText(),
                              '<',
                              str(t2))]
Example #53
0
class RunBackupWidget(QWidget):
    def __init__(self):
        super().__init__()

        self.most_recent_backup = None

        self.top_level_layout = QVBoxLayout()
        self.setLayout(self.top_level_layout)

        # controls across the top
        self.controls_widget = QWidget()
        self.controls_layout = QHBoxLayout()
        self.controls_widget.setLayout(self.controls_layout)
        self.start_button = QPushButton("Start")
        self.start_button.clicked.connect(self.start)
        self.controls_layout.addWidget(self.start_button)
        self.stop_button = QPushButton("Stop")
        self.stop_button.clicked.connect(self.stop)
        self.controls_layout.addWidget(self.stop_button)
        self.controls_layout.addWidget(QLabel("Next backup:"))
        self.countdown_text = QLabel()
        self.controls_layout.addWidget(self.countdown_text)
        self.controls_layout.addStretch()

        # status
        self.status_widget = QGroupBox("Status")
        self.status_layout = QHBoxLayout()
        self.status_widget.setLayout(self.status_layout)
        self.backup_status = {}
        self.backup_engines = {}
        self.run_all = RunAll(self)

        for backup_type in BackupTypes:
            self.backup_status[backup_type] = BackupWidget(backup_type)
            display_boxes = self.backup_status[backup_type].display_boxes
            self.backup_engines[backup_type] = backup_classes[backup_type](
                UITypes.gui, display_boxes[DisplayTypes.log].append_text, display_boxes[DisplayTypes.warnings].append_text, display_boxes[DisplayTypes.errors].append_text
            )

            self.status_layout.addWidget(self.backup_status[backup_type])

        # add all the widgets to the top level layout
        self.top_level_layout.addWidget(self.controls_widget)
        self.top_level_layout.addWidget(self.status_widget)

        self.restore_state()

    def start(self):
        self.most_recent_backup = int(round(datetime.now().timestamp()))  # set after all runs successfully finished
        preferences = get_gui_preferences()
        if preferences.backup_directory is None:
            log.error("backup directory not set")
        else:
            self.run_all.start()

    def stop(self):
        for backup_type in self.backup_engines:
            self.backup_engines[backup_type].terminate()

    def get_layout_key(self, backup_type: BackupTypes, display_type: DisplayTypes, height_width: str):
        return f"{backup_type.name}_{display_type.name}_{height_width}"

    def save_state(self):
        preferences = get_gui_preferences()
        for backup_type in BackupTypes:
            for display_type in DisplayTypes:
                setattr(preferences, self.get_layout_key(backup_type, display_type, "height"), self.backup_status[backup_type].display_boxes[display_type].height())
                setattr(preferences, self.get_layout_key(backup_type, display_type, "width"), self.backup_status[backup_type].display_boxes[display_type].width())
        preferences.most_recent_backup = self.most_recent_backup

    def restore_state(self):
        preferences = get_gui_preferences()
        for backup_type in BackupTypes:
            for display_type in DisplayTypes:
                if (height := getattr(preferences, self.get_layout_key(backup_type, display_type, "height"), 0)) is not None:
                    height = int(height)
                if (width := getattr(preferences, self.get_layout_key(backup_type, display_type, "width"), 0)) is not None:
                    width = int(width)
                # make sure all windows come up as visible, even if not set or the user has reduced them to zero
                if height is not None and height > 0 and width is not None and width > 0:
                    self.backup_status[backup_type].display_boxes[display_type].resize(width, height)
Example #54
0
class WindowWidget(QWidget):
    
    spinbox_changed = QtCore.Signal()
    row_changed = QtCore.Signal()
    
    
    def __init__(self):
        super().__init__()
        self.layout_global = QHBoxLayout()
        self.layout_left = QVBoxLayout()
        self.layout_center = QVBoxLayout()
        self.layout_right = QVBoxLayout()
        self.layout_top = QHBoxLayout()
        self.layout_bottom = QHBoxLayout()
        self.plot_widget = PlotWidget()
        self.add_filters = QCheckBox('add_filters')
        self.show_filters = QCheckBox('Show filters')
        self.show_filters.hide()
        self.filter_widget = FilterWidget(self)
        
        self.layout_show_first = QHBoxLayout()
        self.layout_global.addWidget(self.filter_widget)
        self.layout_global.addLayout(self.layout_left)
        self.layout_global.addLayout(self.layout_center)
        self.layout_global.addLayout(self.layout_right)
        self.layout_left.addLayout(self.layout_show_first)
        self.spinbox_widget = SpinBoxWidget()
        
        self.tree_widget = TreeWidget()
        self.plot_options = plotOptions(self.tree_widget)
        self.param_widget = ParamWidget(self.layout)
        self.layout_right.addWidget(self.param_widget)
        self.show_first_label = QLabel('show first')
        
        
        self.compute_button = QPushButton('update')
        self.layout_show_first.addWidget(self.show_first_label)
        self.layout_show_first.addWidget(self.spinbox_widget)
        self.layout_left.addWidget(self.tree_widget)
        self.layout_show_first.addWidget(self.add_filters)
        self.layout_show_first.addWidget(self.show_filters)
        self.layout_show_first.addWidget(self.compute_button)
        self.layout_center.addLayout(self.layout_top)
        self.layout_top.addWidget(self.plot_options)
        self.layout_center.addWidget(self.plot_widget)
        self.directory_button = DirectoryButton(self.tree_widget)
        self.comment=Comment(self.tree_widget)
        self.layout_center.addWidget(self.comment)
        self.layout_center.addLayout(self.layout_bottom)
        self.layout_bottom.addWidget(self.directory_button)
        self.plot_figure_button = PlotFigureButton(self.tree_widget,
                                                   self.plot_widget)
        self.layout_bottom.addWidget(self.plot_figure_button)
        self.save_button = SaveButton(self.tree_widget, self.comment)
        self.layout_bottom.addWidget(self.save_button)
        self.compute_button.clicked.connect(self.tree_widget.compute)
        self.row_changed.connect(self.plot_widget.plot)
        self.changing_tree=False
        self.spinbox_widget.setValue(20)
        self.setLayout(self.layout_global)
        self.setGeometry(QRect(0, 0, 1000, 600))
        self.setMaximumHeight(600)
        self.show()
        self.move(0,0)
Example #55
0
    def createBottomLeftTabWidget(self):
        self.bottomLeftTabWidget = QTabWidget()
        self.bottomLeftTabWidget.setSizePolicy(QSizePolicy.Preferred,
                                               QSizePolicy.Ignored)

        tab1 = QWidget()
        tableWidget = QTableWidget(10, 10)

        tab1hbox = QHBoxLayout()
        tab1hbox.setContentsMargins(5, 5, 5, 5)
        tab1hbox.addWidget(tableWidget)
        tab1.setLayout(tab1hbox)

        tab2 = QWidget()
        textEdit = QTextEdit()

        textEdit.setPlainText("Twinkle, twinkle, little star,\n"
                              "How I wonder what you are.\n"
                              "Up above the world so high,\n"
                              "Like a diamond in the sky.\n"
                              "Twinkle, twinkle, little star,\n"
                              "How I wonder what you are!\n")

        tab2hbox = QHBoxLayout()
        tab2hbox.setContentsMargins(5, 5, 5, 5)
        tab2hbox.addWidget(textEdit)
        tab2.setLayout(tab2hbox)

        self.bottomLeftTabWidget.addTab(tab1, "&Table")
        self.bottomLeftTabWidget.addTab(tab2, "Text &Edit")
Example #56
0
    def _init_ui(self, txt_width):
        lbl_int = QLabel(self._config_item.tag())
        lbl_int.setFixedWidth(self.LABEL_WIDTH)

        self._txt_value = QLineEdit()
        self._txt_value.setFixedWidth(txt_width)

        hbox = QHBoxLayout()
        hbox.setContentsMargins(0, 0, 0, 0)
        hbox.addWidget(lbl_int)
        hbox.addWidget(self._txt_value)
        hbox.addWidget(QLabel(self._config_item.units()))
        hbox.addStretch()

        self.setLayout(hbox)
Example #57
0
    def initUI(self):
        self.setGeometry(300, 300, 600, 350)
        self.setWindowTitle('SaveScoreProgram')

        vbox = QVBoxLayout()

        #1st QHBoxLayout
        nameLabel = QLabel("Name: ")
        self.nameEdit = QLineEdit(self)
        ageLabel = QLabel("Age: ")
        self.ageEdit = QLineEdit(self)
        scoreLabel = QLabel("Score: ")
        self.scoreEdit = QLineEdit(self)
        firsthbox = QHBoxLayout()
        firsthbox.addStretch(1)
        firsthbox.addWidget(nameLabel)
        firsthbox.addWidget(self.nameEdit)
        firsthbox.addWidget(ageLabel)
        firsthbox.addWidget(self.ageEdit)
        firsthbox.addWidget(scoreLabel)
        firsthbox.addWidget(self.scoreEdit)
        vbox.addLayout(firsthbox)

        #2nd QHBoxLayout
        amountLabel = QLabel("Amount: ")
        self.amountEdit = QLineEdit(self)
        keyLabel = QLabel("key: ")
        self.keyCombo = QComboBox(self)
        self.keyCombo.addItem("Name")
        self.keyCombo.addItem("Age")
        self.keyCombo.addItem("Score")
        secondbox = QHBoxLayout()
        secondbox.addStretch(1)
        secondbox.addWidget(amountLabel)
        secondbox.addWidget(self.amountEdit)
        secondbox.addWidget(keyLabel)
        secondbox.addWidget(self.keyCombo)
        vbox.addLayout(secondbox)

        #3th QHBoxLayout
        addButton = QPushButton("Add")
        delButton = QPushButton("Del")
        findButton = QPushButton("Find")
        incButton = QPushButton("Inc")
        showButton = QPushButton("show")
        thirdBox = QHBoxLayout()
        thirdBox.addStretch(1)
        thirdBox.addWidget(addButton)
        thirdBox.addWidget(delButton)
        thirdBox.addWidget(findButton)
        thirdBox.addWidget(incButton)
        thirdBox.addWidget(showButton)
        vbox.addLayout(thirdBox)

        #4th QHBoxLayout
        resultLabel = QLabel("Result:")
        fourthbox = QHBoxLayout()
        fourthbox.addWidget(resultLabel)
        vbox.addLayout(fourthbox)

        #5th QHBoxLayout
        self.resultTextEdit = QTextEdit(self)
        fifthbox = QHBoxLayout()
        fifthbox.addWidget(self.resultTextEdit)
        vbox.addLayout(fifthbox)

        #수평정렬
        self.setLayout(vbox)

        #각 버튼이벤트 연결
        addButton.clicked.connect(self.addButtonClicked)
        delButton.clicked.connect(self.delButtonClicked)
        findButton.clicked.connect(self.findButtonClicked)
        incButton.clicked.connect(self.incButtonClicked)
        showButton.clicked.connect(self.showButtonClicked)

        self.show()
Example #58
0
    def __init__(self, parent=None):
        super(WidgetGallery, self).__init__(parent)

        self.originalPalette = QApplication.palette()

        styleComboBox = QComboBox()
        styleComboBox.addItems(QStyleFactory.keys())

        styleLabel = QLabel("&Style:")
        styleLabel.setBuddy(styleComboBox)

        self.useStylePaletteCheckBox = QCheckBox(
            "&Use style's standard palette")
        self.useStylePaletteCheckBox.setChecked(True)

        disableWidgetsCheckBox = QCheckBox("&Disable widgets")

        self.createTopLeftGroupBox()
        self.createTopRightGroupBox()
        self.createBottomLeftTabWidget()
        self.createBottomRightGroupBox()
        self.createProgressBar()

        styleComboBox.activated[str].connect(self.changeStyle)
        self.useStylePaletteCheckBox.toggled.connect(self.changePalette)
        disableWidgetsCheckBox.toggled.connect(
            self.topLeftGroupBox.setDisabled)
        disableWidgetsCheckBox.toggled.connect(
            self.topRightGroupBox.setDisabled)
        disableWidgetsCheckBox.toggled.connect(
            self.bottomLeftTabWidget.setDisabled)
        disableWidgetsCheckBox.toggled.connect(
            self.bottomRightGroupBox.setDisabled)

        topLayout = QHBoxLayout()
        topLayout.addWidget(styleLabel)
        topLayout.addWidget(styleComboBox)
        topLayout.addStretch(1)
        topLayout.addWidget(self.useStylePaletteCheckBox)
        topLayout.addWidget(disableWidgetsCheckBox)

        mainLayout = QGridLayout()
        mainLayout.addLayout(topLayout, 0, 0, 1, 2)
        mainLayout.addWidget(self.topLeftGroupBox, 1, 0)
        mainLayout.addWidget(self.topRightGroupBox, 1, 1)
        mainLayout.addWidget(self.bottomLeftTabWidget, 2, 0)
        mainLayout.addWidget(self.bottomRightGroupBox, 2, 1)
        mainLayout.addWidget(self.progressBar, 3, 0, 1, 2)
        mainLayout.setRowStretch(1, 1)
        mainLayout.setRowStretch(2, 1)
        mainLayout.setColumnStretch(0, 1)
        mainLayout.setColumnStretch(1, 1)
        self.setLayout(mainLayout)

        self.setWindowTitle("Styles")
        self.changeStyle('Windows')
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.setObjectName("lastmonthwidget")

        # Background image
        self.setStyleSheet(LinearStyle.get(self.objectName(), '#273B4F'))

        # Size
        self.setMaximumSize(240, 235)

        # ---- Content ----
        self.layout = QVBoxLayout()
        # -- Header --
        self.header = QLabel(self.tr("Last Month"))
        self.header.setStyleSheet(
            "background-color: rgba(0,0,0,0); margin-top: 15; margin-left: 8 ")
        font = QFont('Roboto', pointSize=20, weight=QFont.Bold)
        self.header.setFont(font)
        self.header.setAlignment(Qt.AlignTop | Qt.AlignLeft)
        # -- Second Row : Changes --
        self.second_row = QHBoxLayout()
        self.second_row.setSpacing(0)
        self.second_row.setContentsMargins(0, 0, 0, 0)
        # Change (Fiat)
        change_fiat_value = dbhandler.get_change_last_month()
        change_fiat_value_str = "+" + \
            str(change_fiat_value) if change_fiat_value >= 0 else str(
                change_fiat_value)
        self.change_fiat = QLabel(change_fiat_value_str)
        self.change_fiat.setStyleSheet(
            "background-color: rgba(0,0,0,0); color:#D3EABD; margin-left: 8")
        font = QFont('Roboto', pointSize=15)
        self.change_fiat.setFont(font)
        self.change_fiat.setAlignment(Qt.AlignTop | Qt.AlignLeft)
        self.second_row.addWidget(self.change_fiat)
        # Fiat label
        self.fiat_label = QLabel(confighandler.get_fiat_currency().upper())
        self.fiat_label.setStyleSheet(
            "background-color: rgba(0,0,0,0);color:#D3EABD; margin-top:10px")
        self.fiat_label.setFont(QFont('Roboto', pointSize=7))
        self.fiat_label.setAlignment(Qt.AlignTop | Qt.AlignLeft)
        self.second_row.addWidget(self.fiat_label)
        # Change (%)
        first_total_wealth_current_month = dbhandler.get_first_total_wealth_current_month(
        )
        change_last_month = dbhandler.get_change_last_month()
        if first_total_wealth_current_month > 0:
            change_percentage = 100 * \
                (change_last_month /
                 first_total_wealth_current_month)
            change_percentage = round(change_percentage, 1)

            change_percentage_str = "+{}%".format(
                str(change_percentage
                    )) if change_percentage >= 0 else "{}%".format(
                        str(change_percentage))
        else:
            # No change this month
            change_percentage_str = "0%"

        self.change_percentage = QLabel(change_percentage_str)
        self.change_percentage.setStyleSheet(
            "background-color: rgba(0,0,0,0);color:#D3EABD; margin-right: 8")
        font = QFont()
        font.setFamily("Roboto")
        font.setPointSize(15)
        self.change_percentage.setFont(font)
        self.change_percentage.setAlignment(Qt.AlignTop | Qt.AlignLeft)
        self.second_row.addWidget(self.change_percentage)

        # -- Chart --
        self.lastmonthchart = TotalWealthHistoryChartView(self)
        data = dbhandler.get_total_wealth_by_day_current_month()
        self.lastmonthchart.setupChartWithData(data)

        self.layout.addWidget(self.header)
        self.layout.addLayout(self.second_row)
        self.layout.addWidget(self.lastmonthchart)

        self.setLayout(self.layout)
Example #60
0
    def __init__(self):
        super(QWidget, self).__init__()

        layout = QVBoxLayout(self)

        types = QGroupBox('TYPES')

        testGroup = QHBoxLayout(types)
        '''
		testGroup.addRow(QLabel("Base"), QCheckBox())
		testGroup.addRow(QLabel("DLC"), QCheckBox())
		testGroup.addRow(QLabel("Update"), QCheckBox())
		testGroup.addRow(QLabel("Demo"), QCheckBox())
		'''

        testGroup.addWidget(QLabel("Base"))
        testGroup.addWidget(ConfCheckbox('download.base'))
        testGroup.addStretch()

        testGroup.addWidget(QLabel("DLC"))
        testGroup.addWidget(ConfCheckbox('download.DLC'))
        testGroup.addStretch()

        testGroup.addWidget(QLabel("Update"))
        testGroup.addWidget(ConfCheckbox('download.update'))
        testGroup.addStretch()

        testGroup.addWidget(QLabel("Demo"))
        testGroup.addWidget(ConfCheckbox('download.demo'))

        layout.addWidget(types)

        region = QGroupBox('REGION')
        regionLayout = QHBoxLayout(region)
        regionLayout.addWidget(Region())
        layout.addWidget(region)

        layout.addStretch()