def __init__(self, parent=None): super(HttpsDownloader, self).__init__(parent) self._manager = QNetworkAccessManager(self) self._attributes = DownloaderAttributes( DownloaderAttributes.UrlType.Https, self) self._tmpFile = QFile(self) self._configFile = QFile(self) self._reply = None
def saveArtifactOrder(self,event,fileName=None): diag = QFileDialog(self,"Open Bookmark File", QtCore.QDir.currentPath()) if fileName is None: filename,filetype = QFileDialog.getSaveFileName(self,"Open Bookmark File",os.path.join(QtCore.QDir.currentPath(),self.XML_Read.getValue(['Paths','ArtifactOrderSettingsDefault'])), "XML Files (*.xml)") else: filename = fileName fh = QFile(filename) if not fh.open(QIODevice.WriteOnly): print('IOERROR') self.currentXMLfilepath = filename stream = QXmlStreamWriter(fh) stream.setAutoFormatting(True) stream.writeStartDocument() stream.writeStartElement("Data") stream.writeStartElement("Order") for i in range(self.verticalLayout.count()): print(self.verticalLayout.itemAt(i).widget().text()) stream.writeTextElement(self.verticalLayout.itemAt(i).widget().xml_text, "") #stream.writeAttribute("href", "http://qt-project.org/") stream.writeEndElement() stream.writeStartElement('PauseInBetweenTrials') stream.writeTextElement('Minute',str(self.timeEditInBetweenTrials.time().minute())) stream.writeTextElement('Second',str(self.timeEditInBetweenTrials.time().second())) stream.writeEndElement() stream.writeTextElement('AmountOfTrials',str(self.sbAmountTrials.value())) stream.writeEndElement() stream.writeEndDocument()
def loadIcon(self, icon): file = QFile(f'icons:{icon}') file.open(QFile.ReadOnly) self._svgdoc.setContent(file.readAll()) self._svgdoc.documentElement().setAttribute('fill', self._color) file.close() self._icon_widget.load(self._svgdoc.toByteArray())
def read_qt_resource(path, encoding=None): """Reads a resource from the file system or a packaged Qt resource file. Returns either binary or text data, depending on whether encoding is None. path -- Path to the resource. Should start with ":" if referencing a resource inside a packaged Qt resource file. encoding -- Text encoding to use for decoding the data, or None to return binary data. """ qfile = QFile(path) try: # Open the QFile. if not qfile.open(QFile.ReadOnly): raise IOError( QCoreApplication.translate('QtUtil', "Failed to open '{}'").format(path)) # Read the data. # TODO: Handle reading in a way that can report errors. data = bytes(qfile.readAll()) if encoding is None: return data else: return data.decode(encoding) # Close the QFile. finally: if qfile.isOpen(): qfile.close()
def saveSettings(self,event,filename=None): if not filename: filename,filetype = QFileDialog.getSaveFileName(self,"Open Bookmark File", os.path.join(QtCore.QDir.currentPath(),self.XML_Read.getValue(['Paths','TrialSettingsDefault'])), "XML Files (*.xml)") fh = QFile(filename) if not fh.open(QIODevice.WriteOnly): print('IOERROR') self.currentXMLfilepath = filename stream = QXmlStreamWriter(fh) stream.setAutoFormatting(True) stream.writeStartDocument() stream.writeStartElement("Data") stream.writeStartElement("TrialSettings") stream.writeStartElement('GeneralSettings') stream.writeTextElement(self.sbTrialDuration.objectName(),str(self.sbTrialDuration.value())) stream.writeTextElement(self.sbStimulusDuration.objectName(),str(self.sbStimulusDuration.value())) stream.writeTextElement(self.sbPause.objectName(),str(self.sbPause.value())) stream.writeTextElement(self.cbRandomizeStimuli.objectName(),str(self.cbRandomizeStimuli.checkState())) stream.writeEndElement() stream.writeStartElement('Artifacts') stream.writeAttribute('Checked',str(self.rbArtifacts.isChecked())) stream.writeEndElement() stream.writeStartElement('ERP') stream.writeAttribute('Checked',str(self.rbERP.isChecked())) stream.writeTextElement(self.cbProbability.objectName(),str(self.cbProbability.currentText())) stream.writeEndElement() stream.writeEndElement() stream.writeEndElement() stream.writeEndDocument()
def __init__(self, parent=None): super().__init__(parent) self._key = '' self._value = '' self._path = '' self._file = QFile() self._stream = QTextStream() self._lines = []
def deleteFile(self, path, name): file = QFile(path + name + ".tmp") print(file.fileName()) if file.exists(): print(file.remove()) file.setFileName(path + name + ".tmp.cfg") if file.exists(): print(file.remove())
def set_page(self): if self.force_compile or not exists(realpath('./data/compiled/index.html')) or \ getmtime(realpath('./interface/index.html')) > getmtime(realpath('./data/compiled/index.html')): self._compile_template('index.html', './data/compiled/index.html') qFile_page = QFile(realpath('./data/compiled/index.html')) self.web_view.load( QUrl.fromLocalFile(QFileInfo(qFile_page).absoluteFilePath())) self.web_page.selectionChanged.emit()
def append_metadata_req_parts(self): metadata = self.db.get_proxy_metadata(self.book_id) language = next(iter(metadata.languages), None) summary = metadata.comments isbn = metadata.isbn issued_on = metadata.pubdate.date().isoformat() if issued_on == '0101-01-01': issued_on = None self.req_body.append( self.build_req_part('metadata[calibre_metadata_digest]', self.metadata_digest)) self.req_body.append( self.build_req_part('metadata[title]', metadata.title)) if summary: self.req_body.append( self.build_req_part('metadata[summary]', summary)) if language: self.req_body.append( self.build_req_part('metadata[language]', language)) if isbn: self.req_body.append(self.build_req_part('metadata[isbn]', isbn)) if issued_on: self.req_body.append( self.build_req_part('metadata[issued_on]', issued_on)) for series_item in self.get_series(metadata): self.req_body.append( self.build_req_part('metadata[series][][title]', series_item['title'])) if series_item['index'] is not None: self.req_body.append( self.build_req_part('metadata[series][][index]', str(series_item['index']))) for author in metadata.authors: self.req_body.append( self.build_req_part('metadata[author_list][]', author)) for tag in metadata.tags: self.req_body.append( self.build_req_part('metadata[tag_list][]', tag)) bookshelves = self.get_bookshelves(metadata) if bookshelves is not None: self.req_body.append( self.build_req_part('metadata[bookshelves][]', '')) for bookshelf in bookshelves: self.req_body.append( self.build_req_part('metadata[bookshelves][]', bookshelf)) cover_path = self.db.cover(self.book_id, as_path=True) if cover_path: self.cover = QFile(cover_path) self.cover.open(QIODevice.ReadOnly) self.req_body.append( self.build_req_part('metadata[cover]', self.cover)) else: self.cover = None
def readAllFileByteContents(self, filename): ''' @note: filename maybe resource file like ':/data/bookmarks.json', so must use QFile to read @param: filename QString @return: QByteArray ''' file_ = QFile(filename) if filename and file_.open(QFile.ReadOnly): a = file_.readAll() file_.close() return a.data() return b''
def setThemeFromGtk(): f = QFile(QDir.homePath() + "/.gtkrc-2.0") if not f.open(QIODevice.ReadOnly | QIODevice.Text): return while not f.atEnd(): l = f.readLine().trimmed() if l.startsWith("gtk-icon-theme-name="): s = l.split('=')[-1] syslog.syslog(syslog.LOG_DEBUG, "DEBUG setting gtk theme %s" % str(s)) QIcon.setThemeName(s.remove('"')) break
def _parseTheme(self, path, name): ''' @param: path QString @param: name QString @return self._Theme ''' info = self._Theme() info.isValid = False if not QFile(path + 'main.css').exists() or not QFile( path + 'metadata.desktop').exists(): info.isValid = False return info metadata = DesktopFile('metadata.desktop') info.name = metadata.name() info.description = metadata.comment() info.author = metadata.value('X-App-Author') # QString iconName = metadata.icon() if iconName: if QFileInfo.exists(path + iconName): info.icon = QIcon(path + iconName) else: info.icon = QIcon.fromTheme(iconName) licensePath = metadata.value('X-App-License') if licensePath and QFileInfo.exists(path + licensePath): info.license = gVar.appTools.readAllFileContents(path + licensePath) if not info.name or name in self._themeHash: return info info.isValid = True self._themeHash[name] = info return info
def upload(self): self.file = QFile(self.file_path) self.file.open(QIODevice.ReadOnly) self.req = QNetworkRequest(QUrl(self.upload_url)) self.req_body = QHttpMultiPart(QHttpMultiPart.FormDataType) for key, value in self.upload_params.items(): self.log_info('{}={}'.format(key, value)) self.req_body.append(self.build_req_part(key, value)) self.req_body.append(self.build_req_part('file', self.file)) self.reply = self.network.post(self.req, self.req_body) self.reply.finished.connect(self.complete_upload) self.reply.uploadProgress.connect(self.upload_progress)
def showNotification(self, icon, heading, text): ''' @param: icon QPixmap @param: heading QString @param: text QString ''' if not self._enabled: return if self._notifType == self.PopupWidget: if not self._desktopNotif: self._desktopNotif = DesktopNotification() def func(): self._desktopNotif = None self._desktopNotif.closedSignal.connect(func) self._desktopNotif.setPixmap(icon) self._desktopNotif.setHeading(heading) self._desktopNotif.setText(text) self._desktopNotif.setTimeout(self._timeout) self._desktopNotif.move(self._position) self._desktopNotif.show() elif self._notifType == self.DesktopNative: if const.OS_UNIX and not const.DISABLE_DBUS: tmp = QFile(DataPaths.path(DataPaths.Temp) + '/app_notif.png') tmp.open(QFile.WriteOnly) icon.save(tmp.fileName()) from PyQt5.Qt import QDBusInterface, QDBusConnection dbus = QDBusInterface('org.freedesktop.Notifications', '/org/freedesktop/Notifications', 'org.freedesktop.Notifications', QDBusConnection.sessionBus()) args = [] args.append('app') args.append(self._uint) args.append(tmp.fileName()) args.append(heading) args.append(text) args.append([]) args.append({}) args.append(self._timeout) dbus.callWithCallback('Notify', args, self._updateLastId, self._error)
def lrelease(self, tsInputFile, qmOutputFile, stripped=True): verbose = False metTranslations = False tor = metaTranslator() f = QFile(tsInputFile) if not f.open(QtCore.QIODevice.ReadOnly): print("lrelease error: Cannot open file '%s'" % tsInputFile) return t = QTextStream(f) fullText = t.readAll() f.close() if fullText.find("<!DOCTYPE TS>") >= 0: if qmOutputFile is None: self.releaseTsFile(tsInputFile, verbose, stripped) else: self.loadTsFile(tor, tsInputFile, verbose) else: # modId = self.db_.managerModules().idModuleOfFile(tsInputFile) key = self.db_.managerModules().shaOfFile(tsInputFile) # dir = filedir("../tempdata/cache/%s/%s/file.ts/%s" % # (self._prj.conn.db_name, modId, key)) tagMap = fullText # TODO: hay que cargar todo el contenido del fichero en un diccionario for key, value in tagMap: toks = value.split(" ") for t in toks: if key == "TRANSLATIONS": metTranslations = True self.releaseTsFile(t, verbose, stripped) if not metTranslations: print( "lrelease warning: Met no 'TRANSLATIONS' entry in project file '%s'" % tsInputFile) if qmOutputFile: self.releaseMetaTranslator(tor, qmOutputFile, verbose, stripped)
def onSaveFile(self): '''Save in a file the text description of the graph.''' # Export dialog result = QFileDialog.getSaveFileName(None, "Export", None, MainWindowController.dotFilter) # Check if Save button has been pressed if len(result[0]) > 0: filePath = result[0] # Create file dotFile = QFile(filePath) if (not dotFile.open(QIODevice.WriteOnly | QIODevice.Text)): QMessageBox.warning(None, "Export", "Export failed.") else: # Write the text from the TextGraphView into the file dotFile.write( QByteArray(self.textGraphController.view.getText().encode( "utf_8"))) dotFile.close()
def load_text(self): print("load--csv") dlg = QFileDialog() dlg.setFileMode(QFileDialog.AnyFile) dlg.setFilter(QDir.Files) if dlg.exec_(): self.filenames = dlg.selectedFiles() print(self.filenames) fileDevice = QFile(self.filenames[0]) if not fileDevice.open(QIODevice.ReadOnly | QIODevice.Text): return False #f = open(filenames[0], 'r') data = [] #try: #print(fileDevice.atEnd()) while not fileDevice.atEnd(): #print("a") qtBytes = fileDevice.readLine() pyBytes = bytes(qtBytes.data()) # QByteArray转换为bytes类型 lineStr = pyBytes.decode("UTF-8-sig") # bytes转换为str型 lineStr = lineStr.strip() # 去除结尾增加的空行 data.append(lineStr.split(",")) # 返回QByteArray类型 #print(qtBytes) self.data = data print(data[0]) fileDevice.close() localtime = time.localtime(time.time()) time_s =time.strftime("%Y-%m-%d %H:%M:%S",localtime) s_r = "时间:{}读取文件:{}\n".format(time_s,self.filenames) self.logW(s_r) #finally: # print("b") #self.textEdit2.setText(data) self.textEdit.setText("读取成功")
def update(self): if not prefs['update_metadata'] and not self.reupload: self.skipped.emit(self.book_id) self.readyForNext.emit(self.index) return identifiers = self.db.get_proxy_metadata(self.book_id).identifiers if not identifiers.get('bookfusion') and not self.reupload: self.skipped.emit(self.book_id) self.readyForNext.emit(self.index) return self.req = api.build_request('/uploads/' + identifiers['bookfusion']) self.req_body = QHttpMultiPart(QHttpMultiPart.FormDataType) if self.reupload: self.file = QFile(self.file_path) self.file.open(QIODevice.ReadOnly) self.req_body.append(self.build_req_part('file', self.file)) self.append_metadata_req_parts() self.reply = self.network.put(self.req, self.req_body) self.reply.finished.connect(self.complete_update)
def createFromFile(cls, fpath): ''' @param: fpath QString @return: data RestoreData ''' data = RestoreData() if not QFile.exists(fpath): return data recoveryFile = QFile(fpath) if not recoveryFile.open(QIODevice.ReadOnly): return data stream = QDataStream(recoveryFile) version = stream.readInt() if version == const.sessionVersion: byteData = stream.readBytes() data = pickle.loads(byteData) else: print('WARNING: Unsupported session file version', version, 'path', fpath) return data
from PyQt5.QtCore import Qt, QDateTime, QDate # example qtcharts/examples/datetimeaxis tranlated in python if __name__ == '__main__': import sys app = QApplication(sys.argv) # [1] series = QLineSeries() # [1] # [2] # data from http://www.swpc.noaa.gov/ftpdir/weekly/RecentIndices.txt # http://www.swpc.noaa.gov/ftpdir/weekly/README # http://www.weather.gov/disclaimer sunSpots = QFile("sun_spots.txt") if not sunSpots.open(QIODevice.ReadOnly | QIODevice.Text): sys.exit(1) stream = QTextStream(sunSpots) while not stream.atEnd(): line = stream.readLine() if line.startswith("#") or line.startswith(":") or line is None: continue values = line.split() day = QDate(int(values[0]), int(values[1]), 15)
dupFreeBib.entries.append(entriesDict[key]) with open(saveLocation, 'w') as bibfile: bibfile.write(writer.write(dupFreeBib)) if __name__ == '__main__': # loading the plugins plugins = plugm.availableExtensions() # launch the pyQt window app = QApplication(sys.argv) ui_file = QFile(path+"\mainWindow.ui") ui_file.open(QFile.ReadOnly) window = uic.loadUi(ui_file) guiManager = USETEMGuiManager(window,plugins) guiManager.setupPlugins() window.runButton.clicked.connect(guiManager.runWorkflow) window.setWindowTitle('USETEM Workflow') window.show()
from candlestickdatareader import CandlestickDataReader # example qtcharts/examples/candlestickchart tranlated in python if __name__ == '__main__': import sys app = QApplication(sys.argv) # [1] acmeSeries = QCandlestickSeries() acmeSeries.setName("Acme Ltd") acmeSeries.setIncreasingColor(QColor("light green")) acmeSeries.setDecreasingColor(QColor("red")) # [1] # [2] load the data acmeData = QFile("acme_data.txt") if not acmeData.open(QIODevice.ReadOnly | QIODevice.Text): sys.exit(1) categories = [] dataReader = CandlestickDataReader(acmeData) while not dataReader.atEnd(): line = dataReader.read_candlestick_set() if line is not None: acmeSeries.append(line) categories.append( QDateTime.fromMSecsSinceEpoch(line.timestamp()).toString("dd")) # [2]
for key in entriesDict: dupFreeBib.entries.append(entriesDict[key]) with open(saveLocation, 'w') as bibfile: bibfile.write(writer.write(dupFreeBib)) if __name__ == '__main__': # loading the plugins plugins = plugm.availableExtensions() # launch the pyQt window app = QApplication(sys.argv) ui_path = path / 'mainWindow.ui' ui_file = QFile(str(ui_path)) ui_file.open(QFile.ReadOnly) window = uic.loadUi(ui_file) guiManager = USETEMGuiManager(window, plugins) guiManager.setupPlugins() window.runButton.clicked.connect(guiManager.runWorkflow) window.setWindowTitle('USETEM Workflow') window.show() sys.exit(app.exec_())
# -*- coding: utf-8 -*- import sys, os if hasattr(sys, 'frozen'): os.environ['PATH'] = sys._MEIPASS + ";" + os.environ['PATH'] from PyQt5.Qt import QApplication, QFile, QTextStream from scripts.MainWindow import MainWindow from scripts import Utils if __name__ == '__main__': app = QApplication(sys.argv) mainWin = MainWindow() theme = Utils.get_local_config()['THEME'] file = QFile(theme + '.qss') file.open(QFile.ReadOnly | QFile.Text) stream = QTextStream(file) mainWin.setStyleSheet(stream.readAll()) mainWin.show() sys.exit(app.exec_())