Ejemplo n.º 1
0
    def __init__(self, sid, parent=None):
        super(EditForm, self).__init__(parent)
        self.sid = sid
        data = self.callData(self.sid)
        
        
        try: 
            details = self.pullDetails(data[1])
            pagetitle = str(details[2]) +' Session' 
        except:
            details = []
            pagetitle = 'None'
        
        self.l1 = QLabel("Name")
        self.le = QLineEdit()
        self.le.setObjectName("name")
        self.le.setText(str(data[1]))
        
        self.l2 = QLabel("Start Date")
        self.le2 = QDateEdit()
        self.le2.setObjectName("startdate")
        #self.le2.setDate(data[2])
        
        self.l3 = QLabel("End Date")
        self.le3 = QDateEdit()
        self.le3.setObjectName("enddate")
        #self.le3.setDate(data[3])

        self.pb = QPushButton()
        self.pb.setObjectName("Submit")
        self.pb.setText("Submit")
        
        self.pb1 = QPushButton()
        self.pb1.setObjectName("Cancel")
        self.pb1.setText("Cancel")
        
        layout = QFormLayout()
        layout.addRow(self.l1, self.le)
        layout.addRow(self.l2, self.le2)
        layout.addRow(self.l3, self.le3)
        layout.addRow(self.pb1, self.pb)
        
        groupBox = QGroupBox('Edit Session')
        groupBox.setLayout(layout)
        
        grid = QGridLayout()
        grid.addWidget(groupBox, 0, 0)
        self.setLayout(grid)
        self.connect(self.pb, SIGNAL("clicked()"), lambda: self.button_click(data[0], self))
        self.connect(self.pb1, SIGNAL("clicked()"),lambda: self.button_close(self))
        self.setWindowTitle(pagetitle)
Ejemplo n.º 2
0
 def createEditor(self, parent, option, index):
     dateedit = QDateEdit(parent)
     dateedit.setDateRange(self.minimum, self.maximum)
     dateedit.setAlignment(Qt.AlignRight | Qt.AlignVCenter)
     dateedit.setDisplayFormat(self.format)
     dateedit.setCalendarPopup(True)
     return dateedit
Ejemplo n.º 3
0
    def __init__(self, id):
        super(CatalogFilterDate, self).__init__(id)
        self.label = QLabel(TEXT_LABEL_BETWEEN)

        self.datetime_begin_edit = QDateEdit(QDate.currentDate())
        self.datetime_end_edit = QDateEdit(QDate.currentDate())
        self.datetime_begin_edit.setCalendarPopup(True)
        self.datetime_end_edit.setCalendarPopup(True)
        self.expand_widget(self.datetime_begin_edit)
        self.expand_widget(self.datetime_end_edit)

        value_item = QGridLayout()
        value_item.addWidget(self.datetime_begin_edit, 0, 0)
        value_item.addWidget(QLabel(TEXT_LABEL_AND), 0, 1)
        value_item.addWidget(self.datetime_end_edit, 0, 2)
        self.value_item = value_item
Ejemplo n.º 4
0
 def setup(self):
     for label, value in self.data:
         if DEBUG:
             print "value:", value
         if label is None and value is None:
             # Separator: (None, None)
             self.formlayout.addRow(QLabel(" "), QLabel(" "))
             self.widgets.append(None)
             continue
         elif label is None:
             # Comment
             self.formlayout.addRow(QLabel(value))
             self.widgets.append(None)
             continue
         elif tuple_to_qfont(value) is not None:
             field = FontLayout(value, self)
         elif text_to_qcolor(value).isValid():
             field = ColorLayout(QColor(value), self)
         elif isinstance(value, (str, unicode)):
             field = QLineEdit(value, self)
         elif isinstance(value, (list, tuple)):
             selindex = value.pop(0)
             field = QComboBox(self)
             if isinstance(value[0], (list, tuple)):
                 keys = [key for key, _val in value]
                 value = [val for _key, val in value]
             else:
                 keys = value
             field.addItems(value)
             if selindex in value:
                 selindex = value.index(selindex)
             elif selindex in keys:
                 selindex = keys.index(selindex)
             elif not isinstance(selindex, int):
                 print >>STDERR, "Warning: '%s' index is invalid (label: " \
                                 "%s, value: %s)" % (selindex, label, value)
                 selindex = 0
             field.setCurrentIndex(selindex)
         elif isinstance(value, bool):
             field = QCheckBox(self)
             if value:
                 field.setCheckState(Qt.Checked)
             else:
                 field.setCheckState(Qt.Unchecked)
         elif isinstance(value, float):
             field = QLineEdit(repr(value), self)
         elif isinstance(value, int):
             field = QSpinBox(self)
             field.setRange(-1e9, 1e9)
             field.setValue(value)
         elif isinstance(value, datetime.datetime):
             field = QDateTimeEdit(self)
             field.setDateTime(value)
         elif isinstance(value, datetime.date):
             field = QDateEdit(self)
             field.setDate(value)
         else:
             field = QLineEdit(repr(value), self)
         self.formlayout.addRow(label, field)
         self.widgets.append(field)
Ejemplo n.º 5
0
 def createEditor(self, parent, option, index):
     """Overriding method createEditor"""
     if index.column() < 3:
         return None
     value = self.get_value(index)
     key = index.model().get_key(index)
     readonly = isinstance(value, tuple) or self.parent().readonly
     #---editor = DictEditor
     if isinstance(value, (list, tuple, dict)) and not self.inplace:
         editor = DictEditor(value,
                             key,
                             icon=self.parent().windowIcon(),
                             readonly=readonly)
         if editor.exec_() and not readonly:
             self.set_value(index, editor.get_copy())
         return None
     #---editor = ArrayEditor
     elif isinstance(value, ndarray) and ndarray is not FakeObject \
                                     and not self.inplace:
         if value.size == 0:
             return None
         editor = ArrayEditor(parent)
         if editor.setup_and_check(value, title=key, readonly=readonly):
             if editor.exec_():
                 # Only necessary for child class RemoteDictDelegate:
                 # (ArrayEditor does not make a copy of value)
                 self.set_value(index, value)
         return None
     #---editor = QDateTimeEdit
     elif isinstance(value, datetime.datetime) and not self.inplace:
         editor = QDateTimeEdit(value, parent)
         editor.setCalendarPopup(True)
         editor.setFont(get_font('dicteditor'))
         self.connect(editor, SIGNAL("returnPressed()"),
                      self.commitAndCloseEditor)
         return editor
     #---editor = QDateEdit
     elif isinstance(value, datetime.date) and not self.inplace:
         editor = QDateEdit(value, parent)
         editor.setCalendarPopup(True)
         editor.setFont(get_font('dicteditor'))
         self.connect(editor, SIGNAL("returnPressed()"),
                      self.commitAndCloseEditor)
         return editor
     #---editor = QTextEdit
     elif isinstance(value, (str, unicode)) and len(value) > 40:
         editor = TextEditor(value, key)
         if editor.exec_() and not readonly:
             conv = str if isinstance(value, str) else unicode
             self.set_value(index, conv(editor.get_copy()))
         return None
     #---editor = QLineEdit
     else:
         editor = QLineEdit(parent)
         editor.setFont(get_font('dicteditor'))
         editor.setAlignment(Qt.AlignLeft)
         self.connect(editor, SIGNAL("returnPressed()"),
                      self.commitAndCloseEditor)
         return editor
Ejemplo n.º 6
0
    def __init__(self):
        box = gui.widgetBox(self.controlArea, 'Yahoo Finance Stock Data',
                            orientation='horizontal')
        lbox = gui.widgetBox(box, orientation='vertical')
        hbox = gui.widgetBox(lbox, orientation='horizontal')
        gui.label(hbox, self, 'Ticker:')
        self.combo = combo = QComboBox(editable=True,
                                       insertPolicy=QComboBox.InsertAtTop)
        combo.addItems(self.symbols)
        hbox.layout().addWidget(combo)
        # combo = gui.comboBox(
        #     lbox, self, 'symbol',#, items=self.symbols,
        #     label='Ticker:', orientation='horizontal',
        #     editable=True, maximumContentsLength=-1)
        gui.rubber(combo.parentWidget())
        minDate = QDate.fromString(self.MIN_DATE.strftime(self.PY_DATE_FORMAT),
                                   self.QT_DATE_FORMAT)
        date_from = QDateEdit(
            QDate.fromString(self.date_from, self.QT_DATE_FORMAT),
            displayFormat=self.QT_DATE_FORMAT,
            minimumDate=minDate,
            calendarPopup=True)
        date_to = QDateEdit(
            QDate.fromString(self.date_to, self.QT_DATE_FORMAT),
            displayFormat=self.QT_DATE_FORMAT,
            minimumDate=minDate,
            calendarPopup=True)
        date_from.dateChanged.connect(
            lambda date: setattr(self, 'date_from',
                                 date.toString(self.QT_DATE_FORMAT)))
        date_to.dateChanged.connect(
            lambda date: setattr(self, 'date_to',
                                 date.toString(self.QT_DATE_FORMAT)))
        hbox = gui.hBox(lbox)
        gui.label(hbox, self, "From:")
        hbox.layout().addWidget(date_from)
        hbox = gui.hBox(lbox)
        gui.label(hbox, self, "To:")
        hbox.layout().addWidget(date_to)

        gui.radioButtons(box, self, 'data_granularity',
                         btnLabels=[i.name.capitalize().replace('_', ' ')
                                    for i in DataGranularity],
                         box='Resolution')
        self.button = gui.button(self.controlArea, self, 'Download',
                                 callback=self.download)
Ejemplo n.º 7
0
    def __init__(self):
        super(DateRangeDialog, self).__init__()
        self._fro = QDateEdit(datetime.date.today())
        self._to = QDateEdit(datetime.date.today() + datetime.timedelta(4))

        self._fro.dateChanged.connect(self._check_valid_range)
        self._to.dateChanged.connect(self._check_valid_range)

        self.buttons = QDialogButtonBox(QDialogButtonBox.Ok)
        self.buttons.accepted.connect(self.accept)

        layout = QVBoxLayout()
        layout.addWidget(QLabel('Please select a date range'))
        layout.addWidget(self._fro)
        layout.addWidget(self._to)
        layout.addWidget(self.buttons)
        self.setLayout(layout)
Ejemplo n.º 8
0
    def __init__(self, parent=None):
        super(AddForm, self).__init__(parent)

        self.l1 = QLabel("Name")
        self.le = QLineEdit()
        self.le.setObjectName("name")
        self.le.setText("")

        self.l2 = QLabel("Start Date")
        self.le2 = QDateEdit()
        self.le2.setObjectName("startdate")
        self.le2.setCalendarPopup(True)

        self.l3 = QLabel("End Date")
        self.le3 = QDateEdit()
        self.le3.setObjectName("enddate")
        self.le3.setCalendarPopup(True)

        self.pb = QPushButton()
        self.pb.setObjectName("Submit")
        self.pb.setText("Submit")

        self.pb1 = QPushButton()
        self.pb1.setObjectName("Cancel")
        self.pb1.setText("Cancel")

        layout = QFormLayout()
        layout.addRow(self.l1, self.le)
        layout.addRow(self.l2, self.le2)
        layout.addRow(self.l3, self.le3)
        layout.addRow(self.pb1, self.pb)

        groupBox = QGroupBox('Add Session')
        groupBox.setLayout(layout)

        grid = QGridLayout()
        grid.addWidget(groupBox, 0, 0)
        self.setLayout(grid)
        self.connect(self.pb, SIGNAL("clicked()"),
                     lambda: self.button_click(self))
        self.connect(self.pb1, SIGNAL("clicked()"),
                     lambda: self.button_close(self))
        self.setWindowTitle("Session Manager")
Ejemplo n.º 9
0
    def _create_widgets(self):
        self.stacked = QStackedWidget()
        self.datew = QDateEdit()
        self.datew.setDisplayFormat("yyyy-MM-dd")
        self.stacked.addWidget(self.datew)
        self.buildidw = QLineEdit()
        self.stacked.addWidget(self.buildidw)
        self.releasew = QComboBox()
        self.releasew.addItems([str(k) for k in sorted(releases())])
        self.stacked.addWidget(self.releasew)
        self.revw = QLineEdit()
        self.stacked.addWidget(self.revw)

        self.select_combo = QComboBox()
        self.select_combo.addItems(['date', 'buildid', 'release', 'changeset'])
        self.select_combo.activated.connect(self.stacked.setCurrentIndex)
Ejemplo n.º 10
0
    def __init__(self, parent=None):
        super(NewTaskDialog, self).__init__(parent)
        # task name
        nameLabel = QLabel(self.tr("Name:"))
        self.name = QLineEdit()
        nameLabel.setBuddy(self.name)
        # priority
        priorityLabel = QLabel(self.tr("Priority:"))
        self.priority = QComboBox()
        priorityLabel.setBuddy(self.priority)

        dateLabel = QLabel(self.tr("Deadline:"))
        self.deadline = QDateEdit()
        dateLabel.setBuddy(self.deadline)

        self.deadline.setCalendarPopup(True)
        self.deadline.calendarWidget().setFirstDayOfWeek(Qt.Monday)
        self.deadline.setDate(QDate(date.today()))

        createButton = QPushButton(self.tr("Save"))
        cancelButton = QPushButton(self.tr("Cancel"))

        buttonLayout = QHBoxLayout()
        buttonLayout.addStretch()
        buttonLayout.addWidget(createButton)
        buttonLayout.addWidget(cancelButton)

        layout = QGridLayout()
        layout.addWidget(nameLabel, 0, 0)
        layout.addWidget(self.name, 0, 1)

        layout.addWidget(priorityLabel, 1, 0)
        layout.addWidget(self.priority, 1, 1)

        layout.addWidget(dateLabel, 2, 0)
        layout.addWidget(self.deadline, 2, 1)
        layout.addLayout(buttonLayout, 3, 0, 3, 2)
        self.setLayout(layout)

        self.connect(self.deadline, SIGNAL("dateChanged(const QDate&)"), self, SLOT("changed()"))
        self.connect(createButton, SIGNAL("clicked()"), self, SLOT("accept()"))
        self.connect(cancelButton, SIGNAL("clicked()"), self, SLOT("reject()"))
        self.setWindowTitle(self.tr("Task"))
        self.resize(350, 120)
        self.setMinimumSize(QSize(250, 120))
        self.setMaximumSize(QSize(450, 120))
Ejemplo n.º 11
0
    def _create_widget(cls, c, parent, host=None):
        dt = QDateEdit(parent)
        dt.setObjectName(u'{0}_{1}'.format(cls._TYPE_PREFIX, c.name))
        dt.setCalendarPopup(True)

        # Set ranges
        if c.min_use_current_date:
            dt.setMinimumDate(date.today())
        else:
            dt.setMinimumDate(c.minimum)

        if c.max_use_current_date:
            dt.setMaximumDate(date.today())
        else:
            dt.setMaximumDate(c.maximum)

        # Set maximum date as current date
        dt.setDate(date.today())

        return dt
