Пример #1
0
    def on_btnAdd_clicked(self):
        ##      curPath=os.getcwd()     #获取系统当前目录
        ##      curPath=QDir.homePath()
        curPath = QDir.currentPath()
        dlgTitle = "选择音频文件"
        filt = "音频文件(*.mp3 *.wav *.wma);;所有文件(*.*)"
        fileList, flt = QFileDialog.getOpenFileNames(self, dlgTitle, curPath,
                                                     filt)
        count = len(fileList)
        if count < 1:
            return

        filename = fileList[0]
        fileInfo = QFileInfo(filename)  #文件信息
        QDir.setCurrent(fileInfo.absolutePath())  #重设当前路径

        for i in range(count):
            filename = fileList[i]
            fileInfo.setFile(filename)
            song = QMediaContent(QUrl.fromLocalFile(filename))
            self.playlist.addMedia(song)  #添加播放媒体
            ##         basename=os.path.basename(filename)    #文件名和后缀
            basename = fileInfo.baseName()
            self.ui.listWidget.addItem(basename)  #添加到界面文件列表

        if (self.player.state() != QMediaPlayer.PlayingState):
            self.playlist.setCurrentIndex(0)
            self.player.play()
Пример #2
0
 def slot_input(self):
     dir_tmp, _ = QFileDialog.getOpenFileName(
         self, "Open image", '../../data/',
         self.tr("Images(*.png *.jpg *.tif)"))
     self.lineEdit_input.setText(dir_tmp)
     tp = QFileInfo(dir_tmp).path()
     QDir.setCurrent(tp)
Пример #3
0
 def slot_select_gt_file(self):
     str, _ = QFileDialog.getOpenFileName(self, "Select ground-truth file",
                                          '../../data/',
                                          self.tr("mask(*.png *.tif)"))
     self.lineEdit_gt.setText(str)
     dir = QFileInfo(str).path()
     QDir.setCurrent(dir)
Пример #4
0
 def slot_select_building_mask(self):
     str, _ = QFileDialog.getOpenFileName(self, "Select building mask",
                                          '../../data/',
                                          self.tr("masks(*.png *jpg)"))
     self.lineEdit_building_mask.setText(str)
     tp_dir = QFileInfo(str).path()
     QDir.setCurrent(tp_dir)
Пример #5
0
    def slot_ok(self):
        self.setWindowModality(Qt.ApplicationModal)
        imgStretch_dict['input_dir'] = self.lineEdit_input.text()
        imgStretch_dict['output_dir'] = self.lineEdit_output.text()
        # nodata = self.spinBox_nodata.value()
        imgStretch_dict['NoData'] = self.spinBox_nodata.value()
        imgStretch_dict['OutBits'] = self.comboBox_outbits.currentText()
        imgStretch_dict['StretchRange']=self.spinBox_range.value()
        imgStretch_dict['CutValue']=self.spinBox_cutvalue.value()

        # ss = QCoreApplication.applicationDirPath()
        QDir.setCurrent(QCoreApplication.applicationDirPath()) # change current dir to "venv/bin/"
        ''' save parameters into xml '''

        ret =0
        ret = image_normalize(imgStretch_dict)
        if ret !=0:
            print("Error: failed to normalize images")
        else:
            QMessageBox.information(self, 'Prompt', self.tr("Images stretched !"))
        self.setWindowModality(Qt.NonModal)

        # xmlfile = '../../metadata/image_stretch_inputs.xml'
        # generate_xml_from_dict(imgStretch_dict, xmlfile)
        #
        # QMessageBox.information(self, 'Prompt', self.tr("Have saved the xml file !"))
        # # one_stretch = ImageStretch(imgStretch_dict)
        # # one_stretch.stretch_all_image_from_dict()
        # one_stretch = ImageStretch(inputXml=xmlfile)
        # one_stretch.stretch_all_image_from_xml()
        # QMessageBox.information(self, 'Prompt', self.tr("Images stretched !"))
        self.setWindowModality(Qt.NonModal)
Пример #6
0
 def slot_select_mask_file(self):
     str, _ = QFileDialog.getOpenFileName(self, "Select mask file",
                                          '../../data/',
                                          self.tr("mask(*.png *.tif)"))
     self.lineEdit_mask.setText(str)
     tp_dir = QFileInfo(str).path()
     QDir.setCurrent(tp_dir)
Пример #7
0
    def accept(self):
        """ do this for selected layers
        QgsProject.instance().readLayer(layers.item(3))
        """
        here = QDir.currentPath()
        QDir.setCurrent(
            str(QFileInfo(self.filePath).absoluteDir().canonicalPath()))

        for row in range(self.tableWidget.rowCount()):
            if self.tableWidget.item(row, 0).checkState():
                # index = self.tableWidget.item(row,0).data(QtCore.Qt.UserRole).toInt()[0]
                layerId = self.tableWidget.item(row, 0).data(Qt.UserRole)

                # noeud xml
                layerNode = self.getLayerNode(layerId)

                if layerNode:
                    # recherche id
                    idNode = layerNode.namedItem("id")
                    if idNode is not None:
                        newLayerId = QUuid.createUuid().toString()
                        idNode.firstChild().toText().setData(newLayerId)

                    QgsProject.instance().readLayer(layerNode)

        QDir.setCurrent(here)
        super(LayerDialog, self).accept()
Пример #8
0
   def on_actOpen_triggered(self):
      curPath=QDir.currentPath()    #获取当前路径
      filename,flt=QFileDialog.getOpenFileName(self,"打开一个文件",curPath,
                  "地震数据文件(*.txt);;所有文件(*.*)")
      if (filename==""):
         return

      aFile=open(filename,'r')
      allLines=aFile.readlines()  #读取所有行,list类型,每行末尾带有 \n
      aFile.close()
      fileInfo=QFileInfo(filename)
      QDir.setCurrent(fileInfo.absolutePath())
      self.__labFileName.setText("数据文件:"+fileInfo.fileName())
      
      rowCnt=len(allLines)    #行数,即数据点数
      self.__vectData=[0]*rowCnt   #列表
      for i in range(rowCnt):      
         lineText=allLines[i].strip()  #字符串表示的数字
         self.__vectData[i]=float(lineText)
      minV=min(self.__vectData)  #最小值
      self.ui.spinY_Min.setValue(minV)
      maxV=max(self.__vectData)  #最大值
      self.ui.spinY_Max.setValue(maxV)
      
      if self.ui.radioFill_None.isChecked():
         self.do_redrawWave()    #绘制波形曲线
      else:
         self.do_redrawFill()    #绘制有填充的波形
      self.ui.frameSetup.setEnabled(True)
 def slot_get_saving_binary_mask_path(self):
     str, _ = QFileDialog.getSaveFileName(self, "Save file to ...",
                                          '../../data/',
                                          self.tr("mask(*.png)"))
     self.lineEdit_binary_mask.setText(str)
     tp_dir = QFileInfo(str).path()
     QDir.setCurrent(tp_dir)
 def slot_model(self):
     dir_tmp, _ = QFileDialog.getOpenFileName(self, "Select model",
                                              '../../data/',
                                              self.tr("Model(*.h5)"))
     self.lineEdit_model.setText(dir_tmp)
     tp = QFileInfo(dir_tmp).path()
     QDir.setCurrent(tp)
 def slot_config(self):
     dir_tmp, _ = QFileDialog.getOpenFileName(self, "Select config",
                                              '../../data/',
                                              self.tr("Json(*.json)"))
     self.lineEdit_config.setText(dir_tmp)
     tp = QFileInfo(dir_tmp).path()
     QDir.setCurrent(tp)
Пример #12
0
 def slot_output(self):
     # dir_tmp = QFileDialog.getOpenFileName(self, "Open image", '../../data/')
     dir_tmp, _ = QFileDialog.getSaveFileName(
         self, "Open image", '../../data/',
         self.tr("Images(*.png *.jpg *.tif)"))
     self.lineEdit_output.setText(dir_tmp)
     QDir.setCurrent(dir_tmp)
Пример #13
0
    def __init__(self):
        super(MainWindow, self).__init__()
        self.asset_type = get_asset_type()
        self.settings = settings
        self.working_dir = working_dir

        self.title = None
        self.treeWidget = None
        self.cbox_filter = None
        self.widget_close = None
        #self.view_mode = None
        self.context = None
        self.thumbnailList = None

        #self.folders = folder

        QDir.setCurrent(working_dir)

        self.setWindowTitle('Lib Manager')
        self.resize(840, 480)

        self.color_background = '#404040'
        self.color_text_field = '#A7A7A7'
        self.color_button = '#979797'
        self.color_panel_bright = '#727272'
        self.color_panel_dark = '#525252'
        self.color_border = '#2E2E2E'

        self.setUI()
Пример #14
0
    def on_btnDir_setCurPath_clicked(self):
        self.__showBtnInfo(self.sender())

        curDir = QDir.currentPath()
        text = QFileDialog.getExistingDirectory(self, "选择一个目录", curDir,
                                                QFileDialog.ShowDirsOnly)
        QDir.setCurrent(text)
        self.ui.textEdit.appendPlainText("选择了一个目录作为当前目录:\n" + text + "\n")
Пример #15
0
 def slot_get_saving_binary_mask_path(self):
     # str, _ = QFileDialog.getSaveFileName(self, "Save file to ...", '../../data/', self.tr("mask(*.png)"))
     # self.lineEdit_binary_mask.setText(str)
     # tp_dir = QFileInfo(str).path()
     # QDir.setCurrent(tp_dir)
     dir_tmp = QFileDialog.getExistingDirectory(
         self, "select a existing directory", '../../data/')
     self.lineEdit_binary_mask.setText(dir_tmp)
     QDir.setCurrent(dir_tmp)
Пример #16
0
 def slot_get_grayscale_mask(self):
     # str, _ = QFileDialog.getOpenFileName(self, "Select grayscale mask", '../../data/', self.tr("masks(*.png *jpg)"))
     # self.lineEdit_grayscale_mask.setText(str)
     # tp_dir = QFileInfo(str).path()
     # QDir.setCurrent(tp_dir)
     dir_tmp = QFileDialog.getExistingDirectory(
         self, "select a existing directory", '../../data/')
     self.lineEdit_grayscale_mask.setText(dir_tmp)
     QDir.setCurrent(dir_tmp)
Пример #17
0
	def setCurrentFile(self):
		self.setWindowTitle("")
		self.tabWidget.setTabText(self.ind, self.getDocumentTitle(baseName=True))
		self.setWindowFilePath(self.fileNames[self.ind])
		files = readListFromSettings("recentFileList")
		while self.fileNames[self.ind] in files:
			files.remove(self.fileNames[self.ind])
		files.insert(0, self.fileNames[self.ind])
		if len(files) > 10:
			del files[10:]
		writeListToSettings("recentFileList", files)
		QDir.setCurrent(QFileInfo(self.fileNames[self.ind]).dir().path())
		self.docTypeChanged()
Пример #18
0
	def setCurrentFile(self):
		self.setWindowTitle("")
		self.tabWidget.setTabText(self.ind, self.currentTab.getDocumentTitle(baseName=True))
		self.setWindowFilePath(self.currentTab.fileName)
		files = readListFromSettings("recentFileList")
		while self.currentTab.fileName in files:
			files.remove(self.currentTab.fileName)
		files.insert(0, self.currentTab.fileName)
		if len(files) > 10:
			del files[10:]
		writeListToSettings("recentFileList", files)
		QDir.setCurrent(QFileInfo(self.currentTab.fileName).dir().path())
		self.docTypeChanged()
Пример #19
0
def saveSettings(settings):
    logger.debug('Saving settings')
    currentDir = QDir()
    logger.debug(currentDir.absolutePath())
    settingsFile = getSettingsFile()
    if not settingsFile.open(QIODevice.WriteOnly | QIODevice.Text
                             | QIODevice.Truncate):
        logger.debug('Settings file could not be opened for writing')
    else:
        stream = QTextStream(settingsFile)
        stream << settings
        settingsFile.flush()
        settingsFile.close()
    currentDir.setCurrent(currentDir.absolutePath())
    logger.debug('Changing cwd to runtime')
Пример #20
0
   def on_actOpen_triggered(self):     
      curPath=QDir.currentPath()    #获取当前路径
      filename,flt=QFileDialog.getOpenFileName(self,"打开一个文件",curPath,
                  "频率响应数据文件(*.txt);;所有文件(*.*)")
      if (filename==""):
         return

      aFile=open(filename,'r')
      allLines=aFile.readlines()  #读取所有行,list类型,每行末尾带有 \n
      aFile.close()
      fileInfo=QFileInfo(filename)
      QDir.setCurrent(fileInfo.absolutePath())
      
      self.__loadData(allLines)   #解析数据
      self.__drawBode()    #绘制幅频曲线和相频曲线
      self.ui.frameSetup.setEnabled(True)
Пример #21
0
 def slot_select_input_files(self):
     filelist, s = QFileDialog.getOpenFileNames(
         self, "Select files", '../../data/', self.tr("masks(*.png *jpg)"))
     filenum = len(filelist)
     str = self.lineEdit_inputs.text()
     if str != '':
         str += ';'
     for index, file in enumerate(filelist):
         if index == filenum - 1:
             str += file
         else:
             str += file
             str += ';'
     self.lineEdit_inputs.setText(str)
     tp_dir = QFileInfo(filelist[0]).path()
     QDir.setCurrent(tp_dir)
Пример #22
0
def loadSettings():
    logger.debug('Loading settings')
    currentDir = QDir()
    logger.debug(currentDir.absolutePath())
    settingsFile = getSettingsFile()
    settings = None
    if not settingsFile.open(QIODevice.ReadOnly | QIODevice.Text
                             | QIODevice.ExistingOnly):
        logger.debug('Settings file could not be opened for reading')
    else:
        stream = QTextStream(settingsFile)
        settings = stream.readAll()
        settingsFile.close()
    currentDir.setCurrent(currentDir.absolutePath())
    logger.debug('Changing cwd to runtime')
    return settings
Пример #23
0
    def slot_ok(self):
        self.setWindowModality(Qt.ApplicationModal)
        QDir.setCurrent(QCoreApplication.applicationDirPath())  # change current dir to "venv/bin/"
        min =self.spinBox_min.value()
        max=self.spinBox_max.value()
        assert (min<=max)
        valid_labels=list(range(min,max+1))
        input_path = self.lineEdit_input.text()
        if not os.path.isdir(input_path):
            QMessageBox.warning(self, "Warning", self.tr("input path is not exist!"))
            sys.exit(-1)

        instance = DataCheck_and_modify(valid_labels)
        instance.select_invalid_values(input_path)

        QMessageBox.information(self, 'Prompt', self.tr("Check completely !"))
        self.setWindowModality(Qt.NonModal)
Пример #24
0
    def uploadFile(self):
        global fileName, path
        fileName, _ = QFileDialog.getOpenFileName(
            None, "QFileDialog.getOpenFileName()", "", "All Files (*);;Python Files (*.py)", QDir.homePath())
        self.lineEdit.setText(fileName)
        if fileName != '':
            self.myVideo.mediaPlayer.setMedia(
                QMediaContent(QUrl.fromLocalFile(fileName)))
            self.myVideo.playButton.setEnabled(True)

        # create project folder
        dic = QDir()
        path = QDir(fileName).dirName()
        path = path.replace(".", "-")
        # path = './output/'
        dic.mkdir(path)
        dic.setCurrent(path)
Пример #25
0
    def on_actOpen_triggered(self):
        curPath = QDir.currentPath()
        filename, flt = QFileDialog.getOpenFileName(
            self, "打开一个文件", curPath, "股票数据文件(*.txt);;所有文件(*.*)")
        if (filename == ""):
            return

        aFile = open(filename, 'r')
        allLines = aFile.readlines()  #读取所有行,list类型,每行末尾带有 \n
        aFile.close()
        fileInfo = QFileInfo(filename)
        QDir.setCurrent(fileInfo.absolutePath())
        self.ui.tabWidget.setTabText(0, fileInfo.baseName())

        self.__loadData(allLines)  # 载入数据到数据模型
        self.__drawChart()  # 绘制图表
        self.ui.tab_Setup.setEnabled(True)
Пример #26
0
	def tabFileNameChanged(self, tab):
		'''
		Perform all UI state changes that need to be done when the
		filename of the current tab has changed.
		'''
		if tab == self.currentTab:
			if tab.fileName:
				self.setWindowTitle("")
				self.setWindowFilePath(tab.fileName)
				self.tabWidget.setTabText(self.ind, tab.getBaseName())
				self.tabWidget.setTabToolTip(self.ind, tab.fileName)
				QDir.setCurrent(QFileInfo(tab.fileName).dir().path())
			else:
				self.setWindowTitle(self.tr('New document') + '[*]')

			canReload = bool(tab.fileName) and not self.autoSaveActive(tab)
			self.actionSetEncoding.setEnabled(canReload)
			self.actionReload.setEnabled(canReload)
Пример #27
0
 def __add_layer_definition_file(self, file_name, root_group):
     """
     shamelessly copied from
     https://github.com/qgis/QGIS/blob/master/src/core/qgslayerdefinition.cpp
     """
     qfile = QFile(file_name)
     if not qfile.open(QIODevice.ReadOnly):
         return None
     doc = QDomDocument()
     if not doc.setContent(qfile):
         return None
     file_info = QFileInfo(qfile)
     QDir.setCurrent(file_info.absoluteDir().path())
     root = QgsLayerTreeGroup()
     ids = doc.elementsByTagName('id')
     for i in range(0, ids.size()):
         id_node = ids.at(i)
         id_elem = id_node.toElement()
         old_id = id_elem.text()
         layer_name = old_id[:-17]
         date_time = QDateTime.currentDateTime()
         new_id = layer_name + date_time.toString('yyyyMMddhhmmsszzz')
         id_elem.firstChild().setNodeValue(new_id)
         tree_layer_nodes = doc.elementsByTagName('layer-tree-layer')
         for j in range(0, tree_layer_nodes.count()):
             layer_node = tree_layer_nodes.at(j)
             layer_elem = layer_node.toElement()
             if old_id == layer_elem.attribute('id'):
                 layer_node.toElement().setAttribute('id', new_id)
     layer_tree_elem = doc.documentElement().firstChildElement(
         'layer-tree-group')
     load_in_legend = True
     if not layer_tree_elem.isNull():
         root.readChildrenFromXML(layer_tree_elem)
         load_in_legend = False
     layers = QgsMapLayer.fromLayerDefinition(doc)
     QgsProject.instance().addMapLayers(layers, load_in_legend)
     nodes = root.children()
     for node in nodes:
         root.takeChild(node)
     del root
     root_group.insertChildNodes(-1, nodes)
     return None
Пример #28
0
	def tabFileNameChanged(self, tab):
		'''
		Perform all UI state changes that need to be done when the
		filename of the current tab has changed.
		'''
		if tab == self.currentTab:
			if tab.fileName:
				self.setWindowTitle("")
				self.setWindowFilePath(tab.fileName)
				self.tabWidget.setTabText(self.ind, tab.getBaseName())
				self.tabWidget.setTabToolTip(self.ind, tab.fileName)
				QDir.setCurrent(QFileInfo(tab.fileName).dir().path())
			else:
				self.setWindowFilePath('')
				self.setWindowTitle(self.tr('New document') + '[*]')

			canReload = bool(tab.fileName) and not self.autoSaveActive(tab)
			self.actionSetEncoding.setEnabled(canReload)
			self.actionReload.setEnabled(canReload)
Пример #29
0
    def slot_ok(self):
        self.setWindowModality(Qt.ApplicationModal)
        inputDict = imgClip_dict
        inputDict['input_file']=self.lineEdit_input.text()
        inputDict['output_file']=self.lineEdit_output.text()
        inputDict['x']=self.spinBox_x.value()
        inputDict['y']=self.spinBox_y.value()
        inputDict['row']=self.spinBox_row.value()
        inputDict['column']=self.spinBox_column.value()

        QDir.setCurrent(QCoreApplication.applicationDirPath())  # change current dir to "venv/bin/"

        ret =0
        ret = image_clip(inputDict)
        if ret !=0:
            print("Error: failed to clip images")
        else:
            QMessageBox.information(self, 'Prompt', self.tr("Images cliped !"))
        self.setWindowModality(Qt.NonModal)
Пример #30
0
    def on_btnOpen_clicked(self):
        ##      curPath=os.getcwd()  #获取系统当前目录
        curPath = QDir.currentPath()  #获取系统当前目录
        title = "选择视频文件"
        filt = "视频文件(*.wmv *.avi);;所有文件(*.*)"
        fileName, flt = QFileDialog.getOpenFileName(self, title, curPath, filt)
        if (fileName == ""):
            return

        fileInfo = QFileInfo(fileName)
        baseName = fileInfo.fileName()
        ##      baseName=os.path.basename(fileName)
        self.ui.LabCurMedia.setText(baseName)

        curPath = fileInfo.absolutePath()
        QDir.setCurrent(curPath)  #重设当前目录

        media = QMediaContent(QUrl.fromLocalFile(fileName))
        self.player.setMedia(media)  #设置播放文件
        self.player.play()
Пример #31
0
    def slot_ok(self):
        self.setWindowModality(Qt.ApplicationModal)
        inputDict = imgClip_dict
        inputDict['input_file'] = self.lineEdit_input.text()
        inputDict['output_file'] = self.lineEdit_output.text()
        inputDict['x'] = self.spinBox_x.value()
        inputDict['y'] = self.spinBox_y.value()
        inputDict['row'] = self.spinBox_row.value()
        inputDict['column'] = self.spinBox_column.value()

        QDir.setCurrent(QCoreApplication.applicationDirPath()
                        )  # change current dir to "venv/bin/"
        xmlFileName = '../../metadata/image_clip_inputs.xml'
        generate_xml_from_dict(inputDict, xmlFileName)

        QMessageBox.information(self, 'Prompt',
                                self.tr("Have saved the xml file !"))
        instance = ImageClip(inputDict)
        instance.image_clip_from_dict()
        QMessageBox.information(self, 'Prompt', self.tr("Images clipped !"))
        self.setWindowModality(Qt.NonModal)
Пример #32
0
def getSettingsFile():
    appPath = QStandardPaths.writableLocation(QStandardPaths.AppDataLocation)
    appDir = QDir(appPath)
    if not appDir.exists():
        logger.debug('Creating app directory')
        appDir.mkpath(appDir.absolutePath())
    else:
        logger.debug('App directory already exists')
    if appDir.setCurrent(appDir.absolutePath()):
        logger.debug('Changing cwd to app data directory')
    else:
        logger.debug('Changing cwd to app data directory failed')
    return QFile('settings.json')
Пример #33
0
########################################################################################################################

import os
import sys

from PyQt5.QtCore import QDir
from PyQt5.QtGui import QIcon
from PyQt5.uic import compileUiDir

###########
# GLOBALS #
########################################################################################################################

PLAYGROUND_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'playground')
sys.path.insert(0, os.path.join(PLAYGROUND_DIR, 'src'))
QDir.setCurrent(PLAYGROUND_DIR)

def compile_map(d, f):
    return 'src/playground/ui/', f

QIcon.setThemeSearchPaths([os.path.join(PLAYGROUND_DIR, 'icons')])
QIcon.setThemeName('Faenza')

########
# MAIN #
########################################################################################################################

if __name__ == '__main__':

    # good for develop and first run.
    compileUiDir(
Пример #34
0
def main():
    # Initialise.

    defaultContext = "@default"
    fetchedTor = MetaTranslator()
    codecForTr = ''
    codecForSource = ''
    tsFileNames = []
    uiFileNames = []

    verbose = False
    noObsolete = False
    metSomething = False
    numFiles = 0
    standardSyntax = True
    metTsFlag = False
    tr_func = None
    translate_func = None

    # Parse the command line.

    for arg in sys.argv[1:]:
        if arg == "-ts":
            standardSyntax = False

    argc = len(sys.argv)
    i = 1

    while i < argc:
        arg = sys.argv[i]
        i += 1

        if arg == "-help":
            printUsage()
            sys.exit(0)

        if arg == "-version":
            sys.stderr.write("pylupdate5 v%s\n" % PYQT_VERSION_STR)
            sys.exit(0)

        if arg == "-noobsolete":
            noObsolete = True
            continue

        if arg == "-verbose":
            verbose = True
            continue

        if arg == "-ts":
            metTsFlag = True
            continue

        if arg == "-tr-function":
            if i >= argc:
                sys.stderr.write(
                        "pylupdate5 error: missing -tr-function name\n")
                sys.exit(2)

            tr_func = sys.argv[i]
            i += 1
            continue

        if arg == "-translate-function":
            if i >= argc:
                sys.stderr.write(
                        "pylupdate5 error: missing -translate-function name\n")
                sys.exit(2)

            translate_func = sys.argv[i]
            i += 1
            continue

        numFiles += 1

        fullText = ""

        if not metTsFlag:
            f = QFile(arg)

            if not f.open(QIODevice.ReadOnly):
                sys.stderr.write(
                        "pylupdate5 error: Cannot open file '%s'\n" % arg)
                sys.exit(1)

            t = QTextStream(f)
            fullText = t.readAll()
            f.close()

        if standardSyntax:
            oldDir = QDir.currentPath()
            QDir.setCurrent(QFileInfo(arg).path())

            fetchedTor = MetaTranslator()
            codecForTr = ''
            codecForSource = ''
            tsFileNames = []
            uiFileNames = []

            for key, value in proFileTagMap(fullText).items():
                for t in value.split(' '):
                    if key == "SOURCES":
                        fetchtr_py(QDir.current().absoluteFilePath(t),
                                fetchedTor, defaultContext, True,
                                codecForSource, tr_func, translate_func)
                        metSomething = True

                    elif key == "TRANSLATIONS":
                        tsFileNames.append(QDir.current().absoluteFilePath(t))
                        metSomething = True

                    elif key in ("CODEC", "DEFAULTCODEC", "CODECFORTR"):
                        codecForTr = t
                        fetchedTor.setCodec(codecForTr)

                    elif key == "CODECFORSRC":
                        codecForSource = t

                    elif key == "FORMS":
                        fetchtr_ui(QDir.current().absoluteFilePath(t),
                                fetchedTor, defaultContext, True)

            updateTsFiles(fetchedTor, tsFileNames, codecForTr, noObsolete,
                    verbose)

            if not metSomething:
                sys.stderr.write(
                        "pylupdate5 warning: File '%s' does not look like a "
                        "project file\n" % arg)
            elif len(tsFileNames) == 0:
                sys.stderr.write(
                        "pylupdate5 warning: Met no 'TRANSLATIONS' entry in "
                        "project file '%s'\n" % arg)

            QDir.setCurrent(oldDir)
        else:
            if metTsFlag:
                if arg.lower().endswith(".ts"):
                    fi = QFileInfo(arg)

                    if not fi.exists() or fi.isWritable():
                        tsFileNames.append(arg)
                    else:
                        sys.stderr.write(
                                "pylupdate5 warning: For some reason, I "
                                "cannot save '%s'\n" % arg)
                else:
                    sys.stderr.write(
                            "pylupdate5 error: File '%s' lacks .ts extension\n" % arg)
            else:
                fi = QFileInfo(arg)

                if fi.suffix() in ("py", "pyw"):
                    fetchtr_py(fi.absoluteFilePath(), fetchedTor,
                            defaultContext, True, codecForSource, tr_func,
                            translate_func)
                else:
                    fetchtr_ui(fi.absoluteFilePath(), fetchedTor,
                            defaultContext, True)

    if not standardSyntax:
        updateTsFiles(fetchedTor, tsFileNames, codecForTr, noObsolete, verbose)

    if numFiles == 0:
        printUsage()
        sys.exit(1)