def __init__(self): super(MainWindow, self).__init__() # setupUi というメソッドが定義されているので実行する # これで設置したウィジェットなどがインスタンス化される self.setupUi(self) # 継承したので self.名前 でアクセスできる self.setWindowTitle("AgeInDays") # ウィンドウタイトル # 操作と関数のひも付け self.pushButton_Go.clicked.connect(self.calculate) self.pushButton_Clear.clicked.connect(self.textBrowser.clear) self.change_mode.activated.connect(self.target_mode_change) self.switch_target_age.activated.connect(self.target_mode_change) self.switch_target_range.activated.connect(self.target_mode_change) # 日付入力に今日の日付を挿入 self.input_research_date.setDate(QDate.currentDate()) self.input_birthday.setDate(QDate.currentDate()) # ラジオボタンの初期設定とカレンダーにひも付け self.switch_birthday.toggled.connect(self.connect_calendar) # ボタングループで判定されるので1つだけ self.switch_research_date.setChecked(True) self.switch_birthday.setChecked(False) # カレンダーのひも付けとUIのデフォルト状態を設定しておく self.connect_calendar() self.target_mode_change()
def __setup_log_tab(self): self._log_table_view = pd.DataFrame() self._log_table_model = DataFrameModel(self._log_table_view, copyDataFrame=False, show_index=False) self._log_table_model.enableEditing(True) self._log_table_model.dataChanged.connect(self.log_values_changed) self.log_table.setModel(self._log_table_model) self.log_table.horizontalHeader().setStretchLastSection(True) self._log_date = pd.Timestamp.today() self._log_lift = '' self._log_unsynced_changes = False self._log_unsaved_changes = False self.log_date.setDate(QDate.currentDate()) self.log_cal.setSelectedDate(QDate.currentDate()) self.log_date_changed(pd.Timestamp.today()) self.log_populate_lifts_box() self.log_populate_table() self.log_date.dateChanged.connect(self.log_date_selection_changed) self.log_cal.selectionChanged.connect(self.log_cal_selection_changed) self.log_add.clicked.connect(self.log_add_entry) self.log_save.clicked.connect(self.log_sync_changes) self.log_delete.clicked.connect(self.log_del_row)
def start_settings(self): self.de_date_from.setDate(QDate.currentDate().addDays(-10)) self.de_date_to.setDate(QDate.currentDate()) self.tableWidget.horizontalHeader().resizeSection(0, 65) self.tableWidget.horizontalHeader().resizeSection(1, 30) self.tableWidget.horizontalHeader().resizeSection(2, 60)
def start_settings(self): self.de_date_in.setDate(QDate.currentDate().addMonths(-1)) self.de_date_from.setDate(QDate.currentDate()) self.table_widget.horizontalHeader().resizeSection(0, 65) self.table_widget.horizontalHeader().resizeSection(1, 65) self.table_widget.horizontalHeader().resizeSection(2, 35) self.table_widget.horizontalHeader().resizeSection(3, 155) self.table_widget.horizontalHeader().resizeSection(4, 35) self.table_widget.horizontalHeader().resizeSection(5, 35) self.table_widget.horizontalHeader().resizeSection(6, 40) self.table_widget.horizontalHeader().resizeSection(7, 100) self.table_widget.horizontalHeader().resizeSection(8, 70) self.table_widget.horizontalHeader().resizeSection(9, 70) self.table_widget.horizontalHeader().resizeSection(10, 70) self.table_widget.horizontalHeader().resizeSection(11, 70) self.table_widget.horizontalHeader().resizeSection(12, 70) self.table_widget.horizontalHeader().resizeSection(13, 70) self.table_widget.horizontalHeader().resizeSection(14, 70) self.table_widget.horizontalHeader().resizeSection(15, 70) self.table_widget.horizontalHeader().resizeSection(16, 70) self.table_widget.horizontalHeader().resizeSection(17, 70) self.table_widget.horizontalHeader().resizeSection(18, 70) self.table_widget.horizontalHeader().resizeSection(19, 70) self.table_widget.horizontalHeader().resizeSection(20, 70)
def set_start_settings(self): self.de_date_from.setDate(QDate.currentDate().addMonths(-1)) self.de_date_to.setDate(QDate.currentDate()) self.tw_product.horizontalHeader().resizeSection(0, 40) self.tw_product.horizontalHeader().resizeSection(1, 100) self.tw_product.horizontalHeader().resizeSection(2, 60) self.tw_product.horizontalHeader().resizeSection(3, 200)
def checkDeadDateTime(self): print(QDate.currentDate()) print(QTime.currentTime()) datetime=QDateTime(QDate.currentDate(),QTime.currentTime()) if(datetime<=self.deaddatetime): return True else: return False
def set_start_settings(self): self.de_date_from.setDate(QDate.currentDate().addMonths(-1)) self.de_date_to.setDate(QDate.currentDate()) self.tableWidget.horizontalHeader().resizeSection(0, 215) self.tableWidget.horizontalHeader().resizeSection(1, 80) self.tableWidget.horizontalHeader().resizeSection(2, 80) self.tableWidget.horizontalHeader().resizeSection(3, 100)
def start_settings(self): self.de_date_from.setDate(QDate.currentDate().addMonths(-1)) self.de_date_to.setDate(QDate.currentDate()) self.tw_work.horizontalHeader().resizeSection(0, 110) self.tw_work.horizontalHeader().resizeSection(1, 110) self.tw_work.horizontalHeader().resizeSection(2, 70) self.tw_work.horizontalHeader().resizeSection(3, 70) self.tw_work.horizontalHeader().resizeSection(4, 70)
def monthsBetweenDates(self, fromDate, toDate): curDate = QDate(fromDate) months =[] while curDate < toDate: months.append(curDate) curDate = curDate.addMonths(1) return months
def setDateEnd(self): date = self.cal2.selectedDate() date = date.toPyDate() self.parent.day_end = datetime.datetime(date.year, date.month, date.day) self.lbl2.setText(self.parent.day_end.strftime('%d/%m/%Y')) maxDate_dt = self.parent.day_end - datetime.timedelta(days=1) maxDate = QDate() maxDate.setDate(maxDate_dt.year, maxDate_dt.month, maxDate_dt.day) self.cal1.setMaximumDate(maxDate)
def setDateStart(self): date = self.cal1.selectedDate() date = date.toPyDate() self.parent.day_start = datetime.datetime(date.year, date.month, date.day) self.lbl1.setText(self.parent.day_start.strftime('%d/%m/%Y')) minDate_dt = self.parent.day_start + datetime.timedelta(days=1) minDate = QDate() minDate.setDate(minDate_dt.year, minDate_dt.month, minDate_dt.day) self.cal2.setMinimumDate(minDate)
def __initData(self): """ Private method to (re-)initialize some data. """ self.__maxDate = QDate() self.__minDate = QDate() self.__filterLogsEnabled = True self.diff = None self.__lastRev = 0
def start_settings(self): self.de_date_from.setDate(QDate.currentDate().addMonths(-3)) self.de_date_to.setDate(QDate.currentDate()) self.tw_pack.horizontalHeader().resizeSection(0, 50) self.tw_pack.horizontalHeader().resizeSection(1, 50) self.tw_pack.horizontalHeader().resizeSection(2, 50) self.tw_pack.horizontalHeader().resizeSection(3, 50) self.tw_pack.horizontalHeader().resizeSection(4, 80) self.tw_pack.horizontalHeader().resizeSection(5, 80) self.tw_pack.horizontalHeader().resizeSection(6, 80)
def set_start_settings(self): self.de_date_from.setDate(QDate.currentDate().addMonths(-1)) self.de_date_to.setDate(QDate.currentDate()) self.tableWidget.horizontalHeader().resizeSection(0, 150) self.tableWidget.horizontalHeader().resizeSection(1, 60) self.tableWidget.horizontalHeader().resizeSection(2, 70) self.tableWidget.horizontalHeader().resizeSection(3, 70) self.tableWidget.horizontalHeader().resizeSection(4, 90) self.tableWidget.horizontalHeader().resizeSection(5, 90) self.tableWidget.horizontalHeader().resizeSection(6, 60)
class MySortFilterProxyModel(QSortFilterProxyModel): def __init__(self, parent=None): super(MySortFilterProxyModel, self).__init__(parent) self.minDate = QDate() self.maxDate = QDate() def setFilterMinimumDate(self, date): self.minDate = date self.invalidateFilter() def filterMinimumDate(self): return self.minDate def setFilterMaximumDate(self, date): self.maxDate = date self.invalidateFilter() def filterMaximumDate(self): return self.maxDate def filterAcceptsRow(self, sourceRow, sourceParent): index0 = self.sourceModel().index(sourceRow, 0, sourceParent) index1 = self.sourceModel().index(sourceRow, 1, sourceParent) index2 = self.sourceModel().index(sourceRow, 2, sourceParent) return ( self.filterRegExp().indexIn(self.sourceModel().data(index0)) >= 0 or self.filterRegExp().indexIn(self.sourceModel().data(index1)) >= 0 ) and self.dateInRange(self.sourceModel().data(index2)) def lessThan(self, left, right): leftData = self.sourceModel().data(left) rightData = self.sourceModel().data(right) if not isinstance(leftData, QDate): emailPattern = QRegExp("([\\w\\.]*@[\\w\\.]*)") if left.column() == 1 and emailPattern.indexIn(leftData) != -1: leftData = emailPattern.cap(1) if right.column() == 1 and emailPattern.indexIn(rightData) != -1: rightData = emailPattern.cap(1) return leftData < rightData def dateInRange(self, date): if isinstance(date, QDateTime): date = date.date() return (not self.minDate.isValid() or date >= self.minDate) and ( not self.maxDate.isValid() or date <= self.maxDate )
def __initData(self): """ Private method to (re-)initialize some data. """ self.__maxDate = QDate() self.__minDate = QDate() self.__filterLogsEnabled = True self.buf = [] # buffer for stdout self.diff = None self.__started = False self.__lastRev = 0
def update_attractions_date(self): self.ui.dateTimeEdit_Attractions_Start.setDate(QDate.currentDate()) self.ui.dateTimeEdit_Attractions_End.setDate(QDate.currentDate()) query = QSqlQuery() query.prepare('SELECT t_event.id, t_event.name ' 'FROM t_event') query.setForwardOnly(1) query.exec_() while query.next(): self.ui.comboBox_Attractions_Event.addItem(str(query.value(0)) + " - " + query.value(1))
def __init__(self, parent=None): """ Constructor @param parent parent widget of the dialog (QWidget) """ super(SvnRevisionSelectionDialog, self).__init__(parent) self.setupUi(self) self.date1Edit.setDate(QDate.currentDate()) self.date2Edit.setDate(QDate.currentDate()) msh = self.minimumSizeHint() self.resize(max(self.width(), msh.width()), msh.height())
def start_settings(self): if self.id is None: self.de_plus_date.setDate(QDate.currentDate()) self.de_minus_date.setDate(QDate.currentDate()) self.de_road_date.setDate(QDate.currentDate()) self.de_p_m_date.setDate(QDate.currentDate()) self.de_bye_date.setDate(QDate.currentDate()) else: query = """SELECT work.Id, work.First_Name, work.Last_Name, pay_worker.Balance, pay_worker.Date_In_Pay, pay_reason.Id, pay_reason.Name, pay_worker.Note FROM pay_worker LEFT JOIN staff_worker_info AS work ON pay_worker.Worker_Id = work.Id LEFT JOIN pay_reason ON pay_worker.Reason_Id = pay_reason.Id WHERE pay_worker.Id = %s""" sql_info = my_sql.sql_select(query, (self.id, )) if "mysql.connector.errors" in str(type(sql_info)): QMessageBox.critical(self, "Ошибка sql получение операции", sql_info.msg, QMessageBox.Ok) return False if sql_info[0][3] > 0: self.menu_text = "Доплата" self.sw_main.setCurrentIndex(1) self.le_work_plus.setWhatsThis(str(sql_info[0][0])) self.le_work_plus.setText(str(sql_info[0][1]) + " " + str(sql_info[0][2])) self.le_value_plus.setText(str(sql_info[0][3])) self.de_plus_date.setDate(sql_info[0][4]) self.le_reason_plus.setWhatsThis(str(sql_info[0][5])) self.le_reason_plus.setText(str(sql_info[0][6])) self.le_note_plus.setText(str(sql_info[0][7])) else: self.menu_text = "Вычет" self.sw_main.setCurrentIndex(2) self.le_work_minus.setWhatsThis(str(sql_info[0][0])) self.le_work_minus.setText(str(sql_info[0][1]) + " " + str(sql_info[0][2])) self.le_value_minus.setText(str(-sql_info[0][3])) self.de_minus_date.setDate(sql_info[0][4]) self.le_reason_minus.setWhatsThis(str(sql_info[0][5])) self.le_reason_minus.setText(str(sql_info[0][6])) self.le_note_minus.setText(str(sql_info[0][7])) self.lw_menu.setEnabled(False)
def _populate(self): self.event_type_edit.setText(self.data['event_type']) self.description_edit.setText(self.data['description']) self.from_date.setDate(QDate.fromString(self.data['from_date'])) self.to_date.setDate(QDate.fromString(self.data['to_date'])) self.exp_no_edit.setText(self.data['exp_no']) self.planned_budget_edit.setText(self.data['planned_budget']) self.decorations_edit.setText(self.data['decorations']) self.filming_edit.setText(self.data['filming']) self.poster_edit.setText(self.data['poster']) self.food_edit.setText(self.data['food']) self.music_edit.setText(self.data['music']) self.computer_edit.setText(self.data['computer']) self.other_edit.setText(self.data['other']) self.approved_check_box.setChecked(self.data['approved'])
def __init__(self): super(MainWindow, self).__init__() self.selectedDate = QDate.currentDate() self.fontSize = 10 centralWidget = QWidget() dateLabel = QLabel("Date:") monthCombo = QComboBox() for month in range(1, 13): monthCombo.addItem(QDate.longMonthName(month)) yearEdit = QDateTimeEdit() yearEdit.setDisplayFormat('yyyy') yearEdit.setDateRange(QDate(1753, 1, 1), QDate(8000, 1, 1)) monthCombo.setCurrentIndex(self.selectedDate.month() - 1) yearEdit.setDate(self.selectedDate) self.fontSizeLabel = QLabel("Font size:") self.fontSizeSpinBox = QSpinBox() self.fontSizeSpinBox.setRange(1, 64) self.fontSizeSpinBox.setValue(10) self.editor = QTextBrowser() self.insertCalendar() monthCombo.activated.connect(self.setMonth) yearEdit.dateChanged.connect(self.setYear) self.fontSizeSpinBox.valueChanged.connect(self.setfontSize) controlsLayout = QHBoxLayout() controlsLayout.addWidget(dateLabel) controlsLayout.addWidget(monthCombo) controlsLayout.addWidget(yearEdit) controlsLayout.addSpacing(24) controlsLayout.addWidget(self.fontSizeLabel) controlsLayout.addWidget(self.fontSizeSpinBox) controlsLayout.addStretch(1) centralLayout = QVBoxLayout() centralLayout.addLayout(controlsLayout) centralLayout.addWidget(self.editor, 1) centralWidget.setLayout(centralLayout) self.setCentralWidget(centralWidget)
def convert_to_database(item): elements = {} for column in range(0, max(item.keys()) + 1): data = 'NULL' element = item.get(column, 'NULL') if column == WalletItemModelType.INDEX_DATE.value and element: if isinstance(element, QDate): data = '\'%s\'' % element.toString(WalletDatabase.WalletDatabaseConvertor.WALLET_DATE_DB_FORMAT) elif isinstance(element, str): date = QDate.fromString(element, WalletDatabase.WalletDatabaseConvertor.WALLET_DATE_VIEW_FORMAT) data = '\'%s\'' % date.toString(WalletDatabase.WalletDatabaseConvertor.WALLET_DATE_DB_FORMAT) elif column == WalletItemModelType.INDEX_DESCRIPTION.value and element: data = '\'%s\'' % element elif (column == WalletItemModelType.INDEX_INCOMING.value or column == WalletItemModelType.INDEX_EXPENSE.value or column == WalletItemModelType.INDEX_SAVINGS.value or column == WalletItemModelType.INDEX_DEBT.value) and element: data = '%s' % element elements[column] = data # Обработка исключительных ситуаций value = item.get(WalletItemModelType.INDEX_SAVINGS.value, None) if value: elements[WalletItemModelType.INDEX_INCOMING.value] = str(-1 * float(value)) value = item.get(WalletItemModelType.INDEX_DEBT.value, None) if value: elements[WalletItemModelType.INDEX_INCOMING.value] = str(value) return elements
def importedBookmarks(self): """ Public method to get the imported bookmarks. @return imported bookmarks (BookmarkNode) """ try: bookmarksDict = binplistlib.readPlist(self.__fileName) except binplistlib.InvalidPlistException as err: self._error = True self._errorString = self.tr( "Bookmarks file cannot be read.\nReason: {0}".format(str(err))) return None from ..BookmarkNode import BookmarkNode importRootNode = BookmarkNode(BookmarkNode.Folder) if bookmarksDict["WebBookmarkFileVersion"] == 1 and \ bookmarksDict["WebBookmarkType"] == "WebBookmarkTypeList": self.__processChildren(bookmarksDict["Children"], importRootNode) if self._id == "safari": importRootNode.title = self.tr("Apple Safari Import") else: importRootNode.title = self.tr("Imported {0}")\ .format(QDate.currentDate().toString(Qt.SystemLocaleShortDate)) return importRootNode
def importedBookmarks(self): """ Public method to get the imported bookmarks. @return imported bookmarks (BookmarkNode) """ from ..XbelReader import XbelReader reader = XbelReader() importRootNode = reader.read(self.__fileName) if reader.error() != QXmlStreamReader.NoError: self._error = True self._errorString = self.tr( """Error when importing bookmarks on line {0},""" """ column {1}:\n{2}""")\ .format(reader.lineNumber(), reader.columnNumber(), reader.errorString()) return None from ..BookmarkNode import BookmarkNode importRootNode.setType(BookmarkNode.Folder) if self._id == "e5browser": importRootNode.title = self.tr("eric6 Web Browser Import") elif self._id == "konqueror": importRootNode.title = self.tr("Konqueror Import") elif self._id == "xbel": importRootNode.title = self.tr("XBEL Import") else: importRootNode.title = self.tr("Imported {0}")\ .format(QDate.currentDate().toString(Qt.SystemLocaleShortDate)) return importRootNode
def __init__(self, mode=QPrinter.ScreenResolution): """ Constructor @param mode mode of the printer (QPrinter.PrinterMode) """ super(Printer, self).__init__(mode) self.setMagnification(Preferences.getPrinter("Magnification")) if Preferences.getPrinter("ColorMode"): self.setColorMode(QPrinter.Color) else: self.setColorMode(QPrinter.GrayScale) if Preferences.getPrinter("FirstPageFirst"): self.setPageOrder(QPrinter.FirstPageFirst) else: self.setPageOrder(QPrinter.LastPageFirst) self.setPageMargins( Preferences.getPrinter("LeftMargin") * 10, Preferences.getPrinter("TopMargin") * 10, Preferences.getPrinter("RightMargin") * 10, Preferences.getPrinter("BottomMargin") * 10, QPrinter.Millimeter ) printerName = Preferences.getPrinter("PrinterName") if printerName: self.setPrinterName(printerName) self.time = QTime.currentTime().toString(Qt.LocalDate) self.date = QDate.currentDate().toString(Qt.LocalDate) self.headerFont = Preferences.getPrinter("HeaderFont")
def loadFromFile(self, fileName= None): if not fileName: fileName, _ = QFileDialog.getOpenFileName(self, "Open Address Book", '', "Address Book (*.bl);;All Files (*)") try: in_file = open(str(fileName), 'rb') except IOError: QMessageBox.information(self, "Unable to open file", "There was an error opening \"%s\"" % fileName) return self.contacts = pickle.load(in_file) in_file.close() if len(self.contacts) == 0: QMessageBox.information(self, "No contacts in file", "The file you are attempting to open contains no " "contacts.") else: for title, obj in self.contacts: date = QDate.fromString(obj['dokuryodate']) self.titleLine.setText(title) self.memoText.setText(obj['memo']) self.shoziflag.setChecked(obj['shoziflag']) self.isbnLine.setText(obj['isbn']) self.dokuryodate.setDate(date) self.updateInterface(self.NavigationMode)
def _display_track(self, track): self._track_number.setText(self.tr("Track {0} of {1}").format(track.track_number, track.total_tracks)) self._track_title.setText(track.track_title) self._main_artist.setText(track.lead_performer) self._version.setText(track.version_info) self._duration.setText(formatting.to_duration(track.duration)) self._bitrate.setText("{0} kbps".format(formatting.in_kbps(track.bitrate))) self._featured_guest.setText(track.featured_guest) self._comments.setPlainText(track.comments) self._isrc.setText(track.isrc) self._iswc.setText(track.iswc) self._tags.setText(track.labels) self._lyrics.setPlainText(track.lyrics) self._language.setCurrentText(self.tr(LANGUAGES[track.language or 'und'])) self._software_notice.setText(self._compose_software_notice(track)) self._recording_studio.setText(track.recording_studio) self._recording_time.setDate(QDate.fromString(track.recording_time, ISO_8601_FORMAT)) self._recording_studio_address.setText(track.recording_studio_address) self._display_region(track.recording_studio_region, self._recording_studio_region) self._music_producer.setText(track.music_producer) self._production_company.setText(track.production_company) self._display_region(track.production_company_region, self._production_company_region) self._mixer.setText(track.mixer) self._genre.setEditText(track.primary_style)
def setGallery(self, gallery): "To be used for when editing a gallery" self.gallery = gallery self.url_edit.setText(gallery.link) self.title_edit.setText(gallery.title) self.author_edit.setText(gallery.artist) self.descr_edit.setText(gallery.info) self.tags_edit.setText(utils.tag_to_string(gallery.tags)) self._find_combobox_match(self.lang_box, gallery.language, 2) self._find_combobox_match(self.type_box, gallery.type, 0) self._find_combobox_match(self.status_box, gallery.status, 0) gallery_pub_date = "{}".format(gallery.pub_date).split(' ') try: self.gallery_time = datetime.strptime(gallery_pub_date[1], '%H:%M:%S').time() except IndexError: pass qdate_pub_date = QDate.fromString(gallery_pub_date[0], "yyyy-MM-dd") self.pub_edit.setDate(qdate_pub_date) self.link_lbl.setText(gallery.link) self.path_lbl.setText(gallery.path)
def setEditorData(self, widget, modelIndex): Lumberjack.info('< MyItemDelegate > - -> (setEditorData)') if hasattr(widget, 'currentIndex'): widget.currentItem = modelIndex.data(role=Qt.EditRole) elif hasattr(widget, 'currentFile'): widget.currentFile = modelIndex.data(role=Qt.EditRole) elif hasattr(widget, 'isChecked'): widget.setChecked(modelIndex.data(role=Qt.EditRole)) elif hasattr(widget, 'date'): date = str(modelIndex.data(role=Qt.EditRole)) qtDate = QDate.fromString(date, 'yyyy-MM-dd') widget.setDate(qtDate) elif hasattr(widget, 'amount'): value = modelIndex.data(role=Qt.EditRole) Lumberjack.debug('(setEditorData) - amount = {}({})'.format(type(value), value)) widget.amount = value elif hasattr(widget, 'text'): widget.setText(modelIndex.data()) elif hasattr(widget, 'recurrenceValue'): widget.recurrenceValue = modelIndex.data(role=Qt.EditRole) else: Lumberjack.warning('(setEditorData) - NO MATCH FOUND!') Lumberjack.debug('(setEditorData) - mismatching widget = {}'.format(widget)) for attr in widget.__dict__: Lumberjack.debug('(setEditorData) - widget attr = {}'.format(attr))
def importedBookmarks(self): """ Public method to get the imported bookmarks. @return imported bookmarks (BookmarkNode) """ try: f = open(self.__fileName, "r", encoding="utf-8") contents = json.load(f) f.close() except IOError as err: self._error = True self._errorString = self.tr( "File '{0}' cannot be read.\nReason: {1}")\ .format(self.__fileName, str(err)) return None from ..BookmarkNode import BookmarkNode importRootNode = BookmarkNode(BookmarkNode.Folder) if contents["version"] == 1: self.__processRoots(contents["roots"], importRootNode) if self._id == "chrome": importRootNode.title = self.tr("Google Chrome Import") elif self._id == "chromium": importRootNode.title = self.tr("Chromium Import") else: importRootNode.title = self.tr("Imported {0}")\ .format(QDate.currentDate().toString(Qt.SystemLocaleShortDate)) return importRootNode
def writeJson(configDictionary={}): basedata = {} metadata = {} authorList = [] taglist = [] listOfRoles = [ "Writer", "Inker", "Creator", "Editor", "Cartoonist", "Colorist", "Letterer", "Penciller", "Painter", "Cover", "Artist" ] if "authorList" in configDictionary.keys(): for authorE in range(len(configDictionary["authorList"])): author = {} authorDict = configDictionary["authorList"][authorE] stringName = [] if "last-name" in authorDict.keys(): stringName.append(authorDict["last-name"]) if "first-name" in authorDict.keys(): stringName.append(authorDict["first-name"]) if "nickname" in authorDict.keys(): stringName.append("(" + authorDict["nickname"] + ")") author["person"] = ",".join(stringName) if "role" in authorDict.keys(): role = str(authorDict["role"]).title() if "editor" in role.lower(): role = "Editor" if "cover" in role.lower: role = "Cover" if role in listOfRoles: author["role"] = role authorList.append(author) if "characters" in configDictionary.keys(): for character in configDictionary["characters"]: taglist.append(character) if "format" in configDictionary.keys(): for item in configDictionary["format"]: taglist.append(item) if "otherKeywords" in configDictionary.keys(): for item in configDictionary["otherKeywords"]: taglist.append(item) if "seriesName" in configDictionary.keys(): metadata["series"] = configDictionary["seriesName"] if "title" in configDictionary.keys(): metadata["title"] = configDictionary["title"] else: metadata["title"] = "Unnamed comic" if "publisherName" in configDictionary.keys(): metadata["publisher"] = configDictionary["publisherName"] if "publishingDate" in configDictionary.keys(): date = QDate.fromString(configDictionary["publishingDate"], Qt.ISODate) metadata["publicationMonth"] = date.month() metadata["publicationYear"] = date.year() if "seriesNumber" in configDictionary.keys(): metadata["issue"] = configDictionary["seriesNumber"] if "seriesVolume" in configDictionary.keys(): metadata["volume"] = configDictionary["seriesVolume"] if "genre" in configDictionary.keys(): if isinstance(configDictionary["genre"], dict): listKeys = [] for key in configDictionary["genre"].keys(): listKeys.append(key) metadata["genre"] = listKeys else: metadata["genre"] = configDictionary["genre"] if "language" in configDictionary.keys(): metadata["language"] = QLocale.languageToString( QLocale(configDictionary["language"]).language()) metadata["credits"] = authorList metadata["tags"] = taglist if "summary" in configDictionary.keys(): metadata["comments"] = configDictionary["summary"] else: metadata["comments"] = "File generated without summary" # basedata["appID"] = "Krita" basedata["lastModified"] = QDateTime.currentDateTimeUtc().toString( Qt.ISODate) basedata["ComicBookInfo/1.0"] = metadata return json.dumps(basedata)
def text_to_date(text): text = '{} {}'.format(str(text), str(QDate.currentDate().year())) return QDate.fromString(text, 'dddd dd MMMM yyyy')
def openCSV(self, path): separator = ";" file = open(path, "r") content = file.read().splitlines() file.close() # remove empty lines while "" in content: content.remove("") # remove section-header [Stundenplan] & csv-header if content[0] == "[Stundenplan]": content.pop(0) content.pop(0) # read content of [Stundenplan] until header [Vertretungen] while content[0] != "[Vertretungen]": line = content.pop(0).split(separator) Stunde(int(line[0]), int(line[1]), line[2], line[3], line[4], line[5]) # remove section-header [Vertretungen] & csv-header if content[0] == "[Vertretungen]": content.pop(0) content.pop(0) # read content of [Vertretungen] until header [Abwesend] while content[0] != "[Abwesend]": line = content.pop(0).split(separator) datumL = line[0].split(", ") datum = Tag.createTag( QDate(int(datumL[0]), int(datumL[1]), int(datumL[2]))) Vertretungsstunde(int(line[1]), int(line[2]), line[3], line[4], line[5], line[6], datum, line[7]) # remove section-header [Abwesend] & csv-header if content[0] == "[Abwesend]": content.pop(0) content.pop(0) # read content of [Abwesend] until header [Blockiert] while content[0] != "[Blockiert]": line = content.pop(0).split(separator) leh = line[0] ds = line[1] dl = ds.split(",") datum = Tag.createTag(QDate(int(dl[0]), int(dl[1]), int(dl[2]))) ab = int(line[2]) bis = int(line[3]) lehrer = list( filter(lambda c: str(c) == leh, Lehrer.LehrerListe()))[0] tag = Tag.createTag(datum) Blockierung(lehrer, tag, ab, bis) # remove section-header [Blockiert] & csv-header if content[0] == "[Blockiert]": content.pop(0) content.pop(0) # read content of [Blockiert] until header [Informationen] while content[0] != "[Informationen]": line = content.pop(0).split(separator) rau = line[0] ds = line[1] dl = ds.split(",") datum = Tag.createTag(QDate(int(dl[0]), int(dl[1]), int(dl[2]))) ab = int(line[2]) bis = int(line[3]) raum = list(filter(lambda c: str(c) == rau, Raum.RaumListe()))[0] tag = Tag.createTag(datum) Blockierung(raum, tag, ab, bis) # remove section-header [Informationen] & csv-header if content[0] == "[Informationen]": content.pop(0) content.pop(0) # read content of [Blockiert] until file's empty while content: line = content.pop(0).split(separator) dl = line[0].split(",") datum = Tag.createTag(QDate(int(dl[0]), int(dl[1]), int(dl[2]))) datum.addInformationen(line[1].replace("\t", "\n")) file = open("config/config.ini", "w") file.write(path) file.close()
def to_qdate(date_object: dict): return QDate(date_object["year"], date_object["month"], date_object["day"])
def setUpUI(self): self.layout = QVBoxLayout() self.Hlayout2 = QHBoxLayout() self.Vlayout1 = QVBoxLayout() self.grid_layout = QGridLayout() self.searchEdit = QLineEdit() self.searchEdit.setFixedHeight(32) self.font = QFont() self.font.setPixelSize(14) self.searchEdit.setFont(self.font) self.searchButton = QPushButton("") self.searchButton.setFixedHeight(80) self.searchButton.setFixedWidth(80) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap("images/search.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.searchButton.setIcon(icon) self.searchButton.setIconSize(QtCore.QSize(50, 50)) self.displayLabel = QLabel("Audit Investigation Record") font2 = QFont() font2.setPixelSize(25) self.displayLabel.setFont(font2) self.displayLabel.setAlignment(QtCore.Qt.AlignCenter) self.condisionComboBox = QComboBox() searchCondision = ['Auditor', 'Investigation ', 'Location'] self.condisionComboBox.setFixedHeight(32) self.condisionComboBox.setFont(self.font) self.condisionComboBox.addItems(searchCondision) self.grid_layout.addWidget(self.condisionComboBox, 0, 0, 1, 1) self.grid_layout.addWidget(self.searchEdit, 0, 1, 1, 21) self.rbAll = QRadioButton('All', self) self.rbAll.setFont(self.font) self.rbAll.setChecked(True) self.rbAll.toggled.connect(self.rbclicked) self.dateStartLabel = QLabel("Start") self.dateEndLabel = QLabel("End") self.refreshInvestbtn = QPushButton("") self.refreshInvestbtn.setToolTip("Refresh") self.refreshInvestbtn.setIcon(QIcon(QPixmap("images/inspect.png"))) self.addInvestbtn = QPushButton("") self.addInvestbtn.setToolTip("Add") self.addInvestbtn.setIcon(QIcon(QPixmap("images/add.png"))) self.updateInvestbtn = QPushButton("") # #self.updateInvestbtn.setFixedWidth(70) self.updateInvestbtn.setToolTip("Update") self.updateInvestbtn.setIcon(QIcon(QPixmap("images/alter.png"))) self.delInvestbtn = QPushButton("") # #self.delInvestbtn.setFixedWidth(70) self.delInvestbtn.setToolTip("Delelte") self.delInvestbtn.setIcon(QIcon(QPixmap("images/del.png"))) self.prtMeetingbtn = QPushButton("") self.prtMeetingbtn.setToolTip("Print") self.prtMeetingbtn.setIcon(QIcon(QPixmap("images/print2.png"))) self.prtSetupbtn = QPushButton("") self.prtSetupbtn.setToolTip("Printer settings") self.prtSetupbtn.setIcon(QIcon(QPixmap("images/inspect.png"))) self.impExcelbtn = QPushButton("") self.impExcelbtn.setToolTip("导入Excel") self.impExcelbtn.setIcon(QIcon(QPixmap("images/input.png"))) self.xptExcelbtn = QPushButton("") self.xptExcelbtn.setToolTip("Export to Excel") self.xptExcelbtn.setIcon(QIcon(QPixmap("images/output.png"))) spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.jumpToLabel = QLabel("Jump to") self.jumpToLabel.setFont(self.font) self.pageEdit = QLineEdit() self.pageEdit.setFixedWidth(30) self.pageEdit.setFont(self.font) s = "/" + str(self.totalPage) + "page" self.pageLabel = QLabel(s) self.pageLabel.setFont(self.font) self.jumpToButton = QPushButton("") self.jumpToButton.setToolTip("Jump") self.jumpToButton.setIcon(QIcon(QPixmap("images/jump.png"))) self.prevButton = QPushButton("") self.prevButton.setToolTip("Previous page") self.prevButton.setIcon(QIcon(QPixmap("images/pageup.png"))) self.backButton = QPushButton("") self.backButton.setToolTip("Next page") self.backButton.setIcon(QIcon(QPixmap("images/pagedown.png"))) self.min_date = QDate.currentDate() self.max_date = QDate.currentDate() query = QSqlQuery() if not query.exec_( 'SELECT MIN(date) AS Min_Date,MAX(date) AS Max_Date from invest' ): query.lastError() else: while query.next(): self.min_date = QDate.fromString(query.value(0), 'yyyy/MM/dd') self.max_date = QDate.fromString(query.value(1), 'yyyy/MM/dd') self.dateStartLabel.setFont(self.font) self.dateStartLabel.setFixedHeight(32) self.dateStartLabel.setFixedWidth(80) self.dateEndLabel.setFont(self.font) self.dateEndLabel.setFixedHeight(32) self.dateEndLabel.setFixedWidth(80) self.dateStartEdit = QDateTimeEdit(self.min_date, self) self.dateEndEdit = QDateTimeEdit(self.max_date, self) self.dateStartEdit.setEnabled(not self.rbAll.isChecked()) self.dateEndEdit.setEnabled(not self.rbAll.isChecked()) self.dateStartEdit.setFont(self.font) self.dateStartEdit.setFixedHeight(32) self.dateStartEdit.setFixedWidth(200) self.dateEndEdit.setFont(self.font) self.dateEndEdit.setFixedHeight(32) self.dateEndEdit.setFixedWidth(200) self.dateStartEdit.setMinimumDate(self.min_date) self.dateStartEdit.setMaximumDate(self.max_date) self.dateEndEdit.setMinimumDate(self.min_date) self.dateEndEdit.setMaximumDate(self.max_date) self.dateStartEdit.dateChanged.connect(self.onStartDateChanged) self.dateEndEdit.dateChanged.connect(self.onEndDateChanged) self.dateStartEdit.setCalendarPopup(True) self.dateEndEdit.setCalendarPopup(True) self.tableView = QTableView() self.tableView.horizontalHeader().setStretchLastSection(True) self.tableView.horizontalHeader().setSectionResizeMode( QHeaderView.Stretch) self.tableView.setEditTriggers(QAbstractItemView.NoEditTriggers) self.tableView.setSelectionBehavior(QAbstractItemView.SelectRows) self.tableView.setSelectionMode(QAbstractItemView.ExtendedSelection) self.queryModel = QSqlQueryModel() self.searchButtonClicked() Hlayout = QHBoxLayout() Hlayout.addWidget(self.refreshInvestbtn) Hlayout.addWidget(self.addInvestbtn) Hlayout.addWidget(self.updateInvestbtn) Hlayout.addWidget(self.delInvestbtn) Hlayout.addWidget(self.prtMeetingbtn) Hlayout.addWidget(self.prtSetupbtn) Hlayout.addWidget(self.impExcelbtn) Hlayout.addWidget(self.xptExcelbtn) Hlayout.addItem(spacerItem) Hlayout.addWidget(self.jumpToLabel) Hlayout.addWidget(self.pageEdit) Hlayout.addWidget(self.pageLabel) Hlayout.addWidget(self.jumpToButton) Hlayout.addWidget(self.prevButton) Hlayout.addWidget(self.backButton) widget = QWidget() widget.setLayout(Hlayout) widget.setFixedWidth(900) self.grid_layout.addWidget(self.rbAll, 1, 0, 1, 1) self.grid_layout.addWidget(self.dateStartLabel, 1, 1, 1, 1) self.grid_layout.addWidget(self.dateStartEdit, 1, 2, 1, 1) self.grid_layout.addWidget(self.dateEndLabel, 1, 20, 1, 1) self.grid_layout.addWidget(self.dateEndEdit, 1, 21, 1, 1) self.grid_layout.addWidget(self.searchButton, 0, 24, 2, 2) self.Hlayout2.addWidget(widget) self.dateStartEdit.setDisplayFormat("yyyy/MM/dd") self.dateEndEdit.setDisplayFormat("yyyy/MM/dd") self.tableView.setModel(self.queryModel) self.queryModel.setHeaderData(0, Qt.Horizontal, "Serial number") self.queryModel.setHeaderData(1, Qt.Horizontal, "Auditor") self.queryModel.setHeaderData(2, Qt.Horizontal, "Investigation ") self.queryModel.setHeaderData(3, Qt.Horizontal, "Date") self.queryModel.setHeaderData(4, Qt.Horizontal, "Location") self.queryModel.setHeaderData(5, Qt.Horizontal, "Remarks") self.tableView.setColumnHidden(0, True) #self.layout.addLayout(self.Hlayout4) self.layout.addLayout(self.grid_layout) self.layout.addWidget(self.displayLabel) self.layout.addWidget(self.tableView) self.layout.addLayout(self.Hlayout2) self.setLayout(self.layout) self.searchButton.clicked.connect(self.searchButtonClicked) self.prevButton.clicked.connect(self.prevButtonClicked) self.backButton.clicked.connect(self.backButtonClicked) self.jumpToButton.clicked.connect(self.jumpToButtonClicked) self.searchEdit.returnPressed.connect(self.searchButtonClicked) self.childaddmeeting = addDialog() self.refreshInvestbtn.clicked.connect(self.rfs_row_data) self.addInvestbtn.clicked.connect(self.add_row_data) self.updateInvestbtn.clicked.connect(self.mod_row_data) self.delInvestbtn.clicked.connect(self.del_row_data) self.prtMeetingbtn.clicked.connect(self.prt_row_data) self.prtSetupbtn.clicked.connect(self.prt_setup_data) self.impExcelbtn.clicked.connect(self.imp_excel_data) self.xptExcelbtn.clicked.connect(self.xpt_excel_data)
from PyQt5.QtCore import QDate, Qt now = QDate.currentDate() d = QDate(1945, 4, 7) print("Days in month: {0}".format(d.daysInMonth())) print("Days in year: {0}".format(d.daysInYear()))
def generate_BRLog_items(each_log) -> list: """ :param each_log: :return: list[PyQt5.QtWidgets.QTableWidgetItem],返回一个全是item的列表,用于设置到表格中 """ item_list = list() cur_reader_ID = each_log.get_readerID() item_reader_ID = QTableWidgetItem( cur_reader_ID if cur_reader_ID != '' else '无', CellType_BRLog.ctReader_ID.value) item_reader_ID.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter) item_list.append(item_reader_ID) cur_borrowTime = each_log.get_borrowTime() item_borrowTime = QTableWidgetItem( cur_borrowTime if cur_borrowTime != '' else '无', CellType_BRLog.ctBT.value) item_borrowTime.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter) item_list.append(item_borrowTime) cur_borrowPlace = each_log.get_borrowPlace() item_borrowPlace = QTableWidgetItem( cur_borrowPlace if cur_borrowPlace != '' else '无', CellType_BRLog.ctBP.value) item_borrowPlace.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter) item_list.append(item_borrowPlace) cur_lending_period = int(''.join( re.findall(r'\d+', each_log.get_lending_period()))) # 90天 把天去掉 item_lending_period = QTableWidgetItem( str(cur_lending_period) + '天', CellType_BRLog.ctPeriod.value) item_lending_period.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter) item_list.append(item_lending_period) cur_dueDate = QDate.fromString( cur_borrowTime, 'yyyy-MM-dd').addDays(cur_lending_period).toString('yyyy-MM-dd') item_dueDate = QTableWidgetItem(cur_dueDate, CellType_BRLog.ctDue.value) item_dueDate.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter) item_list.append(item_dueDate) cur_IsReturn = each_log.get_IsReturn() item_IsReturn = QTableWidgetItem('已归还', CellType_BRLog.ctIsReturn.value) if cur_IsReturn == False: item_IsReturn = QTableWidgetItem('未归还', CellType_BRLog.ctIsReturn.value) item_IsReturn.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter) item_list.append(item_IsReturn) cur_returnTime = each_log.get_returnTime() item_returnTime = QTableWidgetItem( cur_returnTime if cur_returnTime != '' else '(未归还)', CellType_BRLog.ctRT.value) item_returnTime.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter) item_list.append(item_returnTime) cur_returnPlace = each_log.get_returnPlace() item_returnPlace = QTableWidgetItem( cur_returnPlace if cur_returnPlace != '' else '(未归还)', CellType_BRLog.ctRP.value) item_returnPlace.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter) item_list.append(item_returnPlace) cur_real_lendingPeriod = '(未归还)' if cur_borrowTime != '无' and cur_returnTime != '(未归还)': # 必须先转换为QDate cur_borrowTime += ' 00:00:00' cur_returnTime += ' 00:00:00' # 必须要转为QDateTime cur_borrowDate = QDateTime.fromString(cur_borrowTime, 'yyyy-MM-dd hh:mm:ss') cur_returnDate = QDateTime.fromString(cur_returnTime, 'yyyy-MM-dd hh:mm:ss') seconds = cur_borrowDate.secsTo(cur_returnDate) / (24 * 3600) cur_real_lendingPeriod = str(int(seconds)) + '天' item_real_lendingPeriod = QTableWidgetItem( cur_real_lendingPeriod, CellType_BRLog.ctRealPeriod.value) item_real_lendingPeriod.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter) item_list.append(item_real_lendingPeriod) return item_list
def __init__(self): super(mywindow, self).__init__() self.setupUi(self) self.window().setWindowTitle("人物检索系统") self.pic_list = [ self.map1, self.map2, self.map3, self.map4, self.map5, self.map6, self.map7, self.map8, self.map9, self.map10 ] self.detected_face = [ self.d1, self.d2, self.d3, self.d4, self.d5, self.d6, self.d7, self.d8 ] self.rejected_face = [ self.r1, self.r2, self.r3, self.r4, self.r5, self.r6, self.r7, self.r8 ] self.trained_people_list = [] if os.path.exists("./training-images"): self.trained_people_list = os.listdir("./training-images") if os.path.exists("./saved_image/accept"): shutil.rmtree("./saved_image/accept") if os.path.exists("./saved_image/main"): shutil.rmtree("./saved_image/main") if os.path.exists("./saved_image/reject"): shutil.rmtree("./saved_image/reject") os.mkdir("./saved_image/accept") os.mkdir("./saved_image/main") os.mkdir("./saved_image/reject") self.pushButton.clicked.connect(self.FindDir) self.pushButton_2.clicked.connect(self.ClearPic) self.listWidget.itemDoubleClicked.connect(self.RemovePic) self.pushButton_3.clicked.connect(self.Submit) self.pushButton_4.clicked.connect(self.Reset) self.pushButton_5.clicked.connect(self.Train) self.pushButton_6.clicked.connect(self.click_btn_start) self.btn_pause.clicked.connect(self.click_btn_pause) self.detected_face_list_num = 0 self.detected_face_list_len = len(self.detected_face) self.rejected_face_list_num = 0 self.rejected_face_list_len = len(self.rejected_face) #lcd时间显示 self.lcdNumber.setDigitCount(8) self.ShowColn = True self.timer1 = QTimer(self) self.timer1.start(1000) self.timer1.timeout.connect(self.showTime) now_data = QDate.currentDate() self.lcdNumber_2.setDigitCount(10) self.lcdNumber_2.display(now_data.toString(Qt.ISODate)) self.th = myThread() self.lock_or_not = False self.spinBox.setValue(20) self.doubleSpinBox.setValue(0.60) self.doubleSpinBox.setSingleStep(0.01) #人物复选框 self.vLayout = QGridLayout() self.check_box_list = [] for file in os.listdir("./training-images"): self.check_box_name = QCheckBox(file, self) self.vLayout.addWidget(self.check_box_name) self.check_box_list.append(self.check_box_name) self.scrollArea.widget().setLayout(self.vLayout) self.selected_people = [] self.comboBox.addItem("not save") self.comboBox.addItem("save key sections") self.comboBox.addItem("save total sections") self.save_or_not = (0, 0) self.save_num_a = 0 self.save_num_r = 0 self.save_num_m = 0
def setupUi(self, adddata=None, sqlfile=None, host=None): now = datetime.now() if host is None: self.host = '' else: self.host = host if adddata is None: self.addData = DataFrame( columns=['ID', 'Log Count', 'Description']) else: self.addData = adddata self.availData = None self.addPD = None self.avalPD = None # SQL if sqlfile is None: self.sqlfile = "support\\cpquery.sql" else: self.sqlfile = sqlfile # SERVER CONNECT QApplication.setOverrideCursor( QCursor(Qt.WaitCursor)) self.conn = connect(LogScanner) QApplication.restoreOverrideCursor() self.setObjectName("Dialog") # self.setWindowIcon(QIcon('images/icon.ico')) self.resize(250, 900) self.setStyleSheet( "#Dialog {\n" " background-color: white;\n" "}") self.installEventFilter(self) self.horizontalLayout = QVBoxLayout(self) self.horizontalLayout.setObjectName("horizontalLayout") self.calendarWidget = QCalendarWidget(self) font = QFont() font.setFamily("Tahoma") font.setPointSize(10) self.calendarWidget.setFont(font) self.calendarWidget.setStyleSheet( "#qt_calendar_prevmonth {\n" " qproperty-icon: url(\"images/prev.png\");\n" "}\n" "\n" "#qt_calendar_nextmonth {\n" " qproperty-icon: url(\"images/next.png\");\n" "}\n" "\n" "#qt_calendar_navigationbar {\n" " background-color: qlineargradient(spread:pad, x1:0, y1:0, " "x2:1, y2:1, stop:0 rgb(192, 221, 221), stop:1 rgb(180, 233, " "197));\n" "}\n" "\n" "#qt_calendar_monthbutton {\n" " color: rgb(0,115,119);\n" " font-size: 15px;\n" "}\n" "\n" "#qt_calendar_yearbutton {\n" " color: rgb(0,115,119);\n" " font-size: 15px;\n" "}\n" "\n" "QCalendarWidget QMenu {\n" " background-color: white;\n" " color: rgb(0,115,119);\n" "}\n" "\n" "QCalendarWidget QMenu::item:selected {\n" " background-color: rgb(192, 221, 221);\n" " color: rgb(0,115,119);\n" "}\n" "\n" "QCalendarWidget QSpinBox {\n" " color: rgb(0,115,119);\n" " selection-background-color: rgb(0, 115, 119);\n" " selection-color: white;\n" "}\n" "\n" "#qt_calendar_calendarview:enabled {\n" " background-color: rgb(192, 221, 221);\n" " alternate-background-color: white;\n" " color: rgb(0, 115, 119);\n" " selection-background-color: rgb(0, 115, 119);\n" " selection-color: white;\n" "}\n" "\n" "#qt_calendar_calendarview:disabled {\n" " color: #44acb0;\n" "}\n" "\n" "") btn = self.calendarWidget.findChild( QToolButton, "qt_calendar_prevmonth") btn.setCursor(QCursor(Qt.PointingHandCursor)) btn = self.calendarWidget.findChild( QToolButton, "qt_calendar_nextmonth") btn.setCursor(QCursor(Qt.PointingHandCursor)) self.calendarWidget.setVerticalHeaderFormat( QCalendarWidget.NoVerticalHeader) self.calendarWidget.setObjectName("calendarWidget") self.calendarWidget.setMinimumDate(QDate(2016, 1, 1)) self.calendarWidget.setMaximumDate( QDate(now.year, now.month, now.day)) btn = self.calendarWidget.findChild( QSpinBox, "qt_calendar_yearedit") btn.setAlignment(Qt.AlignCenter) btn.setButtonSymbols(QSpinBox.NoButtons) self.horizontalLayout.addWidget(self.calendarWidget) self.leftTV = QTableView(self) self.leftTV.setStyleSheet( "QTableView {" "border: 1px solid rgb(192, 221, 221);" "gridline-color: rgb(192, 221, 221);" "selection-background-color: rgb(192, 221, 221);" "selection-color: rgb(0,115,119);" "}" "QTableView::item::selected:!active {" "selection-color: rgb(0,115,119);" "}" ) self.leftTV.setObjectName("leftTV") self.leftTV.horizontalHeader().setDefaultSectionSize(65) self.leftTV.horizontalHeader().setStretchLastSection(True) self.leftTV.horizontalHeader().setStyleSheet( "QHeaderView::section {" "height: 25px;" "border: 1px outset rgb(192, 221, 221);" "background-color: white;" "selection-background-color: white;" "}" ) scrollbarss = """ QScrollBar:vertical { border: none; background: white; width: 5px; margin: 0 0 0 0; } QScrollBar::handle:vertical { background: rgb(192, 221, 221); border-radius: 2px; min-height: 20px; } QScrollBar::add-line:vertical { border: none; background: none; height: 0; subcontrol-position: none; subcontrol-origin: none; } QScrollBar::sub-line:vertical { border: none; background: none; height: 0; subcontrol-position: none; subcontrol-origin: none; } QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { border: none; width: 0; height: 0; background: none; } QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { background: none; } QScrollBar:horizontal { border: none; background: white; height: 5px; margin: 0 0 0 0; } QScrollBar::handle:horizontal { background: rgb(192, 221, 221); border-radius: 2px; min-width: 20px; } QScrollBar::add-line:horizontal { border: none; background: none; width: 0; } QScrollBar::sub-line:horizontal { border: none; background: none; width: 0; } QScrollBar::left-arrow:horizontal, QScrollBar::right-arrow:horizontal { border: none; width: 0; height: 0; background: none; } QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { background: none; } """ self.leftTV.verticalScrollBar().setStyleSheet(scrollbarss) self.leftTV.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) self.leftTV.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.leftFilter = HoverFilter() self.leftTV.horizontalHeader().installEventFilter(self.leftFilter) lcDelegate = LogCountDelegate() self.leftTV.setItemDelegateForColumn(1, lcDelegate) self.horizontalLayout.addWidget(self.leftTV) self.middleButtonsLayout = QHBoxLayout() self.middleButtonsLayout.setObjectName("middleButtonsLayout") self.addButton = QToolButton(self) self.addButton.setObjectName("addButton") buttonStyle = \ "QToolButton {\n"\ " background-color: qlineargradient(spread:pad, x1:0, y1:0, "\ "x2:1, y2:1, stop:0 rgba(0, 115, 119, 255), stop:1 rgb(4, 147, "\ "131));\n"\ " color: white;\n"\ " border: None;"\ " border-radius: 2px;"\ " font: 11pt \"Tahoma\";"\ "}" self.addButton.setStyleSheet(buttonStyle) self.addButton.setCursor( QCursor(Qt.PointingHandCursor)) self.middleButtonsLayout.addWidget(self.addButton) self.deleteButton = QToolButton(self) font = QFont() font.setPointSize(10) self.deleteButton.setFont(font) self.deleteButton.setObjectName("deleteButton") self.deleteButton.setStyleSheet(buttonStyle) self.deleteButton.setCursor( QCursor(Qt.PointingHandCursor)) self.middleButtonsLayout.addWidget(self.deleteButton) self.horizontalLayout.addLayout(self.middleButtonsLayout) self.rightTV = QTableView(self) self.rightTV.setStyleSheet( "QTableView {" "border: 1px solid rgb(192, 221, 221);" "gridline-color: rgb(192, 221, 221);" "selection-background-color: rgb(192, 221, 221);" "selection-color: rgb(0,115,119);" "}" "QTableView::item::selected:!active {" "selection-color: rgb(0,115,119);" "}" ) self.rightTV.setObjectName("rightTV") self.rightTV.verticalScrollBar().setStyleSheet(scrollbarss) self.rightTV.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) self.rightTV.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.rightTV.horizontalHeader().setDefaultSectionSize(65) self.rightTV.horizontalHeader().setStretchLastSection(True) self.rightTV.horizontalHeader().setStyleSheet( "QHeaderView::section {" "height: 25px;" "border: 1px outset rgb(192, 221, 221);" "background-color: white;" "selection-background-color: white;" "}" ) self.rightFilter = HoverFilter() self.rightTV.horizontalHeader().installEventFilter(self.rightFilter) lcDelegate = LogCountDelegate() self.rightTV.setItemDelegateForColumn(1, lcDelegate) self.horizontalLayout.addWidget(self.rightTV) # self.horizontalLayout.addLayout(self.vertlayoutl) self.buttonBox = QDialogButtonBox(self) self.buttonBox.setStyleSheet( "QDialogButtonBox QPushButton {\n" " background-color: ;\n" " background-color: qlineargradient(spread:pad, x1:0, y1:0, " "x2:1, y2:1, stop:0 rgba(0, 115, 119, 255), stop:1 rgb(4, 147, " "131));\n" " color: white;\n" " width: 70px;\n" " height: 25px;\n" " border: None;\n" " border-radius: 2px;\n" " \n" " font: 11pt \"Tahoma\";\n" "}") self.buttonBox.setOrientation(Qt.Horizontal) self.buttonBox.setStandardButtons( QDialogButtonBox.Cancel | QDialogButtonBox.Ok) self.buttonBox.setObjectName("buttonBox") for w in self.buttonBox.children(): if w.metaObject().className() == "QPushButton": w.setCursor(QCursor(Qt.PointingHandCursor)) self.horizontalLayout.addWidget(self.buttonBox) # DATA SET UP # self.onDateChange() # self.RTVSetUp() # EVENTS self.calendarWidget.selectionChanged.connect(self.onDateChange) self.addButton.clicked.connect(self.addFunction) self.deleteButton.clicked.connect(self.deleteFunction) self.retranslateUi(self) # self.buttonBox.button(QDialogButtonBox.Ok).clicked.connect( # self.accept) # self.buttonBox.rejected.connect(self.reject) QMetaObject.connectSlotsByName(self)
def createLetter(self, name, address, orderItems, sendOffers): editor = QTextEdit() tabIndex = self.letters.addTab(editor, name) self.letters.setCurrentIndex(tabIndex) cursor = editor.textCursor() cursor.movePosition(QTextCursor.Start) topFrame = cursor.currentFrame() topFrameFormat = topFrame.frameFormat() topFrameFormat.setPadding(16) topFrame.setFrameFormat(topFrameFormat) textFormat = QTextCharFormat() boldFormat = QTextCharFormat() boldFormat.setFontWeight(QFont.Bold) referenceFrameFormat = QTextFrameFormat() referenceFrameFormat.setBorder(1) referenceFrameFormat.setPadding(8) referenceFrameFormat.setPosition(QTextFrameFormat.FloatRight) referenceFrameFormat.setWidth( QTextLength(QTextLength.PercentageLength, 40)) cursor.insertFrame(referenceFrameFormat) cursor.insertText("A company", boldFormat) cursor.insertBlock() cursor.insertText("321 City Street") cursor.insertBlock() cursor.insertText("Industry Park") cursor.insertBlock() cursor.insertText("Another country") cursor.setPosition(topFrame.lastPosition()) cursor.insertText(name, textFormat) for line in address.split("\n"): cursor.insertBlock() cursor.insertText(line) cursor.insertBlock() cursor.insertBlock() date = QDate.currentDate() cursor.insertText("Date: %s" % date.toString('d MMMM yyyy'), textFormat) cursor.insertBlock() bodyFrameFormat = QTextFrameFormat() bodyFrameFormat.setWidth(QTextLength(QTextLength.PercentageLength, 100)) cursor.insertFrame(bodyFrameFormat) cursor.insertText( "I would like to place an order for the following " "items:", textFormat) cursor.insertBlock() cursor.insertBlock() orderTableFormat = QTextTableFormat() orderTableFormat.setAlignment(Qt.AlignHCenter) orderTable = cursor.insertTable(1, 2, orderTableFormat) orderFrameFormat = cursor.currentFrame().frameFormat() orderFrameFormat.setBorder(1) cursor.currentFrame().setFrameFormat(orderFrameFormat) cursor = orderTable.cellAt(0, 0).firstCursorPosition() cursor.insertText("Product", boldFormat) cursor = orderTable.cellAt(0, 1).firstCursorPosition() cursor.insertText("Quantity", boldFormat) for text, quantity in orderItems: row = orderTable.rows() orderTable.insertRows(row, 1) cursor = orderTable.cellAt(row, 0).firstCursorPosition() cursor.insertText(text, textFormat) cursor = orderTable.cellAt(row, 1).firstCursorPosition() cursor.insertText(str(quantity), textFormat) cursor.setPosition(topFrame.lastPosition()) cursor.insertBlock() cursor.insertText("Please update my records to take account of the " "following privacy information:") cursor.insertBlock() offersTable = cursor.insertTable(2, 2) cursor = offersTable.cellAt(0, 1).firstCursorPosition() cursor.insertText( "I want to receive more information about your " "company's products and special offers.", textFormat) cursor = offersTable.cellAt(1, 1).firstCursorPosition() cursor.insertText( "I do not want to receive any promotional " "information from your company.", textFormat) if sendOffers: cursor = offersTable.cellAt(0, 0).firstCursorPosition() else: cursor = offersTable.cellAt(1, 0).firstCursorPosition() cursor.insertText('X', boldFormat) cursor.setPosition(topFrame.lastPosition()) cursor.insertBlock() cursor.insertText("Sincerely,", textFormat) cursor.insertBlock() cursor.insertBlock() cursor.insertBlock() cursor.insertText(name) self.printAction.setEnabled(True)
def __init__(self, parent: QWidget = None): super().__init__(parent) self._size: int = os.cpu_count() if self._size is None: self._size = 2 self._processes_pool = [] self._manager = ImportManager(self._size) self._max_progress: int = 0 self._timer: QTimer = QTimer() self._confuser = ConfuseWindow(self) self._date_start_cache = None self._tesseract_path_cache = None self._poppler_path_cache = None # window settings self.setWindowFlag(Qt.WindowContextHelpButtonHint, False) self.setWindowTitle(self.tr("Import window")) # list widget with files self.list_widget = QListWidget() self.list_widget.setSortingEnabled(True) self.layout_open_folder = QHBoxLayout() self.label_find = QLabel(self.tr("Schedules: ") + "0") self.layout_open_folder.addWidget(self.label_find) self.layout_open_folder.addStretch(1) self.push_button_open_folder = QToolButton() self.layout_open_folder.addWidget(self.push_button_open_folder) self.push_button_open_folder.setText(self.tr("Open folder")) self.push_button_open_folder.setPopupMode(QToolButton.MenuButtonPopup) self.action_open_files = QAction(self.tr("Open files")) self.push_button_open_folder.addAction(self.action_open_files) # main progress self.group_box_main_progress = QGroupBox(self.tr("Main progress")) self.layout_main_progress = QVBoxLayout(self.group_box_main_progress) self.process_bar_main = QProgressBar() self.layout_main_progress.addWidget(self.process_bar_main) self.layout_start_process = QHBoxLayout() self.layout_start_process.addStretch(1) self.push_button_import = QPushButton(self.tr("Import")) self.layout_start_process.addWidget(self.push_button_import) self.push_button_stop = QPushButton(self.tr("Stop")) self.layout_start_process.addWidget(self.push_button_stop) self.push_button_stop.setEnabled(False) self.layout_main_progress.addLayout(self.layout_start_process) # threads process self.group_box_threads = QGroupBox(self.tr("Threads")) self.grid_layout_threads = QGridLayout(self.group_box_threads) self._progresses_bars = [] rows = self._size // 2 columns = 2 for i in range(rows): for j in range(columns): progress_bar = QProgressBar() progress_bar.setTextVisible(True) self._progresses_bars.append(progress_bar) self.grid_layout_threads.addWidget(progress_bar, i, j) # options self.group_box_options = QGroupBox(self.tr("Options")) self.form_layout_options = QFormLayout(self.group_box_options) self.check_box_weekly = QCheckBox(self.tr("Create weekly schedule")) self.form_layout_options.addRow(self.check_box_weekly) self.check_box_full = QCheckBox(self.tr("Create full schedule")) self.form_layout_options.addRow(self.check_box_full) self.check_box_debug_img = QCheckBox(self.tr("Create debug image")) self.form_layout_options.addRow(self.check_box_debug_img) self.spin_box_dpi = QSpinBox() self.form_layout_options.addRow(self.tr("DPI"), self.spin_box_dpi) self.combo_box_tesseract_path = QComboBox() self.form_layout_options.addRow(self.tr("Tesseract path"), self.combo_box_tesseract_path) self.combo_box_poppler_path = QComboBox() self.form_layout_options.addRow(self.tr("Poppler path"), self.combo_box_poppler_path) self.check_box_debug_img.setChecked(True) self.check_box_debug_img.setEnabled(False) self.spin_box_dpi.setRange(200, 800) self.spin_box_dpi.setValue(500) self.combo_box_tesseract_path.addItem( self.tr("<select tesseract path>")) self.combo_box_tesseract_path.addItem("Default", "tesseract") self.combo_box_tesseract_path.setCurrentIndex(1) self._tesseract_path_cache = self.combo_box_tesseract_path.currentText( ) self.combo_box_poppler_path.addItem(self.tr("<select poppler path>")) self.combo_box_poppler_path.addItem("Default", None) self.combo_box_poppler_path.setCurrentIndex(1) self._poppler_path_cache = self.combo_box_poppler_path.currentText() # font edit self.group_box_font = QGroupBox(self.tr("Font settings")) self.form_layout_font = QFormLayout(self.group_box_font) self.label_font = QLabel(self.tr("Font")) self.form_layout_font.setWidget(0, QFormLayout.LabelRole, self.label_font) self.combo_box_font = QComboBox() self.form_layout_font.setWidget(0, QFormLayout.FieldRole, self.combo_box_font) self.label_encoding = QLabel(self.tr("Encoding")) self.form_layout_font.setWidget(1, QFormLayout.LabelRole, self.label_encoding) self.combo_box_encoding = QComboBox() self.form_layout_font.setWidget(1, QFormLayout.FieldRole, self.combo_box_encoding) for font_name, font_path in util.get_fonts(): self.combo_box_font.addItem(font_name, font_path) self.combo_box_font.setCurrentText(qApp.font().family()) self.combo_box_font.setEditable(True) self.combo_box_encoding.addItem("UTF-8") self.combo_box_encoding.addItem("Latin-1") self.combo_box_encoding.addItem("Windows-1252") # date edit self.group_box_date = QGroupBox(self.tr("Date settings")) self.form_layout_date = QFormLayout(self.group_box_date) self.label_date_start = QLabel(self.tr("Start")) self.form_layout_date.setWidget(0, QFormLayout.LabelRole, self.label_date_start) self.date_edit_start = QDateEdit() self.form_layout_date.setWidget(0, QFormLayout.FieldRole, self.date_edit_start) self.label_date_end = QLabel(self.tr("End")) self.form_layout_date.setWidget(1, QFormLayout.LabelRole, self.label_date_end) self.date_edit_end = QDateEdit() self.form_layout_date.setWidget(1, QFormLayout.FieldRole, self.date_edit_end) self.date_edit_start.setCalendarPopup(True) self.date_edit_end.setCalendarPopup(True) if QDate.currentDate().day() < QDate.currentDate().dayOfYear() / 2: date = QDate(QDate.currentDate().year(), 2, 1) else: date = QDate(QDate.currentDate().year(), 9, 1) self._date_start_cache = date.addDays(8 - date.dayOfWeek()) self.date_edit_start.setDate(self._date_start_cache) self.date_edit_end.setMinimumDate(self._date_start_cache.addDays(7)) self.date_edit_end.setDate(self._date_start_cache.addDays(16 * 7)) # subgroup edit self.group_box_subgroup = QGroupBox(self.tr("Subgroup settings")) self.form_layout_subgroup = QFormLayout(self.group_box_subgroup) self.label_color_a = QLabel(self.tr("Color A")) self.form_layout_subgroup.setWidget(0, QFormLayout.LabelRole, self.label_color_a) self.combo_box_color_a = QComboBox() self.form_layout_subgroup.setWidget(0, QFormLayout.FieldRole, self.combo_box_color_a) self.label_color_b = QLabel(self.tr("Color B")) self.form_layout_subgroup.setWidget(1, QFormLayout.LabelRole, self.label_color_b) self.combo_box_color_b = QComboBox() self.form_layout_subgroup.setWidget(1, QFormLayout.FieldRole, self.combo_box_color_b) self.label_pattern_a_b = QLabel(self.tr("Pattern A and B")) self.form_layout_subgroup.setWidget(2, QFormLayout.LabelRole, self.label_pattern_a_b) self.combo_box_pattern_a_b = QComboBox() self.form_layout_subgroup.setWidget(2, QFormLayout.FieldRole, self.combo_box_pattern_a_b) self.add_standard_colors(self.combo_box_color_a) self.add_standard_colors(self.combo_box_color_b) self.combo_box_color_a.setCurrentIndex(9) # lime self.combo_box_color_b.setCurrentIndex(15) # yellow self.combo_box_pattern_a_b.addItem(self.tr("Chess order")) self.combo_box_pattern_a_b.setEnabled(False) # navigate self.layout_navigate = QHBoxLayout() self.layout_navigate.addStretch(1) self.push_button_ok = QPushButton(self.tr("OK")) self.layout_navigate.addWidget(self.push_button_ok) self.push_button_cancel = QPushButton(self.tr("Cancel")) self.layout_navigate.addWidget(self.push_button_cancel) # layout setup self.layout_left = QVBoxLayout() self.layout_left.addWidget(self.list_widget) self.layout_left.addLayout(self.layout_open_folder) self.layout_right = QVBoxLayout() self.layout_right.addWidget(self.group_box_main_progress) self.layout_right.addWidget(self.group_box_threads) self.layout_down = QGridLayout() self.layout_down.addWidget(self.group_box_options, 0, 0) self.layout_down.addWidget(self.group_box_font, 1, 0) self.layout_down.addWidget(self.group_box_date, 0, 1) self.layout_down.addWidget(self.group_box_subgroup, 1, 1) self.layout_right.addLayout(self.layout_down) self.layout_right.addStretch(1) self.layout_right.addLayout(self.layout_navigate) self.layout_main = QHBoxLayout() self.layout_main.addLayout(self.layout_left, 1) self.layout_main.addLayout(self.layout_right, 2) self.setLayout(self.layout_main) # connections self._timer.timeout.connect(self.check_processes) self.push_button_open_folder.clicked.connect(self.open_folder_clicked) self.action_open_files.triggered.connect(self.open_files_clicked) self.push_button_import.clicked.connect( self.push_button_import_clicked) self.push_button_stop.clicked.connect(self.push_button_stop_clicked) self.check_box_weekly.clicked.connect(self.check_box_weekly_clicked) self.combo_box_tesseract_path.activated.connect( self.combo_box_tesseract_path_clicked) self.combo_box_poppler_path.activated.connect( self.combo_box_poppler_path_clicked) self.date_edit_start.dateChanged.connect(self.date_edit_start_changed) self.combo_box_color_a.activated.connect( self.combo_box_color_a_clicked) self.combo_box_color_b.activated.connect( self.combo_box_color_b_clicked) self.push_button_ok.clicked.connect(self.close) self.push_button_cancel.clicked.connect(self.close)
def __init__(self, parent): super(BirthdayPartyAttached, self).__init__(parent) self._rsvp = QDate()
#!/usr/bin/python3 from PyQt5.QtCore import QDate, QTime, QDateTime, Qt now = QDate.currentDate() print(now.toString(Qt.ISODate)) print(now.toString(Qt.DefaultLocaleLongDate)) datetime = QDateTime.currentDateTime() print(datetime.toString()) time = QTime.currentTime() print(time.toString(Qt.DefaultLocaleLongDate)) now2 = QDateTime.currentDateTime() print("Local datetime: ", now2.toString(Qt.ISODate)) print("Universal datetime: ", now2.toUTC().toString(Qt.ISODate)) print("The offset from UTC is: {0} seconds".format(now2.offsetFromUtc()))
def askfordate(self): self.date_box.setDate(QDate.currentDate()) self.date_box.setMaximumSize(200, 50) self.date_box.move(0, 300) self.date_box.show() self.date_box.setCalendarPopup(True)
def data(self, index, role=None): if not index.isValid(): return QVariant() col = index.column() row = index.row() item: BillItem = self._modelDomain.getBillItemAtRow(row) if role == Qt.DisplayRole: if col == self.ColumnId: return QVariant(item.item_id) elif col == self.ColumnDate: return QVariant(item.item_date) elif col == self.ColumnName: return QVariant(item.item_name) elif col == self.ColumnCategory: return QVariant(self._dicts["category"].getData( item.item_category)) elif col == self.ColumnVendor: return QVariant(self._dicts["vendor"].getData( item.item_vendor)) elif col == self.ColumnCost: return QVariant( f'{f"{item.item_cost/100:,.2f}".replace(",", " ")}') elif col == self.ColumnProject: return QVariant(self._dicts["project"].getData( item.item_project)) elif col == self.ColumnDescription: return QVariant(item.item_descript) elif col == self.ColumnShipmentTime: return QVariant(self._dicts["period"].getData( item.item_shipment_time)) elif col == self.ColumnStatus: return QVariant(self._dicts["status"].getData( item.item_status)) elif col == self.ColumnPriority: return QVariant(self._dicts["priority"].getData( item.item_priority)) elif col == self.ColumnShipmentDate: return QVariant(item.item_shipment_date) elif col == self.ColumnShipmentStatus: return QVariant(self._dicts["shipment"].getData( item.item_shipment_status)) elif col == self.ColumnPaymentWeek: return QVariant(item.item_payment_week) elif col == self.ColumnNote: return QVariant(item.item_note) elif col == self.ColumnActive: return QVariant() elif role == Qt.EditRole: if col == self.ColumnDoc: return QVariant(item.item_doc) elif role == Qt.DecorationRole: if col == self.ColumnDoc: if item.item_doc: return QVariant(self.docDecoration) elif col == self.ColumnOrder: if item.item_order: return QVariant(self.rightDecoration) elif role == Qt.CheckStateRole: if col == self.ColumnActive: active = self._modelDomain._rawPlanData[item.item_id][2] if active > 0: return QVariant(2) elif active == 0: return QVariant(0) if col == self.ColumnStatus: if item.item_status == 1: return QVariant(2) if item.item_status == 2: return QVariant(0) elif role == Qt.FontRole: return self._font elif role == Qt.BackgroundRole: retcolor = Qt.white if item.item_status == 1: retcolor = const.COLOR_PAYMENT_FINISHED if col == self.ColumnStatus: if item.item_status == 2: retcolor = const.COLOR_PAYMENT_PENDING if col == self.ColumnPriority: if item.item_status != 1: if item.item_priority == 2: # 3 4 retcolor = const.COLOR_PRIORITY_LOW elif item.item_priority == 3: retcolor = const.COLOR_PRIORITY_MEDIUM elif item.item_priority == 4: retcolor = const.COLOR_PRIORITY_HIGH if col == self.ColumnShipmentStatus: if item.item_shipment_status == 2: retcolor = const.COLOR_ARRIVAL_PENDING if item.item_shipment_status == 3: retcolor = const.COLOR_ARRIVAL_PARTIAL if item.item_shipment_status == 4: retcolor = const.COLOR_ARRIVAL_RECLAIM return QVariant(QBrush(QColor(retcolor))) elif role == const.RoleNodeId: return QVariant(item.item_id) elif role == const.RoleProject: return QVariant(item.item_project) elif role == const.RoleStatus: return QVariant(item.item_status) elif role == const.RolePriority: return QVariant(item.item_priority) elif role == const.RoleShipment: return QVariant(item.item_shipment_status) elif role == const.RoleDate: return QVariant(QDate.fromString(item.item_date, "dd.MM.yyyy")) elif role == const.RoleOrderId: return QVariant(item.item_order) return QVariant()
def to_python(self, value): qdate = QDate(value.year, value.month, value.day) return qdate
def is_today(self): if not self.date_time: return False return bool(self.date_time.date() == QDate.currentDate())
def __init__(self): QDate.__init__(self)
def lineDisplay(self, l): #在edit中显示browser 1-5行的内容 p = NextOffice.shipment.shipment_main.g * 5 - 4 #获得当前页面的第1行的序号 data = self.database() print("shipment_edit:lineDisplay start") if l == 1: self.lineEdit_id.setText(str(data[p - 1][0])) #数据库是从0开始的,所以减1 ###下面是从数据库中读取日期(字符串),然后分割字符串,再转成可以setData的格式 shipdate = data[p - 1][1] sdate = shipdate.split("-") sdate1 = int(sdate[0]) sdate2 = int(sdate[1]) sdate3 = int(sdate[2]) self.dateEdit_ship.setDate(QDate(sdate1, sdate2, sdate3)) # self.dateEdit_ship.setDate(data[p-1][1]) self.lineEdit_customer.setText(str(data[p - 1][2])) self.lineEdit_sales.setText(str(data[p - 1][3])) self.label_production.setText(str(data[p - 1][4])) self.label_model.setText(str(data[p - 1][5])) self.lineEdit_macID.setText(str(data[p - 1][6])) self.lineEdit_unitPrice.setText(str(data[p - 1][7])) self.lineEdit_number.setText(str(data[p - 1][8])) self.lineEdit_paid.setText(str(data[p - 1][9])) self.plainTextEdit_payRecord.setPlainText(str(data[p - 1][10])) ###下面是从数据库中读取日期(字符串),然后分割字符串,再转成可以setData的格式 paydate = data[p - 1][11] pdate = paydate.split("-") pdate1 = int(pdate[0]) pdate2 = int(pdate[1]) pdate3 = int(pdate[2]) self.dateEdit_pay.setDate(QDate(pdate1, pdate2, pdate3)) # self.dateEdit_pay.setDate(str(data[p-1][11])) self.plainTextEdit_shipto.setPlainText(str(data[p - 1][12])) self.plainTextEdit_remark.setPlainText(str(data[p - 1][13])) elif l == 2: self.lineEdit_id.setText(str(data[p][0])) #数据库是从0开始的,所以减1 ###下面是从数据库中读取日期(字符串),然后分割字符串,再转成可以setData的格式 shipdate = data[p][1] sdate = shipdate.split("-") sdate1 = int(sdate[0]) sdate2 = int(sdate[1]) sdate3 = int(sdate[2]) self.dateEdit_ship.setDate(QDate(sdate1, sdate2, sdate3)) # self.dateEdit_ship.setDate(str(data[p][1])) self.lineEdit_customer.setText(str(data[p][2])) self.lineEdit_sales.setText(str(data[p][3])) self.label_production.setText(str(data[p][4])) self.label_model.setText(str(data[p][5])) self.lineEdit_macID.setText(str(data[p][6])) self.lineEdit_number.setText(str(data[p][7])) self.lineEdit_unitPrice.setText(str(data[p][8])) self.lineEdit_paid.setText(str(data[p][9])) self.plainTextEdit_payRecord.setPlainText(str(data[p][10])) ###下面是从数据库中读取日期(字符串),然后分割字符串,再转成可以setData的格式 paydate = data[p][11] pdate = paydate.split("-") pdate1 = int(pdate[0]) pdate2 = int(pdate[1]) pdate3 = int(pdate[2]) self.dateEdit_pay.setDate(QDate(pdate1, pdate2, pdate3)) # self.dateEdit_pay.setDate(str(data[p-1][11])) self.plainTextEdit_shipto.setPlainText(str(data[p][12])) self.plainTextEdit_remark.setPlainText(str(data[p][13])) elif l == 3: self.lineEdit_id.setText(str(data[p + 1][0])) #数据库是从0开始的,所以减1 ###下面是从数据库中读取日期(字符串),然后分割字符串,再转成可以setData的格式 shipdate = data[p + 1][1] sdate = shipdate.split("-") sdate1 = int(sdate[0]) sdate2 = int(sdate[1]) sdate3 = int(sdate[2]) self.dateEdit_ship.setDate(QDate(sdate1, sdate2, sdate3)) # self.dateEdit_ship.setDate(str(data[p][1])) self.lineEdit_customer.setText(str(data[p + 1][2])) self.lineEdit_sales.setText(str(data[p + 1][3])) self.label_production.setText(str(data[p + 1][4])) self.label_model.setText(str(data[p + 1][5])) self.lineEdit_macID.setText(str(data[p + 1][6])) self.lineEdit_number.setText(str(data[p + 1][7])) self.lineEdit_unitPrice.setText(str(data[p + 1][8])) self.lineEdit_paid.setText(str(data[p + 1][9])) self.plainTextEdit_payRecord.setPlainText(str(data[p + 1][10])) ###下面是从数据库中读取日期(字符串),然后分割字符串,再转成可以setData的格式 paydate = data[p + 1][11] pdate = paydate.split("-") pdate1 = int(pdate[0]) pdate2 = int(pdate[1]) pdate3 = int(pdate[2]) self.dateEdit_pay.setDate(QDate(pdate1, pdate2, pdate3)) # self.dateEdit_pay.setDate(str(data[p-1][11])) self.plainTextEdit_shipto.setPlainText(str(data[p + 1][12])) self.plainTextEdit_remark.setPlainText(str(data[p + 1][13])) elif l == 4: self.lineEdit_id.setText(str(data[p + 2][0])) #数据库是从0开始的,所以减1 ###下面是从数据库中读取日期(字符串),然后分割字符串,再转成可以setData的格式 shipdate = data[p + 2][1] sdate = shipdate.split("-") sdate1 = int(sdate[0]) sdate2 = int(sdate[1]) sdate3 = int(sdate[2]) self.dateEdit_ship.setDate(QDate(sdate1, sdate2, sdate3)) # self.dateEdit_ship.setDate(str(data[p][1])) self.lineEdit_customer.setText(str(data[p + 2][2])) self.lineEdit_sales.setText(str(data[p + 2][3])) self.label_production.setText(str(data[p + 2][4])) self.label_model.setText(str(data[p + 2][5])) self.lineEdit_macID.setText(str(data[p + 2][6])) self.lineEdit_number.setText(str(data[p + 2][7])) self.lineEdit_unitPrice.setText(str(data[p + 2][8])) self.lineEdit_paid.setText(str(data[p + 2][9])) self.plainTextEdit_payRecord.setPlainText(str(data[p + 2][10])) ###下面是从数据库中读取日期(字符串),然后分割字符串,再转成可以setData的格式 paydate = data[p + 2][11] pdate = paydate.split("-") pdate1 = int(pdate[0]) pdate2 = int(pdate[1]) pdate3 = int(pdate[2]) self.dateEdit_pay.setDate(QDate(pdate1, pdate2, pdate3)) # self.dateEdit_pay.setDate(str(data[p-1][11])) self.plainTextEdit_shipto.setPlainText(str(data[p + 2][12])) self.plainTextEdit_remark.setPlainText(str(data[p + 2][13])) elif l == 5: self.lineEdit_id.setText(str(data[p + 3][0])) #数据库是从0开始的,所以减1 ###下面是从数据库中读取日期(字符串),然后分割字符串,再转成可以setData的格式 shipdate = data[p + 3][1] sdate = shipdate.split("-") sdate1 = int(sdate[0]) sdate2 = int(sdate[1]) sdate3 = int(sdate[2]) self.dateEdit_ship.setDate(QDate(sdate1, sdate2, sdate3)) # self.dateEdit_ship.setDate(str(data[p][1])) self.lineEdit_customer.setText(str(data[p + 3][2])) self.lineEdit_sales.setText(str(data[p + 3][3])) self.label_production.setText(str(data[p + 3][4])) self.label_model.setText(str(data[p + 3][5])) self.lineEdit_macID.setText(str(data[p + 3][6])) self.lineEdit_number.setText(str(data[p + 3][7])) self.lineEdit_unitPrice.setText(str(data[p + 3][8])) self.lineEdit_paid.setText(str(data[p + 3][9])) self.plainTextEdit_payRecord.setPlainText(str(data[p + 3][10])) ###下面是从数据库中读取日期(字符串),然后分割字符串,再转成可以setData的格式 paydate = data[p + 3][11] pdate = paydate.split("-") pdate1 = int(pdate[0]) pdate2 = int(pdate[1]) pdate3 = int(pdate[2]) self.dateEdit_pay.setDate(QDate(pdate1, pdate2, pdate3)) # self.dateEdit_pay.setDate(str(data[p-1][11])) self.plainTextEdit_shipto.setPlainText(str(data[p + 3][12])) self.plainTextEdit_remark.setPlainText(str(data[p + 3][13])) else: print("customer_edit的lineDisplay")
from PyQt5.QtCore import QDateTime, QDate, QTime, Qt datetime = QDateTime.currentDateTime() print(datetime.toString()) print(datetime.toString(Qt.ISODate)) print(datetime.toString(Qt.DefaultLocaleLongDate)) date = QDate.currentDate() print(date.toString()) print(date.toString(Qt.ISODate)) print(date.toString(Qt.DefaultLocaleLongDate)) time = QTime.currentTime() print(time.toString())
def is_yesterday(self): if not self.date_time: return False return bool(self.date_time.date() == QDate.currentDate().addDays(-1))
def __init__(self): super().__init__() self.setWindowTitle("Add a transaction") self.resize(950, 450) # QLabels self.label_date = QLabel("Date of transaction :") self.label_currency = QLabel("Currency :") self.label_type = QLabel("Type of transaction :") self.label_amount = QLabel("Amount :") self.label_describe = QLabel("Describe :") # Date self.date = QDateEdit(QDate.currentDate()) self.date.setDisplayFormat("dd/MM/yyyy") # Currencies combobox self.currency = QComboBox() self.currency.addItem("BTC") self.currency.addItem("ETH") self.currency.addItem("LTC") self.currency.addItem("WXT") self.currency.addItem("XRP") self.currency.addItem("XLM") self.currency.addItem("WAVES") self.currency.addItem("WLO") self.currency.addItem("DAI") self.currency.addItem("NANO") self.currency.addItem("EUR") self.currency.addItem("USD") self.type_transaction = QComboBox() self.type_transaction.addItem("Credits") self.type_transaction.addItem("Debits") self.amount = QDoubleSpinBox() self.amount.setValue(0) self.amount.setDecimals(8) self.amount.setSingleStep(0.00000001) self.amount.setSuffix(" " + self.currency.currentText()) spacer_describe = QSpacerItem(1, 15) self.describe = QTextEdit() validate_button = QPushButton("Validate") cancel_button = QPushButton("Cancel") # Vertical layout for date vlayout_date = QVBoxLayout() vlayout_date.addWidget(self.label_date) vlayout_date.addWidget(self.date) # Vertical layout for currencies vlayout_currency = QVBoxLayout() vlayout_currency.addWidget(self.label_currency) vlayout_currency.addWidget(self.currency) # Vertical layout for type of transaction vlayout_type = QVBoxLayout() vlayout_type.addWidget(self.label_type) vlayout_type.addWidget(self.type_transaction) # Vertical layout for amount vlayout_amount = QVBoxLayout() vlayout_amount.addWidget(self.label_amount) vlayout_amount.addWidget(self.amount) # Horizontal layout for transaction form hlayout_transaction = QHBoxLayout() hlayout_transaction.addLayout(vlayout_date) hlayout_transaction.addLayout(vlayout_currency) hlayout_transaction.addLayout(vlayout_type) hlayout_transaction.addLayout(vlayout_amount) # Vertical layout for describe vlayout_describe = QVBoxLayout() vlayout_describe.addSpacerItem(spacer_describe) vlayout_describe.addWidget(self.label_describe) vlayout_describe.addWidget(self.describe) spacer_desc_buttons = QSpacerItem(1, 180) # Vertical layout for buttons vlayout_buttons = QVBoxLayout() vlayout_buttons.addWidget(validate_button) vlayout_buttons.addWidget(cancel_button) vlayout_buttons.addSpacerItem(spacer_desc_buttons) spacer_desc_buttons = QSpacerItem(30, 1) # Horizontal layout for describe & buttons hlayout_desc_buttons = QHBoxLayout() hlayout_desc_buttons.addLayout(vlayout_describe) hlayout_desc_buttons.addSpacerItem(spacer_desc_buttons) hlayout_desc_buttons.addLayout(vlayout_buttons) hlayout_desc_buttons.addSpacerItem(spacer_desc_buttons) # Vertical layout for transaction layout & describe & buttons vertical_layout = QVBoxLayout(self) vertical_layout.addLayout(hlayout_transaction) vertical_layout.addLayout(hlayout_desc_buttons) # Add signal event in clicked cancel button cancel_button.clicked.connect(self.on_clicked_cancel_button) # Add signal event in clicked validate button validate_button.clicked.connect(self.on_clicked_validate_button) # Add signal event in change currency ComboBox self.currency.currentTextChanged.connect( self.on_currenttextchanged_currency_combobox)
#!/usr/bin/python3 from PyQt5.QtCore import QDate, Qt years = (2010, 2011, 2012, 2013, 2014, 2015, 2016) for year in years: if QDate.isLeapYear(year): print("{0} is a leap year".format(year)) else: print("{0} is not a leap year".format(year))
# -*- coding: utf-8 -*- """ Created on Thu Mar 4 12:45:44 2021 @author: ChrisLe """ from PyQt5.QtCore import QDate, Qt borodino_battle = QDate(1812, 9, 7) slavkov_battle = QDate(1805, 12, 2) now = QDate.currentDate() j_today = now.toJulianDay() j_borodino = borodino_battle.toJulianDay() j_slavkov = slavkov_battle.toJulianDay() d1 = j_today - j_slavkov d2 = j_today - j_borodino print(f'Días desde la Batalla de Slavkov: {d1}') print(f'Días desde la Batalla de Borodino : {d2}')
def SetDatetimeInicio(self): now = QDate.currentDate() self.FechaR.setDate(now)
def showOperatorTab(self): Today = QDate.currentDate() self.operatorDateBefore.setDate(Today) self.operatorDateAfter.setDate(Today.addDays(-14))
def setupUi(self): self.ui.edtDate.setDate(QDate().currentDate())
def showDate(self): date = QDate().currentDate() self.textEdit.setText(date.toString(Qt.DefaultLocaleLongDate))
component.setData(QML, QUrl()) party = component.create() if party is not None and party.host is not None: print("\"%s\" is having a birthday!" % party.host.name) if isinstance(party.host, Boy): print("He is inviting:") else: print("She is inviting:") for guest in party.guests: attached = qmlAttachedPropertiesObject(BirthdayParty, guest, False) if attached is not None: rsvpDate = attached.property('rsvp') else: rsvpDate = QDate() if rsvpDate.isNull(): print(" \"%s\" RSVP date: Hasn't RSVP'd" % guest.name) else: print(" \"%s\" RSVP date: %s" % (guest.name, rsvpDate.toString())) party.startParty() else: for e in component.errors(): print("Error:", e.toString())
#!/usr/bin/python3 from PyQt5.QtCore import QDate, Qt dates = (QDate(2017, 5, 11), QDate(2017, 8, 1), QDate(2017, 2, 30)) for date in dates: if date.isValid(): print("{0} is a valid date".format(date.toString(Qt.ISODate))) else: print("{0} is not a valid date".format(date))