Ejemplo n.º 12
0
    def addPref(self):
        noi = 0
        self._listPerson.append([
            QLabel('%d' % (noi + 1), self),
            QDateEdit(self),
            QComboBox(self),
            QComboBox(self),
            QPushButton(self),
            QComboBox(self),
            QComboBox(self)
        ])

        temp = self._listPerson[0]

        temp[S.birth].setDisplayFormat(
            QApplication.translate("Page01", "dd MMM yyyy", None,
                                   QApplication.UnicodeUTF8))
        temp[S.birth].setObjectName('Bir%d' % noi)
        temp[S.birth].setCurrentSection(QDateEdit.YearSection)

        temp[S.decpos].setObjectName('Dec%d' % noi)
        temp[S.decpos].addItems(['vous'])
        temp[S.decpos].setEnabled(False)

        temp[S.decnum].setObjectName('Foy%d' % noi)
        temp[S.decnum].setEnabled(False)

        temp[S.fampos].addItems(['parent 1'])
        temp[S.fampos].setObjectName('Fam%d' % noi)
        temp[S.fampos].setEnabled(False)

        temp[S.famnum].setObjectName('Fam%d' % noi)
        temp[S.famnum].setEnabled(False)

        temp[S.decbtn].setObjectName('But%d' % noi)

        for i in xrange(7):
            self.gridLayout.addWidget(temp[i], noi + 2, i)
            self.gridLayout.setAlignment(temp[i], Qt.AlignCenter)

        self.emit(SIGNAL('compoChanged()'))
Ejemplo n.º 13
0
 def create_dateedit(self,
                     text,
                     option,
                     tip=None,
                     min_date=None,
                     max_date=None):
     label = QLabel(text)
     dateedit = QDateEdit()
     dateedit.setDisplayFormat('dd MMM yyyy')
     if min_date: dateedit.setMinimumDate(min_date)
     if max_date: dateedit.setMaximumDate(max_date)
     if tip: dateedit.setToolTip(tip)
     self.dateedits[dateedit] = option
     layout = QHBoxLayout()
     for subwidget in (label, dateedit):
         layout.addWidget(subwidget)
     layout.addStretch(1)
     layout.setContentsMargins(0, 0, 0, 0)
     widget = QWidget(self)
     widget.setLayout(layout)
     return widget
Ejemplo n.º 14
0
    def addRow(self):
        noi = len(self._listPerson)
        self._listPerson.append([
            QLabel('%d' % (noi + 1), self),
            QDateEdit(self),
            QComboBox(self),
            QComboBox(self),
            QPushButton(self),
            QComboBox(self),
            QComboBox(self)
        ])
        temp = self._listPerson[-1]

        temp[S.birth].setDisplayFormat(
            QApplication.translate("Page01", "dd MMM yyyy", None,
                                   QApplication.UnicodeUTF8))
        temp[S.birth].setObjectName('Bir%d' % noi)
        temp[S.birth].setCurrentSection(QDateEdit.YearSection)

        temp[S.decpos].setObjectName('Dec%d' % noi)
        temp[S.decpos].addItems(['vous', 'conj', 'pac'])

        temp[S.decnum].setObjectName('Foy%d' % noi)

        temp[S.fampos].setObjectName('Fam%d' % noi)
        temp[S.fampos].addItems(['parent 1', 'parent 2', 'enfant'])

        temp[S.famnum].setObjectName('Fam%d' % noi)

        temp[S.decbtn].setObjectName('But%d' % noi)

        for i in xrange(7):
            self.gridLayout.addWidget(temp[i], noi + 2, i)
            self.gridLayout.setAlignment(temp[i], Qt.AlignCenter)

        self.rmv_btn.setEnabled(True)
        if len(self.scenario.indiv) == 9:
            self.add_btn.setEnabled(False)
Ejemplo n.º 15
0
 def createEditor(self, parent, option, index):
     editor = QDateEdit(parent)
     editor.setCalendarPopup(True)
     return editor
Ejemplo n.º 16
0
    def __init__(self, student, term, parent=None):
        super(TermPayDialog, self).__init__(parent)
        #term data
        self.term = term
        terms = self.pullOnes('terms', self.term)
        session = self.pullOnes('session', terms['sessionID'])
        self.termname = str(
            session['name']) + ' ' + terms['name'] + ' Term Report'
        self.pagetitle = self.termname

        #student data
        self.student = student
        st = self.pullStudent(self.student)
        fullname = str(st['surname'] + ' ' + st['firstname'] + ' ' +
                       st['othername']).title()
        schno = st['schno']
        db_class = 'student_class' + str(self.term)
        student_clasz = self.pullOne(db_class, {'studentID': self.student})

        clasz = self.pullOne('datas', {'id': student_clasz['classID']})
        self.clasz = clasz['subID']
        armz = self.pullOne('datas', {'id': clasz['subID']})
        classname = armz['abbrv'] + ' ' + clasz['abbrv']
        #pull all CA

        fullNameText = QLabel(fullname)
        schnoText = QLabel(schno)
        classText = QLabel(classname)

        topLay = QGridLayout()
        topLay.addWidget(fullNameText, 0, 0)
        topLay.addWidget(schnoText, 1, 0)
        topLay.addWidget(classText, 2, 0)

        groupBox = QGroupBox('Current Payment')
        groupBox.setLayout(topLay)

        payAmountText = QLabel('Amount')
        self.payBalanceText = QLabel('Balance')
        self.payBalanceAmount = QLabel('0.0')
        self.payAmount = QLineEdit()
        self.payAmount.setObjectName("pay")
        self.payAmount.setPlaceholderText("000.00")
        payText = QLabel('Select Account')
        self.payMethod = QComboBox()
        accounts = self.pullAccount()
        self.holdaccount = {}
        i = 0
        for h in accounts:
            tex = str(h['name']).upper()
            self.payMethod.addItem(tex)
            self.holdaccount[i] = h['id']

        payDateText = QLabel('Balance')
        self.payDate = QDateEdit()
        self.payDate.setDateTime(QDateTime.currentDateTime())
        self.payDate.setCalendarPopup(True)
        tellerText = QLabel('Teller/Receipt No.')
        self.teller = QLineEdit()
        self.teller.setObjectName("teller")
        self.teller.textChanged.connect(self.pullTeller)
        self.teller.setPlaceholderText("0000000")

        self.hw = QGridLayout()
        self.hw.addWidget(payAmountText, 0, 0)
        self.hw.addWidget(self.payAmount, 0, 1)
        self.hw.addWidget(tellerText, 0, 2)
        self.hw.addWidget(self.teller, 0, 3)
        self.hw.addWidget(payText, 1, 0)
        self.hw.addWidget(self.payMethod, 1, 1)
        self.hw.addWidget(payDateText, 1, 2)
        self.hw.addWidget(self.payDate, 1, 3)

        head_col1 = QLabel('ITEM')
        head_col2 = QLabel('AMOUNT')
        head_col3 = QLabel('FULL PAY')
        head_col4 = QLabel('PART PAY')
        head_col5 = QLabel('BALANCE')

        layout1 = QGridLayout()
        layout1.addWidget(head_col1, 0, 0)
        layout1.addWidget(head_col2, 0, 1)
        layout1.addWidget(head_col3, 0, 2)
        layout1.addWidget(head_col4, 0, 3)
        layout1.addWidget(head_col5, 0, 4)

        arr = self.pullFees()
        feex = arr[1]
        payx = arr[2]

        normal_pay = []
        full_pay = []
        part_pay = []
        bal_pay = []
        ko = 1

        self.holdval = []
        self.holdfee = {}
        self.holdtextfee = {}
        self.holdtextfeeperm = {}
        self.holdpaid = {}
        self.holdcpaid = {}
        self.holdtextpaid = {}
        self.holdpayments = {}
        self.holdtextbal = {}
        self.holdbal = {}

        for val in arr[0]:
            paid = False
            s_normal_pay = []
            s_full_pay = []
            s_part_pay = []
            self.holdval.append(val)
            mz = self.pullOne('datas', {'id': val})
            self.num = val
            self.d = QLabel('Text')
            self.d.setText(str(mz['name']).upper())
            self.d1 = QLabel()
            if val in feex:
                fk = feex[int(val)].values()
                normal_pay.append(float(fk[0]))
                s_normal_pay.append(float(fk[0]))
                self.d1.setText(str("{:,}".format(float(fk[0]))).upper())
            else:
                self.d1.setText(str('-.-').upper())

            nHbo1 = QVBoxLayout()
            if val in feex:
                fk = feex[int(val)].values()
                fky = feex[int(val)].keys()
                self.c = QCheckBox('cb' + str(val))
                self.c.setEnabled(False)
                self.c.setText(str("{:,}".format(float(fk[0]))).upper())
                self.c.setObjectName("chk" + str(val))
                self.holdfee[int(val)] = self.c
                self.holdtextfee[int(val)] = fk[0]
                self.holdtextfeeperm[int(val)] = fk[0]
                self.c.toggled.connect(lambda state, x=fky[0], fee=int(
                    val), money=fk[0]: self.chkFunc(x, fee, money, self.c))
                if (val in payx) and len(payx[int(val)]) == 1:
                    pk = payx[int(val)].values()
                    self.c.setChecked(True)
                    if float(pk[0]) == float(fk[0]):
                        full_pay.append(float(fk[0]))
                        s_full_pay.append(float(fk[0]))
                        paid = True
                else:
                    self.c.setChecked(False)
                nHbo1.addWidget(self.c)
            else:
                nHbo1.addWidget(QLabel('-.-'))
                #nHbo1.hide()

            nHbo2 = QHBoxLayout()
            fk = feex[int(val)].values()
            fky = feex[int(val)].keys()
            c2 = QCheckBox()
            c2.setEnabled(False)
            c2.setMaximumWidth(15)
            c2.setObjectName("chk2" + str(val))
            p = QLineEdit()
            p.setDisabled(True)
            p.setMaximumWidth(50)
            p.setFixedWidth(51)
            p.setObjectName("pay" + str(val))
            p.setPlaceholderText("00.0")
            self.holdpaid[int(val)] = p
            self.holdcpaid[int(val)] = c2
            self.holdtextpaid[int(val)] = list()
            c2.toggled.connect(
                lambda state, x=fky[0], fee=int(val): self.chkFunc1(x, fee, p))
            if paid == False:
                nHbo2.addWidget(c2)
                nHbo2.addWidget(p)
                if val in payx and len(payx[val]) > 0:
                    for j in payx[int(val)]:
                        self.c1 = QCheckBox('cb1' + str(j))
                        self.c1.setEnabled(False)
                        self.c1.setText(str(payx[int(val)][j]).upper())
                        self.c1.setObjectName("chk" + str(j))
                        self.c1.toggled.connect(
                            lambda state, x=j: self.chkFunc1(x))
                        self.c1.setChecked(True)
                        part_pay.append(float(fk[0]))
                        s_part_pay.append(float(fk[0]))
                        self.holdpayments[j] = self.c1
                        self.holdtextpaid[val].append(float(fk[0]))
                        nHbo2.addWidget(self.c1)
                else:
                    pass
            else:
                p.hide()
                c2.hide()
                nHbo2.addWidget(c2)
                nHbo2.addWidget(p)

            s_tot = sum(s_normal_pay) - (sum(s_full_pay) + sum(s_part_pay))
            bal_pay.append(float(s_tot))
            d2 = QLabel('')
            self.holdbal[int(val)] = d2
            d2.setText(str("{:,}".format(s_tot)).upper())
            self.holdtextbal[int(val)] = s_tot

            layout1.addWidget(self.d, ko, 0)
            layout1.addWidget(self.d1, ko, 1)
            layout1.addLayout(nHbo1, ko, 2)
            layout1.addLayout(nHbo2, ko, 3)
            layout1.addWidget(d2, ko, 4)
            ko += 1

        normal_payx = sum(normal_pay)
        full_payx = sum(full_pay)
        part_payx = sum(part_pay)
        bal_payx = sum(bal_pay)

        self.head_col1 = QLabel('ITEM')
        self.head_col2 = QLabel(str("{:,}".format(normal_payx)).upper())
        self.head_col3 = QLabel(str("{:,}".format(full_payx)).upper())
        self.head_col4 = QLabel(str("{:,}".format(part_payx)).upper())
        self.head_col5 = QLabel(str("{:,}".format(bal_payx)).upper())

        layout1.addWidget(self.head_col1, ko, 0)
        layout1.addWidget(self.head_col2, ko, 1)
        layout1.addWidget(self.head_col3, ko, 2)
        layout1.addWidget(self.head_col4, ko, 3)
        layout1.addWidget(self.head_col5, ko, 4)

        self.hw1 = QGridLayout()
        self.hw1.addWidget(self.payBalanceText, 0, 0)
        self.hw1.addWidget(self.payBalanceAmount, 1, 0)

        second1 = QGridLayout()
        second1.addLayout(self.hw, 0, 0)
        second1.addLayout(layout1, 1, 0)
        second1.addLayout(self.hw1, 2, 0)

        groupBox1 = QGroupBox('Current Payment')
        groupBox1.setLayout(second1)

        self.pb = QPushButton()
        self.pb.setObjectName("Add")
        self.pb.setText("Add Fees")

        self.pb1 = QPushButton()
        self.pb1.setObjectName("Cancel")
        self.pb1.setText("Cancel")

        self.pb2 = QPushButton()
        self.pb2.setObjectName("Add")
        self.pb2.setText("Print Receipts")

        hbo = QHBoxLayout()
        hbo.addWidget(self.pb1)
        hbo.addStretch()
        hbo.addWidget(self.pb)
        hbo.addStretch()
        hbo.addWidget(self.pb2)
        groupBox2 = QGroupBox('')
        groupBox2.setLayout(hbo)

        grid = QGridLayout()
        grid.addWidget(groupBox, 0, 0)
        grid.addWidget(groupBox1, 1, 0)
        grid.addWidget(groupBox2, 2, 0)

        self.setLayout(grid)
        self.connect(self.pb, SIGNAL("clicked()"), lambda: self.button_click())
        self.connect(self.pb1, SIGNAL("clicked()"),
                     lambda: self.button_close(self))

        self.setWindowTitle(self.pagetitle)
Ejemplo n.º 17
0
    def __init__(self, parent=None):
        '''
        Constructor
        '''
        QWidget.__init__(self, parent)
        self.mainLayout = QVBoxLayout()
        self.setLayout(self.mainLayout)

        self.addTalkGroupBox = QGroupBox("Add Talk")
        self.mainLayout.addWidget(self.addTalkGroupBox)

        self.addTalkLayout = QFormLayout()
        self.addTalkGroupBox.setLayout(self.addTalkLayout)

        # Title
        self.titleLabel = QLabel("Title")
        self.titleLineEdit = QLineEdit()
        if hasattr(QLineEdit(), 'setPlaceholderText'):
            self.titleLineEdit.setPlaceholderText("Title of the presentation")
        self.titleLabel.setBuddy(self.titleLineEdit)
        self.addTalkLayout.addRow(self.titleLabel, self.titleLineEdit)

        # Presenter
        self.presenterLabel = QLabel("Presenter")
        self.presenterLineEdit = QLineEdit()
        if hasattr(QLineEdit(), 'setPlaceholderText'):
            self.presenterLineEdit.setPlaceholderText(
                "Name person or people presenting (comma separated)")
        self.presenterLabel.setBuddy(self.presenterLineEdit)
        self.addTalkLayout.addRow(self.presenterLabel, self.presenterLineEdit)

        # Event
        self.eventLabel = QLabel("Event")
        self.eventLineEdit = QLineEdit()
        if hasattr(QLineEdit(), 'setPlaceholderText'):
            self.eventLineEdit.setPlaceholderText(
                "The name of the Event this talk is being presented at")
        self.eventLabel.setBuddy(self.eventLineEdit)
        self.addTalkLayout.addRow(self.eventLabel, self.eventLineEdit)

        # Room
        self.roomLabel = QLabel("Room")
        self.roomLineEdit = QLineEdit()
        if hasattr(QLineEdit(), 'setPlaceholderText'):
            self.roomLineEdit.setPlaceholderText(
                "The Room in which the presentation is taking place")
        self.roomLabel.setBuddy(self.roomLineEdit)
        self.addTalkLayout.addRow(self.roomLabel, self.roomLineEdit)

        # Date
        current_date = QDate()
        self.dateLabel = QLabel("Date")
        self.dateEdit = QDateEdit()
        self.dateEdit.setDate(current_date.currentDate())
        self.dateLabel.setBuddy(self.dateEdit)
        self.addTalkLayout.addRow(self.dateLabel, self.dateEdit)

        self.dateEdit.setCalendarPopup(True)

        # Time
        current_time = QTime()
        self.timeLabel = QLabel("Time")
        self.timeEdit = QTimeEdit()
        self.timeEdit.setTime(current_time.currentTime())
        self.timeLabel.setBuddy(self.dateEdit)
        self.addTalkLayout.addRow(self.timeLabel, self.timeEdit)

        # Buttons
        addIcon = QIcon.fromTheme("list-add")
        cancelIcon = QIcon.fromTheme("edit-clear")

        self.buttonsWidget = QHBoxLayout()
        self.addButton = QPushButton("Add")
        self.addButton.setIcon(addIcon)
        self.cancelButton = QPushButton("Cancel")
        self.cancelButton.setIcon(cancelIcon)
        self.buttonsWidget.addWidget(self.addButton)
        self.buttonsWidget.addWidget(self.cancelButton)
        self.addTalkLayout.addRow(None, self.buttonsWidget)
Ejemplo n.º 18
0
    def __init__(self, student, term, edit=None, parent=None):
        super(FormStudentMedical, self).__init__(parent)
        self.student = student
        self.term = term

        self.db_class = 'student_class' + str(self.term)
        self.db_subject = 'student_subject' + str(self.term)

        student = self.pullData('students', 1, {'id': self.student})
        term = self.pullData('terms', 1, {'id': self.term})
        session = self.pullData('session', 1, {'id': term['sessionID']})

        self.session = str(
            str(session['name']) + " " + str(term['name'] + " Term")).title()
        self.fullname = str(
            str(student['surname']) + " " + str(student['firstname'])).title()
        self.sessionID = session['id']

        fullnameLbl = QLabel(self.fullname)
        fullnameLbl.setFont(QFont("Candara", 14, QFont.Bold))
        termLbl = QLabel(self.session)
        termLbl.setFont(QFont("Candara", 12, QFont.Bold))

        ailmentLbl = QLabel('Ailment/Allergies')
        treatmentLbl = QLabel('Treatment/Medication')
        self.ailmentData = QPlainTextEdit()
        self.treatmentData = QPlainTextEdit()

        self.pb = QPushButton()
        self.pb.setObjectName("close")
        self.pb.setText("Close")

        self.pb1 = QPushButton()
        self.pb1.setObjectName("Add")
        self.pb1.setText("Add")

        self.pb2 = QPushButton()
        self.pb2.setObjectName("Edit")
        self.pb2.setText("Edit")

        self.connect(self.pb1, SIGNAL("clicked()"),
                     lambda: self.button_click())
        self.connect(self.pb2, SIGNAL("clicked()"), lambda: self.button_edit())
        self.connect(self.pb, SIGNAL("clicked()"), lambda: self.button_close())

        self.dateLbl = QLabel('Choose Date:')
        currentDate = QDate()
        self.dateData = QDateEdit()
        self.dateData.setDate(currentDate.currentDate())
        self.dateData.setCalendarPopup(True)

        h_box = QHBoxLayout()
        h_box.addWidget(self.dateLbl)
        h_box.addWidget(self.dateData)

        h_box1 = QHBoxLayout()
        h_box1.addWidget(self.pb)
        h_box1.addWidget(self.pb1)
        h_box1.addWidget(self.pb2)

        self.v_box = QVBoxLayout()
        self.v_box.addWidget(fullnameLbl)
        self.v_box.addWidget(termLbl)
        self.v_box.addLayout(h_box)
        self.v_box.addWidget(ailmentLbl)
        self.v_box.addWidget(self.ailmentData)
        self.v_box.addWidget(treatmentLbl)
        self.v_box.addWidget(self.treatmentData)
        self.v_box.addLayout(h_box1)

        if edit and len(edit) > 0:
            self.edit = edit
            self.editRow(edit)
            self.pb1.hide()
            self.pb2.show()
        else:
            self.edit = None
            self.pb1.show()
            self.pb2.hide()

        self.setLayout(self.v_box)
        self.setWindowTitle("Medical Report Form")
Ejemplo n.º 19
0
    def __init__(self, student, term, edit=None, parent=None):
        super(FormStudentMisconduct, self).__init__(parent)
        self.student = student
        self.term = term

        self.db_class = 'student_class' + str(self.term)
        self.db_subject = 'student_subject' + str(self.term)

        student = self.pullData('students', 1, {'id': self.student})
        term = self.pullData('terms', 1, {'id': self.term})
        session = self.pullData('session', 1, {'id': term['sessionID']})

        self.session = str(
            str(session['name']) + " " + str(term['name'] + " Term")).title()
        self.fullname = str(
            str(student['surname']) + " " + str(student['firstname'])).title()
        self.sessionID = session['id']

        fullnameLbl = QLabel(self.fullname)
        fullnameLbl.setFont(QFont("Candara", 14, QFont.Bold))
        termLbl = QLabel(self.session)
        termLbl.setFont(QFont("Candara", 12, QFont.Bold))

        actionLbl = QLabel('Action')
        reactionLbl = QLabel('Corrective/Punitive Measure')
        issuerLbl = QLabel('Issuer')
        self.actionData = QPlainTextEdit()
        self.reactionData = QPlainTextEdit()
        self.staffData = QLineEdit()
        self.staffData.setPlaceholderText(
            'Staff Name or  Deparment or Organisation')

        self.pb = QPushButton()
        self.pb.setObjectName("close")
        self.pb.setText("Close")

        self.pb1 = QPushButton()
        self.pb1.setObjectName("Add")
        self.pb1.setText("Add")

        self.pb2 = QPushButton()
        self.pb2.setObjectName("Edit")
        self.pb2.setText("Edit")

        self.connect(self.pb1, SIGNAL("clicked()"),
                     lambda: self.button_click())
        self.connect(self.pb2, SIGNAL("clicked()"), lambda: self.button_edit())
        self.connect(self.pb, SIGNAL("clicked()"), lambda: self.button_close())

        self.dateLbl = QLabel('Choose Date:')
        currentDate = QDate()
        self.dateData = QDateEdit()
        self.dateData.setDate(currentDate.currentDate())
        self.dateData.setCalendarPopup(True)

        h_box = QHBoxLayout()
        h_box.addWidget(self.dateLbl)
        h_box.addWidget(self.dateData)

        h_box2 = QHBoxLayout()
        h_box2.addWidget(issuerLbl)
        h_box2.addWidget(self.staffData)

        h_box1 = QHBoxLayout()
        h_box1.addWidget(self.pb)
        h_box1.addWidget(self.pb1)
        h_box1.addWidget(self.pb2)

        self.v_box = QVBoxLayout()
        self.v_box.addWidget(fullnameLbl)
        self.v_box.addWidget(termLbl)
        self.v_box.addLayout(h_box)
        self.v_box.addWidget(actionLbl)
        self.v_box.addWidget(self.actionData)
        self.v_box.addWidget(reactionLbl)
        self.v_box.addWidget(self.reactionData)
        self.v_box.addLayout(h_box2)
        self.v_box.addLayout(h_box1)

        if edit and len(edit) > 0:
            self.edit = edit
            self.editRow(edit)
            self.pb1.hide()
            self.pb2.show()
        else:
            self.edit = None
            self.pb1.show()
            self.pb2.hide()

        self.setLayout(self.v_box)
        self.setWindowTitle("Misconduct Report Form")
Ejemplo n.º 20
0
    def __init__(self, parent=None):
        super(TalkDetailsWidget, self).__init__(parent)

        self.layout = QGridLayout()
        self.setLayout(self.layout)

        self.buttonLayout = QHBoxLayout()

        saveIcon = QIcon.fromTheme("document-save")
        self.saveButton = QPushButton('Save Talk')
        self.saveButton.setIcon(saveIcon)
        self.buttonLayout.addWidget(self.saveButton)

        self.layout.addLayout(self.buttonLayout, 0, 1, 1, 1)

        self.titleLabel = QLabel('Title')
        self.titleLineEdit = QLineEdit()
        self.presenterLabel = QLabel('Presenter')
        self.presenterLineEdit = QLineEdit()
        self.layout.addWidget(self.titleLabel, 1, 0, 1, 1)
        self.layout.addWidget(self.titleLineEdit, 1, 1, 1, 1)
        self.layout.addWidget(self.presenterLabel, 1, 2, 1, 1)
        self.layout.addWidget(self.presenterLineEdit, 1, 3, 1, 1)

        self.eventLabel = QLabel('Event')
        self.eventLineEdit = QLineEdit()
        self.categoryLabel = QLabel('Category')
        self.categoryLineEdit = QLineEdit()

        self.layout.addWidget(self.eventLabel, 2, 0, 1, 1)
        self.layout.addWidget(self.eventLineEdit, 2, 1, 1, 1)
        self.layout.addWidget(self.categoryLabel, 2, 2, 1, 1)
        self.layout.addWidget(self.categoryLineEdit, 2, 3, 1, 1)

        self.roomLabel = QLabel('Room')
        self.roomLineEdit = QLineEdit()
        self.dateLayout = QHBoxLayout()
        self.dateLabel = QLabel('Date')
        self.dateEdit = QDateEdit()
        currentDate = QDate()
        self.dateEdit.setDate(currentDate.currentDate())
        self.dateEdit.setCalendarPopup(True)

        self.layout.addWidget(self.roomLabel, 3, 0, 1, 1)
        self.layout.addWidget(self.roomLineEdit, 3, 1, 1, 1)
        self.dateLayout.addWidget(self.dateEdit)
        self.layout.addWidget(self.dateLabel, 3, 2, 1, 1)
        self.layout.addLayout(self.dateLayout, 3, 3, 1, 1)

        self.startTimeLayout = QHBoxLayout()
        self.startTimeLabel = QLabel('Start Time')
        self.startTimeEdit = QTimeEdit()
        self.startTimeLayout.addWidget(self.startTimeEdit)
        self.endTimeLayout = QHBoxLayout()
        self.endTimeLabel = QLabel('End Time')
        self.endTimeEdit = QTimeEdit()
        self.endTimeLayout.addWidget(self.endTimeEdit)

        self.layout.addWidget(self.startTimeLabel, 4, 0, 1, 1)
        self.layout.addLayout(self.startTimeLayout, 4, 1, 1, 1)
        self.layout.addWidget(self.endTimeLabel, 4, 2, 1, 1)
        self.layout.addLayout(self.endTimeLayout, 4, 3, 1, 1)

        self.descriptionLabel = QLabel('Description')
        self.descriptionLabel.setAlignment(Qt.AlignTop)
        self.descriptionTextEdit = QPlainTextEdit()
        self.layout.addWidget(self.descriptionLabel, 5, 0, 1, 1)
        self.layout.addWidget(self.descriptionTextEdit, 5, 1, 1, 3)
Ejemplo n.º 21
0
        def initGui():
            def setData():
                buttonPath.setText(self.data["path"])
                radioVisual.setChecked(self.data["isVisual"])
                radioAnalytic.setChecked(not self.data["isVisual"])
                chkBoxSquare.setChecked(self.data["isSquare"])
                d1 = self.data["date1"]
                d2 = self.data["date2"]
                date1.setDate(d1)
                date2.setDate(d2)
                date1.setMaximumDate(d2.addDays(-1))
                date2.setMinimumDate(d1.addDays(+1))
                spinDay.setValue(d1.daysTo(d2))

            def connect():
                buttonOK.clicked.connect(self.onOK)
                buttonPath.clicked.connect(self.onPath)
                date1.dateChanged.connect(self.onDateChanged1)
                date2.dateChanged.connect(self.onDateChanged2)
                spinDay.valueChanged.connect(self.onValueChanged)

            windowTitle = "Setting download images Planet Labs"
            self.setWindowTitle(windowTitle)
            self.setWindowIcon(icon)

            grpImage = QGroupBox("Images", self)
            radioVisual = QRadioButton("Visual", grpImage)
            radioVisual.setObjectName("rbVisual")
            radioAnalytic = QRadioButton("Analytic", grpImage)
            chkBoxSquare = QCheckBox("Square thumbnail", grpImage)
            chkBoxSquare.setObjectName("cbBoxSquare")
            buttonPath = QPushButton(self.titleSelectDirectory, grpImage)
            buttonPath.setObjectName("pbPath")

            layoutRadioButtons = QHBoxLayout()
            for item in (radioVisual, radioAnalytic):
                layoutRadioButtons.addWidget(item)

            layoutImage = QVBoxLayout(grpImage)
            layoutImage.addLayout(layoutRadioButtons)
            layoutImage.addWidget(chkBoxSquare)
            layoutImage.addWidget(buttonPath)

            grpDateSearch = QGroupBox("Dates for search", self)
            date1 = QDateEdit(grpDateSearch)
            date1.setObjectName("deDate1")
            date2 = QDateEdit(grpDateSearch)
            date2.setObjectName("deDate2")
            for item in [date1, date2]:
                item.setCalendarPopup(True)
                format = item.displayFormat().replace("yy", "yyyy")
                item.setDisplayFormat(format)
            spinDay = QSpinBox(grpDateSearch)
            spinDay.setObjectName("sbDay")
            spinDay.setSingleStep(1)
            spinDay.setSuffix(" Days")
            spinDay.setRange(1, 1000 * 360)

            layoutDate = QHBoxLayout(grpDateSearch)
            layoutDate.addWidget(QLabel("From", grpDateSearch))
            layoutDate.addWidget(date1)
            layoutDate.addWidget(QLabel("To", grpDateSearch))
            layoutDate.addWidget(date2)
            layoutDate.addWidget(spinDay)

            buttonOK = QPushButton("OK", self)

            layout = QVBoxLayout(self)
            layout.addWidget(grpImage)
            layout.addWidget(grpDateSearch)
            layout.addWidget(buttonOK)

            self.resize(5 * len(windowTitle) + 200, 30)

            if not self.data is None:
                setData()
            else:
                radioVisual.setChecked(True)
                radioAnalytic.setChecked(False)
                chkBoxSquare.setChecked(False)
                d2 = QDate.currentDate()
                d1 = d2.addMonths(-1)
                date1.setDate(d1)
                date2.setDate(d2)
                date1.setMaximumDate(d2.addDays(-1))
                date2.setMinimumDate(d1.addDays(+1))
                spinDay.setValue(d1.daysTo(d2))

            connect()
    def __init__(self, parent = None):
        QDialog.__init__(self, parent)
        
        self.resize(290, 136);
        self.setWindowTitle("Reference Positions")
        sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed);
        sizePolicy.setHorizontalStretch(0);
        sizePolicy.setVerticalStretch(0);
        sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth());
        self.setSizePolicy(sizePolicy);
        verticalLayoutDlg = QVBoxLayout(self)
        verticalLayoutDlg.setObjectName(("verticalLayoutDlg"));
        frameDate = QFrame(self);
        frameDate.setObjectName(("frameDate"));
        frameDate.setFrameShape(QFrame.StyledPanel);
        frameDate.setFrameShadow(QFrame.Raised);
        horizontalLayoutDate = QHBoxLayout(frameDate);
        horizontalLayoutDate.setObjectName(("horizontalLayoutDate"));
        labelDate = QLabel(frameDate);
        labelDate.setObjectName(("labelDate"));
        labelDate.setMinimumSize(QSize(70, 0));
        labelDate.setMaximumSize(QSize(70, 16777215));
        labelDate.setText("Date:")

        horizontalLayoutDate.addWidget(labelDate);

        self.dtpDate = QDateEdit(frameDate);
        self.dtpDate.setObjectName(("dtpDate"));

        horizontalLayoutDate.addWidget(self.dtpDate);

        self.btnDtpDate =  QToolButton(frameDate);
        self.btnDtpDate.setObjectName(("btnDtpDate"));
        sizePolicy.setHeightForWidth(self.btnDtpDate.sizePolicy().hasHeightForWidth());
        self.btnDtpDate.setSizePolicy(sizePolicy);
        self.btnDtpDate.setMinimumSize(QSize(25, 0));
        self.btnDtpDate.setMaximumSize(QSize(25, 16777215));
        icon = QIcon()
        icon.addPixmap(QPixmap(("Resource/calender.png")), QIcon.Normal, QIcon.Off)
        self.btnDtpDate.setIcon(icon)

        horizontalLayoutDate.addWidget(self.btnDtpDate);


        verticalLayoutDlg.addWidget(frameDate);

        frameModel = QFrame(self);
        frameModel.setObjectName(("frameModel"));
        frameModel.setFrameShape(QFrame.StyledPanel);
        frameModel.setFrameShadow(QFrame.Raised);
        horizontalLayoutModel = QHBoxLayout(frameModel);
        horizontalLayoutModel.setObjectName(("horizontalLayoutModel"));
        labelModel = QLabel(frameModel);
        labelModel.setObjectName(("labelModel"));
        labelModel.setMinimumSize(QSize(70, 0));
        labelModel.setMaximumSize(QSize(70, 16777215));
        labelModel.setText("Model:")

        horizontalLayoutModel.addWidget(labelModel);

        self.cmbModel = QComboBox(frameModel);
        self.cmbModel.setObjectName(("cmbModel"));

        horizontalLayoutModel.addWidget(self.cmbModel);


        verticalLayoutDlg.addWidget(frameModel);

        self.buttonBox = QDialogButtonBox(self);
        self.buttonBox.setObjectName(("buttonBox"));
        self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel|QDialogButtonBox.Ok);
        self.connect(self.buttonBox, SIGNAL("accepted()"), self.accept)
        self.connect(self.buttonBox, SIGNAL("rejected()"), self.reject)


        verticalLayoutDlg.addWidget(self.buttonBox);

        self.calendar = QCalendarWidget()
        self.calendar.clicked.connect(self.calendar_clicked)
        self.menu = QMenu()
        layout = QVBoxLayout(self.menu)
        layout.addWidget(self.calendar)

        self.btnDtpDate.clicked.connect(self.btnDtpDate_clicked)
        self.cmbModel.addItems(["WMM2015", "WMM2010" , "WMM2005", "WMM2000", "WMM95", "WMM90", "WMM85", "IGRF2000", "IGRF95", "IGRF90"])
Ejemplo n.º 23
0
    def __init__(self, parent=None):
        super(UserDialog, self).__init__(parent)
        self.pagetitle = self.sessionname
        self.tableFont = QFont('Century Gothic', 8)
        self.table = QTableWidget()
        self.cols = [
            'SN', 'ITEM', 'QUANTITY', 'UNIT AMOUNT', 'TOTAL AMOUNT', 'DATE'
        ]
        self.h1_pull_box = QVBoxLayout()

        #self.tableFont.setFamily('Century Gothic')
        self.tableHeaderStyle = "::section {" "background-color: teal; color:white}"
        #pull all CA
        self.editID = 0
        self.hold_unit = {}
        self.hold_store = {}
        self.hold_storeGroup = {}
        self.hold_borrowed = {}

        from_label = QLabel('From:')
        to_label = QLabel('To:')
        self.fromData = QDateEdit()
        self.toData = QDateEdit()
        currentDate = QDate()
        self.fromData.setDate(currentDate.currentDate())
        self.fromData.setCalendarPopup(True)
        self.toData.setDate(currentDate.currentDate())
        self.toData.setCalendarPopup(True)
        menu = QMenu()
        menu.addAction('All', lambda: self.reloadTable(0))
        menu.addAction('In-Stock', lambda: self.reloadTable(1))
        menu.addAction('Out-Stock', lambda: self.reloadTable(2))
        menu.addAction('Damaged', lambda: self.reloadTable(3))
        menu.addAction('Borrowed', lambda: self.reloadTable(4))
        self.pull_btn = QPushButton()
        self.pull_btn.setText("Load")
        self.pull_btn.setMenu(menu)
        h_pull_box = QHBoxLayout()
        h_pull_box.addWidget(from_label)
        h_pull_box.addWidget(self.fromData)
        h_pull_box.addWidget(to_label)
        h_pull_box.addWidget(self.toData)
        h_pull_box.addWidget(self.pull_btn)

        storeGroup = self.pullGroupStore()
        unit = self.pullUnit()

        self.storeGroupText = QLabel('Category')
        self.storeGroupData = QComboBox()
        self.storeGroupData.currentIndexChanged.connect(self.reloadStore)
        self.storeText = QLabel('Items')
        self.storeData = QComboBox()

        self.amountText = QLabel('Total Cost')
        self.amountData = QLineEdit()
        self.amountData.setPlaceholderText('0000.00')
        self.tellerText = QLabel('Reciept No.')
        self.tellerData = QLineEdit()
        self.tellerData.setPlaceholderText('xxxxxxxxx')
        self.quantityText = QLabel('Quantity.')
        self.quantityData = QLineEdit()
        self.quantityData.setPlaceholderText('00.0')
        self.periodText = QLabel('Period (days)')
        self.periodData = QLineEdit()
        self.periodData.setPlaceholderText('00.0')
        self.personText = QLabel('Recieved By:')
        self.personData = QLineEdit()
        self.personData.setPlaceholderText('00.0')
        self.unitText = QLabel('Unit')
        self.unitData = QComboBox()
        self.borrowedText = QLabel('Borrowed')
        self.borrowedData = QComboBox()
        self.dateText = QLabel('Date')
        self.dateData = QDateEdit()
        self.dateData.setDate(currentDate.currentDate())
        self.dateData.setCalendarPopup(True)
        self.descriptionText = QLabel('Description')
        self.descriptionData = QPlainTextEdit()
        self.descriptionData.move(200, 100)
        self.borrowedText.hide()
        self.borrowedData.hide()

        mboz = QVBoxLayout()
        hboz = QHBoxLayout()
        self.state = QLabel('')
        self.r1 = QRadioButton('In-stock')
        self.r1.setChecked(True)
        self.r1.toggled.connect(lambda: self.changeStates())
        self.r2 = QRadioButton('Out-stock')
        self.r2.toggled.connect(lambda: self.changeStates())
        self.r3 = QRadioButton('Damaged')
        self.r3.toggled.connect(lambda: self.changeStates())
        self.r4 = QRadioButton('Borrowed')
        self.r4.toggled.connect(lambda: self.changeStates())
        self.r5 = QRadioButton('Returned')
        self.r5.toggled.connect(lambda: self.changeStates())
        hboz.addWidget(self.r1)
        hboz.addWidget(self.r2)
        hboz.addWidget(self.r3)
        hboz.addWidget(self.r4)
        hboz.addWidget(self.r5)

        i = 0
        for a in storeGroup:
            self.hold_storeGroup[i] = a['id']
            tex = str(a['name']).upper()
            self.storeGroupData.addItem(tex)
            i += 1

        i = 0
        str_key = self.hold_storeGroup[self.storeGroupData.currentIndex()]
        store = self.pullStore(str_key)
        for a in store:
            self.hold_store[i] = a['id']
            tex = str(a['name']).upper()
            self.storeData.addItem(tex)
            i += 1

        i = 0
        for a in unit:
            self.hold_unit[i] = a['id']
            tex = str(a['name']).upper()
            self.unitData.addItem(tex)
            i += 1

        self.reloadBorrowed()
        self.FormLayout = QFormLayout()
        self.FormLayout.addRow(self.storeGroupText, self.storeGroupData)
        self.FormLayout.addRow(self.storeText, self.storeData)
        self.FormLayout.addRow(self.tellerText, self.tellerData)
        self.FormLayout.addRow(self.quantityText, self.quantityData)
        self.FormLayout.addRow(self.amountText, self.amountData)
        self.FormLayout.addRow(self.dateText, self.dateData)
        self.FormLayout.addRow(self.periodText, self.periodData)
        self.FormLayout.addRow(self.borrowedText, self.borrowedData)
        self.FormLayout.addRow(self.personText, self.personData)
        self.FormLayout.addRow(self.descriptionText, self.descriptionData)
        self.periodText.hide()
        self.periodData.hide()

        mboz.addLayout(hboz)
        mboz.addLayout(self.FormLayout)
        mboz.addWidget(self.state)

        groupBox1 = QGroupBox('Add Store Item')
        groupBox1.setLayout(mboz)

        self.pb = QPushButton()
        self.pb.setObjectName("Add")
        self.pb.setText("Add Store Item")

        self.pb1 = QPushButton()
        self.pb1.setObjectName("Edit")
        self.pb1.setText("Edit Row")
        self.pb1.setEnabled(False)

        self.pb2 = QPushButton()
        self.pb2.setObjectName("Close")
        self.pb2.setText("Close")

        self.pb3 = QPushButton()
        self.pb3.setObjectName("Delete")
        self.pb3.setText("Delete Row")
        self.pb3.setEnabled(False)

        self.pb4 = QPushButton()
        self.pb4.setObjectName("Reset")
        self.pb4.setText("Reset")
        self.pb4.hide()

        self.pb5 = QPushButton()
        self.pb5.setObjectName("Change")
        self.pb5.setText("Change Store")
        self.pb5.hide()

        self.pb6 = QPushButton()
        self.pb6.setObjectName("Clear")
        self.pb6.setText("Clear Selection")
        self.pb6.setEnabled(False)

        hbo = QHBoxLayout()
        hbo.addWidget(self.pb)
        hbo.addWidget(self.pb5)
        hbo.addWidget(self.pb4)
        hbo.addWidget(self.pb2)
        groupBox2 = QGroupBox('Store Data')
        groupBox2.setLayout(hbo)

        al = self.pullStoreData(0)
        if al and len(al) > 0:
            al = al
        else:
            al = {}

        self.storeData.currentIndexChanged.connect(
            lambda: self.reloadBorrowed())

        header = self.table.horizontalHeader()
        header.setResizeMode(QHeaderView.ResizeToContents)
        header.setStretchLastSection(True)
        header.setStyleSheet(self.tableHeaderStyle)
        vheader = self.table.verticalHeader()
        vheader.setStyleSheet(self.tableHeaderStyle)
        # Body
        self.table.setWindowTitle("Store")
        self.table.setStyleSheet("color:white")
        self.table.resize(300, 250)
        self.table.setFont(self.tableFont)
        self.table.setSortingEnabled(2)
        #self.table.resizeColumnsToContents()
        self.table.setRowCount(len(al))
        self.table.setColumnCount(len(self.cols))
        self.table.setHorizontalHeaderLabels(self.cols)
        self.table.setContextMenuPolicy(Qt.CustomContextMenu)
        self.table.customContextMenuRequested.connect(self.handleHeaderMenu)
        self.table.hideColumn(0)
        self.table.setSelectionMode(QAbstractItemView.MultiSelection)
        self.table.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.table.setEditTriggers(QAbstractItemView.NoEditTriggers)

        i = 0
        for q in al:
            #row id
            if q['state'] == 1:
                color = QColor(100, 0, 0)
            elif q['state'] == 2:
                color = QColor(100, 100, 0)
            elif q['state'] == 3:
                color = QColor(100, 0, 100)
            elif q['state'] == 4:
                color = QColor(0, 100, 100)
            else:
                color = QColor(0, 50, 150)

            self.table.setItem(i, 0, QTableWidgetItem(str(q['id'])))
            self.table.item(i, 0).setBackground(color)
            self.table.setItem(i, 1,
                               QTableWidgetItem(str(q['itemname']).upper()))
            self.table.item(i, 1).setBackground(color)
            self.table.setItem(i, 2,
                               QTableWidgetItem(str(q['quantity']).upper()))
            self.table.item(i, 2).setBackground(color)
            try:
                zamt = str("{:,}".format(float(q['amount'])))
            except:
                zamt = ''
            self.table.setItem(i, 3, QTableWidgetItem(zamt))
            self.table.item(i, 3).setBackground(color)
            try:
                if len(q['amount']) > 0 and float(q['amount']) > 0:
                    tot = float(q['amount']) * float(q['quantity'])
                else:
                    tot = 0
            except:
                tot = 0
            self.table.setItem(i, 4, QTableWidgetItem(str(tot).upper()))
            self.table.item(i, 4).setBackground(color)
            damz = float(q['datepaid'])
            damt = datetime.utcfromtimestamp(damz).strftime('%d-%m-%Y')
            self.table.setItem(i, 5, QTableWidgetItem(str(damt)))
            self.table.item(i, 5).setBackground(color)
            i += 1
        self.table.itemSelectionChanged.connect(self.confirmSelection)
        self.table.resizeRowsToContents()
        v_pull_box = QVBoxLayout()

        self.h1_pull_box.addWidget(self.table)
        v_pull_box.addLayout(h_pull_box)
        v_pull_box.addLayout(self.h1_pull_box)
        h2_pull_box = QHBoxLayout()
        h2_pull_box.addWidget(self.pb1)
        h2_pull_box.addWidget(self.pb3)
        h2_pull_box.addWidget(self.pb6)
        v_pull_box.addLayout(h2_pull_box)

        groupBox3 = QGroupBox()
        groupBox3.setLayout(hbo)
        groupBox2.setLayout(v_pull_box)

        grid = QGridLayout()
        grid.addWidget(groupBox1, 0, 0)
        grid.addWidget(groupBox2, 0, 1, 2, 1)
        grid.addWidget(groupBox3, 1, 0)

        self.setLayout(grid)
        self.connect(self.pb, SIGNAL("clicked()"), lambda: self.button_click())
        self.connect(self.pb1, SIGNAL("clicked()"),
                     lambda: self.button_editshow())
        self.connect(self.pb2, SIGNAL("clicked()"),
                     lambda: self.button_close(self))
        self.connect(self.pb3, SIGNAL("clicked()"),
                     lambda: self.button_delete())
        self.connect(self.pb4, SIGNAL("clicked()"),
                     lambda: self.button_reset())
        self.connect(self.pb5, SIGNAL("clicked()"), lambda: self.button_edit())
        self.connect(self.pb6, SIGNAL("clicked()"),
                     lambda: self.button_clear())
        #self.connect(self.pull_btn, SIGNAL("clicked()"), lambda x =1: self.reloadTable(x))

        self.setWindowTitle(self.pagetitle)
