Что самый простой путь состоит в том, чтобы заряжать деньги по Интернету? [закрытый]

Вы должны использовать сигналы для уведомления об изменениях в других частях приложения, в этом случае создайте модель, которая каждый раз при изменении свойства будет уведомляться через сигналы, что сигналы будут подключены к слоту, и в этом слоте он изменит GUI.

import sys
from PyQt5 import QtCore, QtGui, QtWidgets

class Model(QtCore.QObject):
    D_Changed = QtCore.pyqtSignal(float)
    R_on_Changed = QtCore.pyqtSignal(float)
    R_off_Changed = QtCore.pyqtSignal(float)
    W_0_Changed = QtCore.pyqtSignal(float)

    def __init__(self, parent=None):
        super(Model, self).__init__(parent)
        self._d = 0.0
        self._r_on = 0.0
        self._r_off = 0.0
        self._w_0 = 0.0

    def D(self):
        return self._d

    def setD(self, d):
        if self._d == d: return
        self._d = d
        self.D_Changed.emit(d)

    def R_on(self):
        return self._r_on

    def setR_on(self, r_on):
        if self._r_on == r_on: return
        self._r_on = r_on
        self.R_on_Changed.emit(r_on)

    def R_off(self):
        return self._r_off

    def setR_off(self, r_off):
        if self._r_off == r_off: return
        self._r_off = r_off
        self.R_off_Changed.emit(r_off)

    D = QtCore.pyqtProperty(float, fget=D, fset=setD, notify=D_Changed)
    R_on = QtCore.pyqtProperty(float, fget=R_on, fset=setR_on, notify=R_on_Changed)
    R_off = QtCore.pyqtProperty(float, fget=R_off, fset=setR_off, notify=R_off_Changed)

class Widget(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(Widget, self).__init__(parent)

        model = Model(self)

        self.d_label = QtWidgets.QLabel()
        self.r_on_label = QtWidgets.QLabel()
        self.r_off_label = QtWidgets.QLabel()

        model.D_Changed.connect(self.on_D_Changed)
        model.R_on_Changed.connect(self.on_R_on_Changed)
        model.R_off_Changed.connect(self.on_R_off_Changed)

        model.setD(10.0)
        model.setR_on(100)
        model.setR_off(16000)

        d_le = QtWidgets.QDoubleSpinBox(
            maximum=sys.float_info.max, 
            value=model.D,
            valueChanged=model.setD
        )
        r_on_le = QtWidgets.QDoubleSpinBox(
            maximum=sys.float_info.max, 
            value=model.R_on,
            valueChanged=model.setR_on
        )
        r_off_le = QtWidgets.QDoubleSpinBox(
            maximum=sys.float_info.max, 
            value=model.R_off,
            valueChanged=model.setR_off
        )
        groub_box_input = QtWidgets.QGroupBox("Edit Values")
        flay = QtWidgets.QFormLayout()
        flay.addRow("D (nm)", d_le)
        flay.addRow("R_on (\u03A9)", r_on_le)
        flay.addRow("R_off (\u03A9)", r_off_le)
        groub_box_input.setLayout(flay)

        groub_box_output = QtWidgets.QGroupBox("Default Parameters:")
        vlay = QtWidgets.QVBoxLayout()
        vlay.addWidget(self.d_label)
        vlay.addWidget(self.r_on_label)
        vlay.addWidget(self.r_off_label)
        groub_box_output.setLayout(vlay)

        lay = QtWidgets.QVBoxLayout(self)
        lay.addWidget(groub_box_input)
        lay.addWidget(groub_box_output)

    @QtCore.pyqtSlot(float)
    def on_D_Changed(self, d):
        self.d_label.setText('D = {}'.format(d))

    @QtCore.pyqtSlot(float)
    def on_R_on_Changed(self, r_on):
        self.r_on_label.setText('R_on = {}\u03A9'.format(r_on))

    @QtCore.pyqtSlot(float)
    def on_R_off_Changed(self, r_off):
        self.r_off_label.setText('R_off = {}\u03A9'.format(r_off))

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    app.setStyle("fusion")
    w = Widget()
    w.show()
    sys.exit(app.exec_())
14
задан Rory Becker 13 October 2008 в 13:04
поделиться

6 ответов

Я использовал 2checkout.com в течение многих лет и нашел, что это хорошее решение. Я в конечном счете переключился на regnow, но только потому, что я хотел использовать в своих интересах их сеть филиала.

Вот некоторые опции:

  • 2checkout.com
  • regnow (также имеет сеть филиала)
  • paypal - В отличие от того, что думает большинство людей, Вам не нужен счет PayPal для покупки от Вас.
  • Google Checkout
7
ответ дан 1 December 2019 в 12:28
поделиться

Paypal является довольно прямым и безопасный .

14
ответ дан 1 December 2019 в 12:28
поделиться

Одна вещь принять во внимание при выборе поставщика состоит в том, должна ли у Вас быть повторяющаяся платежная модель. Ваши продукты заряжены как одноразовый сбор, или больше вдоль модели подписки? Вещи как PayPal ограничили поддержку повторяющихся платежей. [1]

[1], По крайней мере, они сделали, когда я исследовал его только что. Возможно, изменился теперь.

0
ответ дан 1 December 2019 в 12:28
поделиться

У меня был хороший опыт с PlugNPay. Их персонал поддержки является быстро реагирующим, и API прост в использовании.

http://www.plugnpay.com/

0
ответ дан 1 December 2019 в 12:28
поделиться

Google и Yahoo и предлагают достойную услугу, и они не требуют, чтобы Ваши клиенты создали учетную запись.

0
ответ дан 1 December 2019 в 12:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: