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)
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
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
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)
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
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)
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)
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")
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)
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))
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
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()'))
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
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)
def createEditor(self, parent, option, index): editor = QDateEdit(parent) editor.setCalendarPopup(True) return editor
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)
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)
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")
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")
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)
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"])
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)
def create_widget(self): """ Create the QDateEdit widget. """ self.widget = QDateEdit(self.parent_widget())
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)
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)
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
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)
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)