Ejemplo n.º 24
0
    def create_widget(self):
        """ Create the QDateEdit widget.

        """
        self.widget = QDateEdit(self.parent_widget())
Ejemplo n.º 25
0
class MenuQt(object):
    """主菜单"""
    add_record = QFrame(CENTRAL_WIDGET)  # 增加交易记录的界面
    grid_layout_widget = QWidget(add_record)  # title的container
    grid_layout = QGridLayout(grid_layout_widget)
    title = QLabel(grid_layout_widget)
    statusbar = QStatusBar(WINDOW)
    # 股票代码的title以及输入框
    grid_layout_widget_2 = QWidget(add_record)
    grid_layout_2 = QGridLayout(grid_layout_widget_2)
    share_code_title = QLabel(grid_layout_widget_2)
    grid_layout_widget_14 = QWidget(add_record)
    grid_layout_14 = QGridLayout(grid_layout_widget_14)
    share_code_input = QLineEdit(grid_layout_widget_14)
    # 股票名称的title和显示框
    grid_layout_widget_12 = QWidget(add_record)
    grid_layout_12 = QGridLayout(grid_layout_widget_12)
    share_name_title = QLabel(grid_layout_widget_12)
    grid_layout_widget_21 = QWidget(add_record)
    grid_layout_21 = QGridLayout(grid_layout_widget_21)
    share_name_show = QLineEdit(grid_layout_widget_21)
    # 买入日期的title和输入框
    grid_layout_widget_3 = QWidget(add_record)
    grid_layout_3 = QGridLayout(grid_layout_widget_3)
    buy_date_title = QLabel(grid_layout_widget_3)
    grid_layout_widget_15 = QWidget(add_record)
    grid_layout_15 = QGridLayout(grid_layout_widget_15)
    buy_date_input = QDateEdit(grid_layout_widget_15)
    # 卖出日期的title和输入框
    grid_layout_widget_10 = QWidget(add_record)
    grid_layout_10 = QGridLayout(grid_layout_widget_10)
    sale_date_title = QLabel(grid_layout_widget_10)
    grid_layout_widget_20 = QWidget(add_record)
    grid_layout_20 = QGridLayout(grid_layout_widget_20)
    sale_date_input = QDateEdit(grid_layout_widget_20)
    # 买入数量的title和输入框
    grid_layout_widget_5 = QWidget(add_record)
    grid_layout_5 = QGridLayout(grid_layout_widget_5)
    buy_num_title = QLabel(grid_layout_widget_5)
    grid_layout_widget_16 = QWidget(add_record)
    grid_layout_16 = QGridLayout(grid_layout_widget_16)
    buy_num_input = QLineEdit(grid_layout_widget_16)
    # 卖出数量的title和输入框
    grid_layout_widget_25 = QWidget(add_record)
    grid_layout_25 = QGridLayout(grid_layout_widget_25)
    sale_num_input = QLineEdit(grid_layout_widget_25)
    grid_layout_widget_13 = QWidget(add_record)
    grid_layout_13 = QGridLayout(grid_layout_widget_13)
    sale_num_title = QLabel(grid_layout_widget_13)
    # 买入价格的title和输入框
    grid_layout_widget_4 = QWidget(add_record)
    grid_layout_4 = QGridLayout(grid_layout_widget_4)
    buy_price_title = QLabel(grid_layout_widget_4)
    grid_layout_widget_17 = QWidget(add_record)
    grid_layout_17 = QGridLayout(grid_layout_widget_17)
    buy_price_input = QLineEdit(grid_layout_widget_17)
    # 卖出价格和输入框
    grid_layout_widget_11 = QWidget(add_record)
    grid_layout_11 = QGridLayout(grid_layout_widget_11)
    sale_price_title = QLabel(grid_layout_widget_11)
    grid_layout_widget_22 = QWidget(add_record)
    grid_layout_22 = QGridLayout(grid_layout_widget_22)
    sale_price_input = QLineEdit(grid_layout_widget_22)
    # 持仓价格和显示框
    grid_layout_widget_6 = QWidget(add_record)
    grid_layout_6 = QGridLayout(grid_layout_widget_6)
    have_avg_price = QLabel(grid_layout_widget_6)
    grid_layout_widget_19 = QWidget(add_record)
    grid_layout_19 = QGridLayout(grid_layout_widget_19)
    buv_avg_price_show = QLineEdit(grid_layout_widget_19)
    # 持仓数量和显示框
    grid_layout_widget_7 = QWidget(add_record)
    grid_layout_7 = QGridLayout(grid_layout_widget_7)
    have_num_title = QLabel(grid_layout_widget_7)
    grid_layout_widget_18 = QWidget(add_record)
    grid_layout_18 = QGridLayout(grid_layout_widget_18)
    have_num_show = QLineEdit(grid_layout_widget_18)
    # 当前盈利和显示框
    grid_layout_widget_8 = QWidget(add_record)
    grid_layout_8 = QGridLayout(grid_layout_widget_8)
    win_title = QLabel(grid_layout_widget_8)
    grid_layout_widget_24 = QWidget(add_record)
    grid_layout_24 = QGridLayout(grid_layout_widget_24)
    win_show = QLineEdit(grid_layout_widget_24)
    # 可卖数量和显示框
    grid_layout_widget_9 = QWidget(add_record)
    grid_layout_9 = QGridLayout(grid_layout_widget_9)
    can_sale_num_title = QLabel(grid_layout_widget_9)
    grid_layout_widget_23 = QWidget(add_record)
    grid_layout_23 = QGridLayout(grid_layout_widget_23)
    can_sale_num_show = QLineEdit(grid_layout_widget_23)
    # 查询按钮 计算按钮 保存按钮
    # grid_layout_widget_26 = QWidget(add_record)
    # grid_layout_26 = QGridLayout(grid_layout_widget_26)
    # query_button = QPushButton(grid_layout_widget_26)

    # grid_layout_widget_27 = QWidget(add_record)
    # grid_layout_27 = QGridLayout(grid_layout_widget_27)
    # compute_button = QPushButton(grid_layout_widget_27)

    grid_layout_widget_28 = QWidget(add_record)
    grid_layout_28 = QGridLayout(grid_layout_widget_28)
    save_button = QPushButton(grid_layout_widget_28)

    grid_layout_widget_29 = QWidget(add_record)
    grid_layout_29 = QGridLayout(grid_layout_widget_29)
    text_edit = QTextEdit(grid_layout_widget_29)
    menubar = QMenuBar(WINDOW)
    edit = QMenu(menubar)
    tool = QMenu(menubar)
    program = QMenu(menubar)
    help = QMenu(menubar)
    add = QAction(WINDOW)
    query = QAction(WINDOW)
    delete_record = QAction(WINDOW)
    add_share = QAction(WINDOW)
    import_share = QAction(WINDOW)
    login = QAction(WINDOW)
    logout = QAction(WINDOW)
    exit = QAction(WINDOW)
    about = QAction(WINDOW)
    slot_func = None

    @classmethod
    def init_window(cls):
        cls.slot_func = SlotFunc(cls)
        cls.init_widget()
        cls.init_button()
        cls.init_menu()
        cls.set_style_sheet()
        cls.init_text()
        cls.add_slot_func()
        QMetaObject.connectSlotsByName(WINDOW)

    @classmethod
    def init_menu(cls):
        WINDOW.setCentralWidget(CENTRAL_WIDGET)
        cls.menubar.setGeometry(QRect(0, 0, 960, 23))
        cls.menubar.setObjectName(_fromUtf8("menubar"))
        cls.edit.setObjectName(_fromUtf8("edit"))
        cls.tool.setObjectName(_fromUtf8("tool"))
        cls.program.setObjectName(_fromUtf8("program"))
        cls.help.setObjectName(_fromUtf8("help"))
        WINDOW.setMenuBar(cls.menubar)
        cls.statusbar.setObjectName(_fromUtf8("statusbar"))
        WINDOW.setStatusBar(cls.statusbar)
        cls.add.setObjectName(_fromUtf8("add"))
        cls.query.setObjectName(_fromUtf8("query"))
        cls.delete_record.setObjectName(_fromUtf8("delete_record"))
        cls.add_share.setObjectName(_fromUtf8("add_share"))
        cls.import_share.setObjectName(_fromUtf8("import_share"))
        cls.login.setObjectName(_fromUtf8("login"))
        cls.logout.setObjectName(_fromUtf8("logout"))
        cls.exit.setObjectName(_fromUtf8("exit"))
        cls.about.setObjectName(_fromUtf8("about"))
        cls.edit.addAction(cls.add)
        cls.edit.addAction(cls.query)
        cls.edit.addAction(cls.delete_record)

        cls.tool.addAction(cls.add_share)
        cls.tool.addAction(cls.import_share)
        cls.tool.addSeparator()
        cls.tool.addAction(cls.login)
        cls.tool.addAction(cls.logout)

        cls.program.addAction(cls.exit)
        cls.help.addAction(cls.about)

        cls.menubar.addAction(cls.edit.menuAction())
        cls.menubar.addAction(cls.tool.menuAction())
        cls.menubar.addAction(cls.program.menuAction())
        cls.menubar.addAction(cls.help.menuAction())

    @classmethod
    def add_slot_func(cls):
        """增加槽函数"""
        cls.share_code_input.textChanged.connect(
            cls.slot_func.query_share_code)
        cls.save_button.clicked.connect(cls.slot_func.save_record)

    @classmethod
    def init_button(cls):
        """初始化按钮"""
        # cls.grid_layout_widget_26.setGeometry(QRect(160, 390, 121, 50))
        # cls.grid_layout_widget_26.setObjectName(_fromUtf8("grid_layout_widget_26"))
        # cls.grid_layout_26.setObjectName(_fromUtf8("grid_layout_26"))
        # cls.query_button.setFont(WindowCons.get_font(bold=True))
        # cls.query_button.setFlat(False)
        # cls.query_button.setObjectName(_fromUtf8("query_button"))
        # cls.grid_layout_26.addWidget(cls.query_button, 0, 0, 1, 1)
        # cls.grid_layout_widget_27.setGeometry(QRect(300, 390, 121, 50))
        # cls.grid_layout_widget_27.setObjectName(_fromUtf8("grid_layout_widget_27"))
        # cls.grid_layout_27.setObjectName(_fromUtf8("grid_layout_27"))
        # cls.compute_button.setFont(WindowCons.get_font(bold=True))
        # cls.compute_button.setObjectName(_fromUtf8("compute_button"))
        # cls.grid_layout_27.addWidget(cls.compute_button, 0, 0, 1, 1)
        cls.grid_layout_widget_28.setGeometry(QRect(440, 390, 121, 50))
        cls.grid_layout_widget_28.setObjectName(
            _fromUtf8("grid_layout_widget_28"))
        cls.grid_layout_28.setObjectName(_fromUtf8("grid_layout_28"))
        cls.save_button.setFont(WindowCons.get_font(bold=True))
        cls.save_button.setObjectName(_fromUtf8("save_button"))
        cls.grid_layout_28.addWidget(cls.save_button, 0, 0, 1, 1)
        cls.grid_layout_widget_29.setGeometry(QRect(570, 390, 160, 73))
        cls.grid_layout_widget_29.setObjectName(
            _fromUtf8("grid_layout_widget_29"))
        cls.grid_layout_29.setObjectName(_fromUtf8("grid_layout_29"))
        cls.text_edit.setEnabled(False)
        cls.text_edit.setReadOnly(True)
        cls.text_edit.setFrameShape(False)
        cls.text_edit.setObjectName(_fromUtf8("textEdit"))
        cls.grid_layout_29.addWidget(cls.text_edit, 0, 0, 1, 1)

    @classmethod
    def set_style_sheet(cls):
        """设置样式"""
        # cls.query_button.setStyleSheet(WindowCons.button_style())
        cls.save_button.setStyleSheet(WindowCons.button_style())
        # cls.compute_button.setStyleSheet(WindowCons.button_style())
        cls.add_record.setStyleSheet(WindowCons.background_image())

        cls.title.setStyleSheet(WindowCons.LIGHT_BLUE_STYLE)
        cls.sale_num_title.setStyleSheet(WindowCons.WHITE_STYLE)
        cls.share_name_title.setStyleSheet(WindowCons.WHITE_STYLE)
        cls.sale_price_title.setStyleSheet(WindowCons.WHITE_STYLE)
        cls.buy_date_title.setStyleSheet(WindowCons.WHITE_STYLE)
        cls.win_title.setStyleSheet(WindowCons.WHITE_STYLE)
        cls.buy_num_title.setStyleSheet(WindowCons.WHITE_STYLE)
        cls.can_sale_num_title.setStyleSheet(WindowCons.WHITE_STYLE)
        cls.have_num_title.setStyleSheet(WindowCons.WHITE_STYLE)
        cls.share_code_title.setStyleSheet(WindowCons.WHITE_STYLE)
        cls.buy_price_title.setStyleSheet(WindowCons.WHITE_STYLE)
        cls.have_avg_price.setStyleSheet(WindowCons.WHITE_STYLE)
        cls.sale_date_title.setStyleSheet(WindowCons.WHITE_STYLE)
        # cls.text_edit.setAttribute(Qt.WA_TranslucentBackground, True)
        # cls.text_edit.repaint()
        cls.text_edit.setStyleSheet(WindowCons.TRANSPARENT)
        palette1 = QPalette()
        palette1.setBrush(
            cls.add_record.backgroundRole(),
            QBrush(QPixmap(':backgroud.png').scaled(cls.add_record.size())))
        cls.add_record.setPalette(palette1)
        cls.add_record.setStyleSheet(WindowCons.background_image())

    @classmethod
    def init_widget(cls):
        CENTRAL_WIDGET.setObjectName(_fromUtf8("centralwidget"))
        cls.add_record.setGeometry(QRect(-1, -1, 961, 561))
        cls.add_record.setObjectName(_fromUtf8("add_record"))
        cls.grid_layout_widget.setGeometry(QRect(50, 10, 314, 50))
        cls.grid_layout_widget.setObjectName(_fromUtf8("gridLayoutWidget"))
        cls.grid_layout.setObjectName(_fromUtf8("gridLayout"))
        cls.title.setFont(WindowCons.get_font(size=16, weight=50))
        cls.title.setTextFormat(Qt.PlainText)
        cls.title.setScaledContents(False)
        cls.title.setAlignment(Qt.AlignCenter)
        cls.title.setObjectName(_fromUtf8("title"))
        cls.grid_layout.addWidget(cls.title, 0, 0, 1, 1)
        cls._init_labels()

    @classmethod
    def init_text(cls):
        """初始化文字"""
        WINDOW.setWindowTitle(_translate("MainWindow", "驰骋A股", None))
        cls.title.setText(_translate("MainWindow", "新增交易记录", None))
        cls.share_code_title.setText(_translate("MainWindow", "股票代码", None))
        cls.buy_date_title.setText(_translate("MainWindow", "买入日期", None))
        cls.buy_price_title.setText(_translate("MainWindow", "买入价格", None))
        cls.buy_num_title.setText(_translate("MainWindow", "买入数量", None))
        cls.have_avg_price.setText(_translate("MainWindow", "持仓均价", None))
        cls.have_num_title.setText(_translate("MainWindow", "持仓数量", None))
        cls.win_title.setText(_translate("MainWindow", "当前盈利", None))
        cls.can_sale_num_title.setText(_translate("MainWindow", "可卖数量", None))
        cls.sale_date_title.setText(_translate("MainWindow", "卖出日期", None))
        cls.sale_price_title.setText(_translate("MainWindow", "卖出价格", None))
        cls.share_name_title.setText(_translate("MainWindow", "股票名称", None))
        cls.sale_num_title.setText(_translate("MainWindow", "卖出数量", None))
        # cls.query_button.setText(_translate("MainWindow", "查询", None))
        # cls.compute_button.setText(_translate("MainWindow", "计算", None))
        cls.save_button.setText(_translate("MainWindow", "保存", None))
        cls.text_edit.setHtml(
            _translate(
                "MainWindow",
                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
                "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
                "p, li { white-space: pre-wrap; }\n"
                "</style></head><body style=\" font-family:\'SimSun\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
                "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">数量单位:手(1手=100股)</p>\n"
                "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">货币单位:元</p></body></html>",
                None))
        cls.edit.setTitle(_translate("MainWindow", "编辑", None))
        cls.tool.setTitle(_translate("MainWindow", "工具", None))
        cls.program.setTitle(_translate("MainWindow", "程序", None))
        cls.help.setTitle(_translate("MainWindow", "帮助", None))

        cls.add.setText(_translate("MainWindow", "新增交易记录", None))
        cls.query.setText(_translate("MainWindow", "查询交易记录", None))
        cls.delete_record.setText(_translate("MainWindow", "删除交易记录", None))
        cls.add_share.setText(_translate("MainWindow", "新增股票信息", None))
        cls.import_share.setText(_translate("MainWindow", "导入股票信息", None))
        cls.login.setText(_translate("MainWindow", "登录", None))
        cls.logout.setText(_translate("MainWindow", "注销", None))
        cls.exit.setText(_translate("MainWindow", "退出", None))
        cls.about.setText(_translate("MainWindow", "关于", None))
        cls.statusbar.showMessage(
            "本程序仅限内部人员使用,如作他用所承受的法律责任一概与作者无关(使用即代表你同意上述观点)")
        cls.statusbar.setStyleSheet(WindowCons.RED_STYLE)

    @classmethod
    def _init_labels(cls):
        """初始化页面的label"""
        cls.__init_share_code()  # 初始化股票代码以及输入框
        cls.__init_share_name()  # 初始化股票名称以及显示框
        cls.__init_buy_date()  # 初始化买入日期以及输入框
        cls.__init_sale_date()  # 初始化卖出日期以及输入框
        cls.__init_buy_num()  # 初始化买入数量以及输入框
        cls.__init_sale_num()  # 初始化卖出数量以及输入框
        cls.__init_buy_price()  # 初始化买入价格以及输入框
        cls.__init_sale_price()  # 初始化卖出价格以及输入框
        cls.__init_buy_avg_price()  # 初始化平均价以及显示框
        cls.__init_have_num()  # 初始化持仓数量以及显示框
        cls.__init_have_win()  # 初始化当前股票盈利情况以及显示框
        cls.__can_sale_num()  # 初始化可卖数量以及显示框

    @classmethod
    def __init_share_code(cls):
        cls.grid_layout_widget_2.setGeometry(QRect(160, 60, 101, 41))
        cls.grid_layout_widget_2.setObjectName(_fromUtf8("gridLayoutWidget_2"))
        cls.grid_layout_2.setObjectName(_fromUtf8("gridLayout_2"))
        cls.share_code_title.setFont(WindowCons.get_font(bold=True))
        cls.share_code_title.setTextFormat(Qt.PlainText)
        cls.share_code_title.setAlignment(Qt.AlignCenter)
        cls.share_code_title.setObjectName(_fromUtf8("share_code_title"))
        cls.grid_layout_2.addWidget(cls.share_code_title, 0, 0, 1, 1)
        cls.grid_layout_widget_14.setGeometry(QRect(280, 60, 141, 50))
        cls.grid_layout_widget_14.setObjectName(
            _fromUtf8("gridLayoutWidget_14"))
        cls.grid_layout_14.setObjectName(_fromUtf8("gridLayout_14"))
        cls.share_code_input.setFont(
            WindowCons.get_font(weight=50, family=WindowCons.YAHEI_UI_FAMILY))
        cls.share_code_input.setObjectName(_fromUtf8("share_code_input"))
        cls.share_code_input.setValidator(RegExpValidator())
        cls.grid_layout_14.addWidget(cls.share_code_input, 0, 0, 1, 1)

    @classmethod
    def __init_share_name(cls):
        cls.grid_layout_widget_12.setGeometry(QRect(450, 60, 101, 41))
        cls.grid_layout_widget_12.setObjectName(
            _fromUtf8("gridLayoutWidget_12"))
        cls.grid_layout_12.setObjectName(_fromUtf8("gridLayout_12"))
        cls.share_name_title.setFont(WindowCons.get_font(bold=True))
        cls.share_name_title.setTextFormat(Qt.PlainText)
        cls.share_name_title.setAlignment(Qt.AlignCenter)
        cls.share_name_title.setObjectName(_fromUtf8("share_name_title"))
        cls.grid_layout_12.addWidget(cls.share_name_title, 0, 0, 1, 1)

        cls.grid_layout_widget_21.setGeometry(QRect(570, 60, 141, 50))
        cls.grid_layout_widget_21.setObjectName(
            _fromUtf8("grid_layout_widget_21"))
        cls.grid_layout_21.setObjectName(_fromUtf8("grid_layout_21"))
        cls.share_name_show.setEnabled(True)
        cls.share_name_show.setFont(
            WindowCons.get_font(weight=50,
                                family=WindowCons.YAHEI_LIGHT_FAMILY))
        cls.share_name_show.setReadOnly(True)
        cls.share_name_show.setFrame(False)
        cls.share_name_show.setObjectName(_fromUtf8("share_name_show"))
        cls.grid_layout_21.addWidget(cls.share_name_show, 0, 0, 1, 1)

    @classmethod
    def __init_buy_date(cls):
        cls.grid_layout_widget_3.setGeometry(QRect(160, 110, 101, 41))
        cls.grid_layout_widget_3.setObjectName(_fromUtf8("gridLayoutWidget_3"))
        cls.grid_layout_3.setObjectName(_fromUtf8("gridLayout_3"))
        cls.buy_date_title.setFont(WindowCons.get_font(bold=True))
        cls.buy_date_title.setTextFormat(Qt.PlainText)
        cls.buy_date_title.setAlignment(Qt.AlignCenter)
        cls.buy_date_title.setObjectName(_fromUtf8("buy_date_title"))
        cls.grid_layout_3.addWidget(cls.buy_date_title, 0, 0, 1, 1)

        cls.grid_layout_widget_15.setGeometry(QRect(280, 110, 141, 41))
        cls.grid_layout_widget_15.setObjectName(
            _fromUtf8("gridLayoutWidget_15"))
        cls.grid_layout_15.setObjectName(_fromUtf8("gridLayout_15"))
        cls.buy_date_input.setEnabled(True)
        size_policy = WindowCons.get_size_policy(cls.buy_date_input)
        cls.buy_date_input.setSizePolicy(size_policy)
        cls.buy_date_input.setFont(
            WindowCons.get_font(family=WindowCons.YAHEI_LIGHT_FAMILY, size=12))
        cls.buy_date_input.setWrapping(False)
        cls.buy_date_input.setCalendarPopup(True)
        cls.buy_date_input.setFrame(False)
        cls.buy_date_input.setDate(
            QDate(datetime.datetime.date(datetime.datetime.now())))
        cls.buy_date_input.setObjectName(_fromUtf8("buy_date_input"))
        cls.grid_layout_15.addWidget(cls.buy_date_input, 0, 0, 1, 1)

    @classmethod
    def __init_sale_date(cls):
        cls.grid_layout_widget_10.setGeometry(QRect(450, 110, 101, 41))
        cls.grid_layout_widget_10.setObjectName(
            _fromUtf8("gridLayoutWidget_10"))
        cls.grid_layout_10.setObjectName(_fromUtf8("gridLayout_10"))
        cls.sale_date_title.setFont(WindowCons.get_font(bold=True))
        cls.sale_date_title.setTextFormat(Qt.PlainText)
        cls.sale_date_title.setAlignment(Qt.AlignCenter)
        cls.sale_date_title.setObjectName(_fromUtf8("buy_date_title_2"))
        cls.grid_layout_10.addWidget(cls.sale_date_title, 0, 0, 1, 1)

        cls.grid_layout_widget_20.setGeometry(QRect(570, 110, 141, 41))
        cls.grid_layout_widget_20.setObjectName(
            _fromUtf8("gridLayoutWidget_20"))
        cls.grid_layout_20.setObjectName(_fromUtf8("gridLayout_20"))
        cls.sale_date_input.setFont(
            WindowCons.get_font(size=12, family=WindowCons.YAHEI_LIGHT_FAMILY))
        cls.sale_date_input.setWrapping(False)
        cls.sale_date_input.setFrame(False)
        cls.sale_date_input.setCalendarPopup(True)
        cls.sale_date_input.setDate(
            QDate(datetime.datetime.date(datetime.datetime.now())))
        cls.sale_date_input.setObjectName(_fromUtf8("sale_date_input"))
        cls.grid_layout_20.addWidget(cls.sale_date_input, 0, 0, 1, 1)

    @classmethod
    def __init_buy_num(cls):
        cls.grid_layout_widget_5.setGeometry(QRect(160, 210, 101, 41))
        cls.grid_layout_widget_5.setObjectName(_fromUtf8("gridLayoutWidget_5"))
        cls.grid_layout_5.setObjectName(_fromUtf8("gridLayout_5"))
        cls.buy_num_title.setFont(WindowCons.get_font(bold=True))
        cls.buy_num_title.setTextFormat(Qt.PlainText)
        cls.buy_num_title.setAlignment(Qt.AlignCenter)
        cls.buy_num_title.setObjectName(_fromUtf8("buy_num_title"))
        cls.grid_layout_5.addWidget(cls.buy_num_title, 0, 0, 1, 1)

        cls.grid_layout_widget_16.setGeometry(QRect(280, 210, 141, 41))
        cls.grid_layout_widget_16.setObjectName(
            _fromUtf8("gridLayoutWidget_16"))
        cls.grid_layout_16.setObjectName(_fromUtf8("gridLayout_16"))
        cls.buy_num_input.setValidator(IntValidator())
        cls.buy_num_input.setText("100")
        cls.buy_num_input.setFont(
            WindowCons.get_font(family=WindowCons.JUI_LIGHT_FAMILY))
        cls.buy_num_input.setFrame(False)
        cls.buy_num_input.setObjectName(_fromUtf8("buy_num_input"))
        cls.grid_layout_16.addWidget(cls.buy_num_input, 0, 0, 1, 1)

    @classmethod
    def __init_sale_num(cls):
        # 初始化卖出数量以及输入框
        cls.grid_layout_widget_25.setGeometry(QRect(570, 210, 141, 41))
        cls.grid_layout_widget_25.setObjectName(
            _fromUtf8("gridLayoutWidget_25"))
        cls.grid_layout_25.setObjectName(_fromUtf8("gridLayout_25"))
        cls.sale_num_input.setValidator(IntValidator())
        cls.sale_num_input.setText("100")
        cls.sale_num_input.setFont(
            WindowCons.get_font(family=WindowCons.JUI_LIGHT_FAMILY))
        cls.sale_num_input.setFrame(False)
        cls.sale_num_input.setObjectName(_fromUtf8("sale_num_input"))
        cls.grid_layout_25.addWidget(cls.sale_num_input, 0, 0, 1, 1)

        cls.grid_layout_widget_13.setGeometry(QRect(450, 210, 101, 41))
        cls.grid_layout_widget_13.setObjectName(
            _fromUtf8("gridLayoutWidget_13"))
        cls.grid_layout_13.setObjectName(_fromUtf8("gridLayout_13"))
        cls.sale_num_title.setFont(WindowCons.get_font(bold=True))
        cls.sale_num_title.setTextFormat(Qt.PlainText)
        cls.sale_num_title.setAlignment(Qt.AlignCenter)
        cls.sale_num_title.setObjectName(_fromUtf8("buy_num_title_2"))
        cls.grid_layout_13.addWidget(cls.sale_num_title, 0, 0, 1, 1)

    @classmethod
    def __init_buy_price(cls):
        # 初始化买入价格以及输入框
        cls.grid_layout_widget_4.setGeometry(QRect(160, 160, 101, 41))
        cls.grid_layout_widget_4.setObjectName(_fromUtf8("gridLayoutWidget_4"))
        cls.grid_layout_4.setObjectName(_fromUtf8("gridLayout_4"))
        cls.buy_price_title.setFont(WindowCons.get_font(bold=True))
        cls.buy_price_title.setTextFormat(Qt.PlainText)
        cls.buy_price_title.setAlignment(Qt.AlignCenter)
        cls.buy_price_title.setObjectName(_fromUtf8("buy_price_title"))
        cls.grid_layout_4.addWidget(cls.buy_price_title, 0, 0, 1, 1)

        cls.grid_layout_widget_17.setGeometry(QRect(280, 160, 141, 41))
        cls.grid_layout_widget_17.setObjectName(
            _fromUtf8("gridLayoutWidget_17"))
        cls.grid_layout_17.setObjectName(_fromUtf8("gridLayout_17"))
        cls.buy_price_input.setFont(
            WindowCons.get_font(family=WindowCons.YAHEI_LIGHT_FAMILY))
        cls.buy_price_input.setFrame(False)
        cls.buy_price_input.setValidator(DoubleValidator())
        cls.buy_price_input.setText("0.00")
        cls.buy_price_input.setObjectName(_fromUtf8("buy_price_input"))
        cls.grid_layout_17.addWidget(cls.buy_price_input, 0, 0, 1, 1)

    @classmethod
    def __init_sale_price(cls):
        # 初始化卖出价格以及输入框
        cls.grid_layout_widget_11.setGeometry(QRect(450, 160, 101, 41))
        cls.grid_layout_widget_11.setObjectName(
            _fromUtf8("gridLayoutWidget_11"))
        cls.grid_layout_11.setObjectName(_fromUtf8("gridLayout_11"))
        cls.sale_price_title.setFont(WindowCons.get_font(bold=True))
        cls.sale_price_title.setTextFormat(Qt.PlainText)
        cls.sale_price_title.setAlignment(Qt.AlignCenter)
        cls.sale_price_title.setObjectName(_fromUtf8("cls.sale_price_title"))
        cls.grid_layout_11.addWidget(cls.sale_price_title, 0, 0, 1, 1)

        cls.grid_layout_widget_22.setGeometry(QRect(570, 160, 141, 41))
        cls.grid_layout_widget_22.setObjectName(
            _fromUtf8("grid_layout_widget_22"))
        cls.grid_layout_22.setObjectName(_fromUtf8("grid_layout_22"))
        cls.sale_price_input.setFont(
            WindowCons.get_font(family=WindowCons.YAHEI_LIGHT_FAMILY))
        cls.sale_price_input.setFrame(False)
        cls.sale_price_input.setText("0.00")
        cls.sale_price_input.setValidator(DoubleValidator())
        cls.sale_price_input.setObjectName(_fromUtf8("sale_price_input"))
        cls.grid_layout_22.addWidget(cls.sale_price_input, 0, 0, 1, 1)

    @classmethod
    def __init_buy_avg_price(cls):
        # 初始化平均价以及显示框
        cls.grid_layout_widget_6.setGeometry(QRect(160, 260, 101, 41))
        cls.grid_layout_widget_6.setObjectName(
            _fromUtf8("grid_layout_widget_6"))
        cls.grid_layout_6.setObjectName(_fromUtf8("grid_layout_6"))
        cls.have_avg_price.setFont(WindowCons.get_font(bold=True))
        cls.have_avg_price.setTextFormat(Qt.PlainText)
        cls.have_avg_price.setAlignment(Qt.AlignCenter)
        cls.have_avg_price.setObjectName(_fromUtf8("have_avg_price"))
        cls.grid_layout_6.addWidget(cls.have_avg_price, 0, 0, 1, 1)

        cls.grid_layout_widget_19.setGeometry(QRect(280, 260, 141, 41))
        cls.grid_layout_widget_19.setObjectName(
            _fromUtf8("grid_layout_widget_19"))
        cls.grid_layout_19.setObjectName(_fromUtf8("grid_layout_19"))
        cls.buv_avg_price_show.setEnabled(True)
        cls.buv_avg_price_show.setFont(
            WindowCons.get_font(family=WindowCons.JUI_LIGHT_FAMILY))
        cls.buv_avg_price_show.setReadOnly(True)
        cls.buv_avg_price_show.setFrame(False)
        cls.buv_avg_price_show.setObjectName(_fromUtf8("buv_avg_price_show"))
        cls.grid_layout_19.addWidget(cls.buv_avg_price_show, 0, 0, 1, 1)

    @classmethod
    def __init_have_num(cls):
        # 初始化持仓数量以及显示框
        cls.grid_layout_widget_7.setGeometry(QRect(160, 310, 101, 41))
        cls.grid_layout_widget_7.setObjectName(
            _fromUtf8("grid_layout_widget_7"))
        cls.grid_layout_7.setObjectName(_fromUtf8("grid_layout_7"))
        cls.have_num_title.setFont(WindowCons.get_font(bold=True))
        cls.have_num_title.setTextFormat(Qt.PlainText)
        cls.have_num_title.setAlignment(Qt.AlignCenter)
        cls.have_num_title.setObjectName(_fromUtf8("have_num_title"))
        cls.grid_layout_7.addWidget(cls.have_num_title, 0, 0, 1, 1)

        cls.grid_layout_widget_18.setGeometry(QRect(280, 310, 141, 41))
        cls.grid_layout_widget_18.setObjectName(
            _fromUtf8("grid_layout_widget_18"))
        cls.grid_layout_18.setObjectName(_fromUtf8("grid_layout_18"))
        cls.have_num_show.setFont(
            WindowCons.get_font(family=WindowCons.JUI_LIGHT_FAMILY))
        cls.have_num_show.setReadOnly(True)
        cls.have_num_show.setFrame(False)
        cls.have_num_show.setObjectName(_fromUtf8("have_num_show"))
        cls.grid_layout_18.addWidget(cls.have_num_show, 0, 0, 1, 1)

    @classmethod
    def __init_have_win(cls):
        # 初始化当前股票盈利情况以及显示框
        cls.grid_layout_widget_8.setGeometry(QRect(450, 260, 101, 41))
        cls.grid_layout_widget_8.setObjectName(
            _fromUtf8("grid_layout_widget_8"))
        cls.grid_layout_8.setObjectName(_fromUtf8("grid_layout_8"))
        cls.win_title.setFont(WindowCons.get_font(bold=True))
        cls.win_title.setTextFormat(Qt.PlainText)
        cls.win_title.setAlignment(Qt.AlignCenter)
        cls.win_title.setObjectName(_fromUtf8("win_title"))
        cls.grid_layout_8.addWidget(cls.win_title, 0, 0, 1, 1)

        cls.grid_layout_widget_24.setGeometry(QRect(570, 260, 141, 41))
        cls.grid_layout_widget_24.setObjectName(
            _fromUtf8("grid_layout_widget_24"))
        cls.grid_layout_24.setObjectName(_fromUtf8("grid_layout_24"))
        cls.win_show.setEnabled(True)
        cls.win_show.setFont(
            WindowCons.get_font(family=WindowCons.JUI_LIGHT_FAMILY))
        cls.win_show.setReadOnly(True)
        cls.win_show.setObjectName(_fromUtf8("win_show"))
        cls.win_show.setFrame(False)
        cls.grid_layout_24.addWidget(cls.win_show, 0, 0, 1, 1)

    @classmethod
    def __can_sale_num(cls):
        # 初始化可卖数量以及显示框
        cls.grid_layout_widget_9.setGeometry(QRect(450, 310, 101, 41))
        cls.grid_layout_widget_9.setObjectName(
            _fromUtf8("grid_layout_widget_9"))
        cls.grid_layout_9.setObjectName(_fromUtf8("gridLayout_9"))
        cls.can_sale_num_title.setFont(WindowCons.get_font(bold=True))
        cls.can_sale_num_title.setTextFormat(Qt.PlainText)
        cls.can_sale_num_title.setAlignment(Qt.AlignCenter)
        cls.can_sale_num_title.setObjectName(_fromUtf8("can_sale_num_title"))
        cls.grid_layout_9.addWidget(cls.can_sale_num_title, 0, 0, 1, 1)

        cls.grid_layout_widget_23.setGeometry(QRect(570, 310, 141, 41))
        cls.grid_layout_widget_23.setObjectName(
            _fromUtf8("gridLayoutWidget_23"))
        cls.grid_layout_23.setObjectName(_fromUtf8("grid_layout_23"))
        cls.can_sale_num_show.setEnabled(True)
        cls.can_sale_num_show.setFont(
            WindowCons.get_font(family=WindowCons.JUI_LIGHT_FAMILY))
        cls.can_sale_num_show.setReadOnly(True)
        cls.can_sale_num_show.setFrame(False)
        cls.can_sale_num_show.setObjectName(_fromUtf8("can_sale_num_show"))
        cls.grid_layout_23.addWidget(cls.can_sale_num_show, 0, 0, 1, 1)
Ejemplo n.º 26
0
    def __init__(self, n, parent=None):
        super(SessionsManager, self).__init__(parent)
        self.par = n
        #main
        title = Settingz().positions(30)
        self.titleID = title['id']
        self.titlePage = title['page']
        self.titleName = title['name']
        self.titleSub = title['subID']
        self.titleIcon = title['icon']
        self.pagetitle = self.titlePage
        #stylesheet
        stylesheet = Valid().background() + Valid().font()
        treeStyleSheet = Valid().treez()

        self.groupBox1 = QGroupBox(self.titleName)
        self.groupBox2 = QGroupBox('Add')

        #items
        self.tree = QTreeWidget()
        self.tree.setHeaderLabel("Choose " + self.titleName)
        #tree.setItemDelegate(Delegate())
        self.tree.setItemDelegate(Delegates())
        self.tree.headerItem().setText(0, 'Name')
        self.tree.setStyleSheet(treeStyleSheet)
        self.makeTree()
        self.tree.setMinimumHeight(250)
        self.tree.clicked.connect(lambda: self.getSelection())
        self.tree.itemClicked.connect(lambda state: self.getChecked(state))
        #buttons
        #add
        nImg = Buttons().addButton()
        self.pb = QPushButton()
        self.pb.setFlat(True)
        self.pb.setIcon(QIcon(nImg))
        self.pb.setMaximumHeight(30)
        self.pb.setMaximumWidth(30)

        nImg1 = Buttons().closeButton()
        self.pb1 = QPushButton()
        self.pb1.setFlat(True)
        self.pb1.setIcon(QIcon(nImg1))
        self.pb1.setMaximumHeight(30)
        self.pb1.setMaximumWidth(30)

        nImg2 = Buttons().editButton()
        self.pb2 = QPushButton()
        self.pb2.setFlat(True)
        self.pb2.setIcon(QIcon(nImg2))
        self.pb2.setMaximumHeight(30)
        self.pb2.setMaximumWidth(30)

        nImg3 = Buttons().deleteButton()
        self.pb3 = QPushButton()
        self.pb3.setFlat(True)
        self.pb3.setIcon(QIcon(nImg3))
        self.pb3.setMaximumHeight(30)
        self.pb3.setMaximumWidth(30)

        nImg4 = Buttons().saveButton()
        self.pb4 = QPushButton()
        self.pb4.setFlat(True)
        self.pb4.setIcon(QIcon(nImg4))
        self.pb4.setMaximumHeight(30)
        self.pb4.setMaximumWidth(30)

        nImg5 = Buttons().resetButton()
        self.pb5 = QPushButton()
        self.pb5.setFlat(True)
        self.pb5.setIcon(QIcon(nImg5))
        self.pb5.setMaximumHeight(30)
        self.pb5.setMaximumWidth(30)

        nImg6 = Buttons().closeButton()
        self.pb6 = QPushButton()
        self.pb6.setFlat(True)
        self.pb6.setIcon(QIcon(nImg6))
        self.pb6.setMaximumHeight(30)
        self.pb6.setMaximumWidth(30)

        nImg7 = Buttons().addButton()
        self.pb7 = QPushButton()
        self.pb7.setFlat(True)
        self.pb7.setIcon(QIcon(nImg7))
        self.pb7.setMaximumHeight(30)
        self.pb7.setMaximumWidth(30)

        hbo = QHBoxLayout()
        hbo.addStretch()
        hbo.addWidget(self.pb1)
        hbo.addWidget(self.pb3)
        hbo.addWidget(self.pb2)
        hbo.addWidget(self.pb7)

        vbo = QVBoxLayout()
        vbo.addWidget(self.tree)
        vbo.addLayout(hbo)

        self.l1 = QLabel("Name")
        self.le1 = QLineEdit()
        self.le1.setObjectName("name")
        vals1 = Valid().fullNum()
        self.le1.setValidator(vals1)
        self.le1.setPlaceholderText("Lowercase max 25 letters")

        self.fromLbl = QLabel("Starts")
        self.toLbl = QLabel("Ends")
        self.fromData = QDateEdit()
        self.toData = QDateEdit()
        currentDate = QDate()
        self.fromData.setDate(currentDate.currentDate())
        self.fromData.setCalendarPopup(True)
        self.toData.setDate(currentDate.currentDate())
        self.toData.setCalendarPopup(True)

        FormLayout = QFormLayout()
        FormLayout.addRow(self.l1, self.le1)
        FormLayout.addRow(self.fromLbl, self.fromData)
        FormLayout.addRow(self.toLbl, self.toData)

        Hlayout1 = QHBoxLayout()
        Hlayout1.addStretch()
        Hlayout1.addWidget(self.pb6)
        Hlayout1.addWidget(self.pb5)
        Hlayout1.addWidget(self.pb4)
        Hlayout1.addWidget(self.pb)

        Vlayout1 = QVBoxLayout()
        Vlayout1.addLayout(FormLayout)
        Vlayout1.addLayout(Hlayout1)

        self.groupBox1.setLayout(vbo)
        self.groupBox2.setLayout(Vlayout1)
        self.groupBox2.hide()

        self.connect(self.pb, SIGNAL("clicked()"),
                     lambda: self.button_add())  #add
        self.connect(self.pb1, SIGNAL("clicked()"),
                     lambda: self.button_close())  #close
        self.connect(self.pb2, SIGNAL("clicked()"),
                     lambda: self.button_edit())  #edit
        self.connect(self.pb3, SIGNAL("clicked()"),
                     lambda: self.button_delete())  #delete
        self.connect(self.pb4, SIGNAL("clicked()"),
                     lambda: self.button_save())  #save
        self.connect(self.pb5, SIGNAL("clicked()"),
                     lambda: self.button_reset())  #reset

        self.pb4.hide()
        self.pb7.hide()

        grid = QGridLayout()
        grid.addWidget(self.groupBox1, 0, 0)
        grid.addWidget(self.groupBox2, 1, 0)

        self.setLayout(grid)
        self.setStyleSheet(stylesheet)
        self.setWindowIcon(QIcon(self.titleIcon))
        self.setWindowTitle(self.pagetitle)
Ejemplo n.º 27
0
 def createEditor(self, parent, option, index):
     """Create the Date edit widget to set the payment date"""
     qde = QDateEdit(parent)
     qde.setDisplayFormat(self.format)
     qde.setCalendarPopup(True)
     return qde
    def setup(self):

        for key, value in self.data:
            # Separate parameter attribute's name and help description
            label = key[0]
            help = key[1]
            if DEBUG:
                print "value:", value
            if label is None and value is None:
                # Separator: (None, None)
                self.formlayout.addRow(QLabel(" "), QLabel(" "))
                self.widgets[None] = None
                continue
            elif label is None:
                # Comment
                self.formlayout.addRow(QLabel(value))
                self.widgets[None] = value
                continue
            elif tuple_to_qfont(value) is not None:
                field = FontLayout(value, self)
            elif text_to_qcolor(value).isValid():
                field = ColorLayout(QColor(value), self)
            elif isinstance(value, (str, unicode)):
                if (label == 'Help'):
                    self.help.insert(0, value)
                    continue
                else:
                    field = QLineEdit(value, self)
            elif isinstance(value, (list, tuple)):
                selindex = value.pop(0)
                field = QComboBox(self)
                if isinstance(value[0], (list, tuple)):
                    keys = [key for key, _val in value]
                    value = [val for _key, val in value]
                else:
                    keys = value
                field.addItems(value)
                if selindex in value:
                    selindex = value.index(selindex)
                elif selindex in keys:
                    selindex = keys.index(selindex)
                elif not isinstance(selindex, int):
                    print >>STDERR, "Warning: '%s' index is invalid (label: " \
                                    "%s, value: %s)" % (selindex, label, value)
                    selindex = 0
                field.setCurrentIndex(selindex)
            elif isinstance(value, bool):
                field = QCheckBox(self)
                field.setCheckState(Qt.Checked if value else Qt.Unchecked)
            elif isinstance(value, float):
                field = QLineEdit(repr(value), self)
            elif isinstance(value, int):
                field = QSpinBox(self)
                field.setRange(-1e9, 1e9)
                field.setValue(value)
            elif isinstance(value, datetime.datetime):
                field = QDateTimeEdit(self)
                field.setDateTime(value)
            elif isinstance(value, datetime.date):
                field = QDateEdit(self)
                field.setDate(value)
            else:
                field = QLineEdit(repr(value), self)

            field.setToolTip(QString(help))
            self.help.append(label + ' -- ' + help)

            self.formlayout.addRow(label, field)

            # Add close button

            self.widgets[label] = field
Ejemplo n.º 29
0
 def setup(self):
     for label, value in self.data:
         if DEBUG_FORMLAYOUT:
             print("value:", value)
         if label is None and value is None:
             # Separator: (None, None)
             self.formlayout.addRow(QLabel(" "), QLabel(" "))
             self.widgets.append(None)
             continue
         elif label is None:
             # Comment
             self.formlayout.addRow(QLabel(value))
             self.widgets.append(None)
             continue
         elif tuple_to_qfont(value) is not None:
             field = FontLayout(value, self)
         elif text_to_qcolor(value).isValid():
             field = ColorLayout(QColor(value), self)
         elif is_text_string(value):
             if '\n' in value:
                 for linesep in (os.linesep, '\n'):
                     if linesep in value:
                         value = value.replace(linesep, u("\u2029"))
                 field = QTextEdit(value, self)
             else:
                 field = QLineEdit(value, self)
         elif isinstance(value, (list, tuple)):
             value = list(value)  # in case this is a tuple
             selindex = value.pop(0)
             field = QComboBox(self)
             if isinstance(value[0], (list, tuple)):
                 keys = [key for key, _val in value]
                 value = [val for _key, val in value]
             else:
                 keys = value
             field.addItems(value)
             if selindex in value:
                 selindex = value.index(selindex)
             elif selindex in keys:
                 selindex = keys.index(selindex)
             elif not isinstance(selindex, int):
                 print("Warning: '%s' index is invalid (label: "\
                       "%s, value: %s)" % (selindex, label, value),
                       file=STDERR)
                 selindex = 0
             field.setCurrentIndex(selindex)
         elif isinstance(value, bool):
             field = QCheckBox(self)
             field.setCheckState(Qt.Checked if value else Qt.Unchecked)
         elif isinstance(value, float):
             field = QLineEdit(repr(value), self)
             field.setValidator(QDoubleValidator(field))
             dialog = self.get_dialog()
             dialog.register_float_field(field)
             self.connect(field, SIGNAL('textChanged(QString)'),
                          lambda text: dialog.update_buttons())
         elif isinstance(value, int):
             field = QSpinBox(self)
             field.setRange(-1e9, 1e9)
             field.setValue(value)
         elif isinstance(value, datetime.datetime):
             field = QDateTimeEdit(self)
             field.setDateTime(value)
         elif isinstance(value, datetime.date):
             field = QDateEdit(self)
             field.setDate(value)
         else:
             field = QLineEdit(repr(value), self)
         self.formlayout.addRow(label, field)
         self.widgets.append(field)
Ejemplo n.º 30
0
    def __init__(self, session, parent=None):
        super(ExpensesDialog, self).__init__(parent)
        self.session = session
        session = self.pullOnes('session', session)
        self.sessionname = str(session['name']) + ' Session'
        self.pagetitle = self.sessionname
        self.tableFont = QFont('Century Gothic', 8)
        #self.tableFont.setFamily('Century Gothic')
        self.tableHeaderStyle = "::section {" "background-color: teal; color:white}"
        #pull all CA
        self.editID = 0
        self.hold_account = {}
        self.hold_expenses = {}
        self.hold_expensesGroup = {}

        from_label = QLabel('From:')
        to_label = QLabel('To:')
        self.fromData = QDateEdit()
        self.toData = QDateEdit()
        currentDate = QDate()
        self.fromData.setDate(currentDate.currentDate())
        self.fromData.setCalendarPopup(True)
        self.toData.setDate(currentDate.currentDate())
        self.toData.setCalendarPopup(True)
        self.pull_btn = QPushButton()
        self.pull_btn.setText("Load")
        h_pull_box = QHBoxLayout()
        h_pull_box.addWidget(from_label)
        h_pull_box.addWidget(self.fromData)
        h_pull_box.addWidget(to_label)
        h_pull_box.addWidget(self.toData)
        h_pull_box.addWidget(self.pull_btn)

        expensesGroup = self.pullGroupExpenses()
        account = self.pullAccount()

        self.expenseGroupText = QLabel('Category')
        self.expenseGroupData = QComboBox()
        self.expenseGroupData.currentIndexChanged.connect(self.reloadExpenses)
        self.expenseText = QLabel('Expenses')
        self.expenseData = QComboBox()
        self.amountText = QLabel('Amount')
        self.amountData = QLineEdit()
        self.amountData.setPlaceholderText('0000.00')
        self.tellerText = QLabel('Teller/Reciept No.')
        self.tellerData = QLineEdit()
        self.tellerData.setPlaceholderText('xxxxxxxxx')
        self.accountText = QLabel('Account')
        self.accountData = QComboBox()
        self.dateText = QLabel('Date')
        self.dateData = QDateEdit()
        self.dateData.setDate(currentDate.currentDate())
        self.dateData.setCalendarPopup(True)
        self.descriptionText = QLabel('Brief Description')
        self.descriptionData = QPlainTextEdit()
        self.descriptionData.move(200, 100)
        hboz = QHBoxLayout()
        self.gender = QLabel('State')
        self.r1 = QRadioButton('Expenses')
        self.r1.setChecked(True)
        self.r2 = QRadioButton('Refund')
        hboz.addWidget(self.r1)
        hboz.addWidget(self.r2)

        i = 0
        for a in expensesGroup:
            self.hold_expensesGroup[i] = a['id']
            tex = str(a['name']).upper()
            self.expenseGroupData.addItem(tex)
            i += 1

        i = 0
        exp_key = self.hold_expensesGroup[self.expenseGroupData.currentIndex()]
        expenses = self.pullExpenses(exp_key)
        for a in expenses:
            self.hold_expenses[i] = a['id']
            tex = str(a['name']).upper()
            self.expenseData.addItem(tex)
            i += 1

        i = 0
        for a in account:
            self.hold_account[i] = a['id']
            tex = str(a['name']).upper()
            self.accountData.addItem(tex)
            i += 1

        self.FormLayout = QFormLayout()
        self.FormLayout.addRow(self.expenseGroupText, self.expenseGroupData)
        self.FormLayout.addRow(self.expenseText, self.expenseData)
        self.FormLayout.addRow(self.accountText, self.accountData)
        self.FormLayout.addRow(self.tellerText, self.tellerData)
        self.FormLayout.addRow(self.amountText, self.amountData)
        self.FormLayout.addRow(self.gender, hboz)
        self.FormLayout.addRow(self.dateText, self.dateData)
        self.FormLayout.addRow(self.descriptionText, self.descriptionData)

        groupBox1 = QGroupBox('Add Expenses')
        groupBox1.setLayout(self.FormLayout)

        self.pb = QPushButton()
        self.pb.setObjectName("Add")
        self.pb.setText("Add Expenses")

        self.pb1 = QPushButton()
        self.pb1.setObjectName("Edit")
        self.pb1.setText("Edit Row")
        self.pb1.setEnabled(False)

        self.pb2 = QPushButton()
        self.pb2.setObjectName("Close")
        self.pb2.setText("Close")

        self.pb3 = QPushButton()
        self.pb3.setObjectName("Delete")
        self.pb3.setText("Delete Row")
        self.pb3.setEnabled(False)

        self.pb4 = QPushButton()
        self.pb4.setObjectName("Reset")
        self.pb4.setText("Reset")
        self.pb4.hide()

        self.pb5 = QPushButton()
        self.pb5.setObjectName("Change")
        self.pb5.setText("Change Expenses")
        self.pb5.hide()

        self.pb6 = QPushButton()
        self.pb6.setObjectName("Clear")
        self.pb6.setText("Clear Selection")
        self.pb6.setEnabled(False)

        hbo = QHBoxLayout()
        hbo.addWidget(self.pb)
        hbo.addWidget(self.pb5)
        hbo.addWidget(self.pb4)
        hbo.addWidget(self.pb2)
        groupBox2 = QGroupBox('Expenses Data')
        groupBox2.setLayout(hbo)

        self.cols = ['SN', 'EXPENSES', 'ACCOUNT', 'AMOUNT', 'DATE']
        al = self.pullExpensesData()
        if len(al) > 0:
            al = al
        else:
            al = {}

        self.table = QTableWidget()
        header = self.table.horizontalHeader()
        header.setResizeMode(QHeaderView.ResizeToContents)
        header.setStretchLastSection(True)
        header.setStyleSheet(self.tableHeaderStyle)
        vheader = self.table.verticalHeader()
        vheader.setStyleSheet(self.tableHeaderStyle)
        # Body
        self.table.setWindowTitle("Expenses")
        self.table.resize(300, 250)
        self.table.setFont(self.tableFont)
        self.table.setSortingEnabled(2)
        #self.table.resizeColumnsToContents()
        self.table.setRowCount(len(al))
        self.table.setColumnCount(len(self.cols))
        self.table.setHorizontalHeaderLabels(self.cols)
        self.table.setContextMenuPolicy(Qt.CustomContextMenu)
        self.table.customContextMenuRequested.connect(self.handleHeaderMenu)
        self.table.hideColumn(0)
        self.table.setSelectionMode(QAbstractItemView.MultiSelection)
        self.table.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.table.setEditTriggers(QAbstractItemView.NoEditTriggers)

        i = 0
        for q in al:
            #row id
            self.table.setItem(i, 0, QTableWidgetItem(str(q['id'])))
            self.table.setItem(i, 1,
                               QTableWidgetItem(str(q['expensename']).upper()))
            self.table.setItem(i, 2,
                               QTableWidgetItem(str(q['accountname']).upper()))
            zamt = str("{:,}".format(float(q['amount'])))
            self.table.setItem(i, 3, QTableWidgetItem(zamt))
            damz = float(q['datepaid'])
            damt = datetime.utcfromtimestamp(damz).strftime('%d-%m-%Y')
            self.table.setItem(i, 4, QTableWidgetItem(str(damt)))
            i += 1
        self.table.itemSelectionChanged.connect(self.confirmSelection)
        self.table.resizeRowsToContents()
        v_pull_box = QVBoxLayout()
        self.h1_pull_box = QVBoxLayout()
        self.h1_pull_box.addWidget(self.table)
        v_pull_box.addLayout(h_pull_box)
        v_pull_box.addLayout(self.h1_pull_box)
        h2_pull_box = QHBoxLayout()
        h2_pull_box.addWidget(self.pb1)
        h2_pull_box.addWidget(self.pb3)
        h2_pull_box.addWidget(self.pb6)
        v_pull_box.addLayout(h2_pull_box)

        groupBox3 = QGroupBox()
        groupBox3.setLayout(hbo)
        groupBox2.setLayout(v_pull_box)

        grid = QGridLayout()
        grid.addWidget(groupBox1, 0, 0)
        grid.addWidget(groupBox2, 0, 1, 2, 1)
        grid.addWidget(groupBox3, 1, 0)

        self.setLayout(grid)
        self.connect(self.pb, SIGNAL("clicked()"), lambda: self.button_click())
        self.connect(self.pb1, SIGNAL("clicked()"),
                     lambda: self.button_editshow())
        self.connect(self.pb2, SIGNAL("clicked()"),
                     lambda: self.button_close(self))
        self.connect(self.pb3, SIGNAL("clicked()"),
                     lambda: self.button_delete())
        self.connect(self.pb4, SIGNAL("clicked()"),
                     lambda: self.button_reset())
        self.connect(self.pb5, SIGNAL("clicked()"), lambda: self.button_edit())
        self.connect(self.pb6, SIGNAL("clicked()"),
                     lambda: self.button_clear())
        self.connect(self.pull_btn,
                     SIGNAL("clicked()"),
                     lambda x=1: self.reloadTable(x))

        self.setWindowTitle(self.pagetitle)