Я пишу небольшую программу на Python, которая просматривает XML-файл и заменяет некоторые теги. Он принимает три аргумента: путь, из которого создается дерево каталогов, XML-файл для чтения и XML-файл для его вывода. Он отлично работает из командной строки, просто передавая аргументы. Поскольку это не только для меня, я думал, что id поставил перед ним Qt. Ниже представлено большинство фронта Qt. MOVtoMXF - это класс, который выполняет все замены. Итак, вы можете видеть, что я в основном просто хватаю строки и передаю их в класс, который я уже создал и протестировал.
class Form(QDialog):
def ConnectButtons(self):
self.connect(self.pathBrowseB, SIGNAL("clicked()"), self.pathFileBrowse)
self.connect(self.xmlFileBrowseB, SIGNAL("clicked()"), self.xmlFileBrowse)
self.connect(self.outputFileBrowseB, SIGNAL("clicked()"), self.outputFileBrowse)
def accept(self):
path = self.pathBox.displayText()
xmlFile = self.xmlFileBox.displayText()
outFileName = self.outfileNameBox.displayText()
print path + " " + xmlFile + " " + outFileName
mov1 = MOVtoMXF.MOVtoMXF(path, xmlFile, outFileName)
mov1.ScanFile()
self.done()
def pathFileBrowse(self):
file = str(QFileDialog.getExistingDirectory(self, "Select Directory"))
self.pathBox.setText(file)
def xmlFileBrowse(self):
file = str(QFileDialog.getOpenFileName(self, "Save File"))
self.xmlFileBox.setText(file)
def outputFileBrowse(self):
file = str(QFileDialog.getSaveFileName(self, "Save File"))
self.outfileNameBox.setText(file)
проблема в том, что когда я передаю путь, он теперь возвращается с ошибкой, либо каталог не существует, либо, если у меня заканчивается косая черта на конце, которая
Файл "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/posixpath.py", строка 62, в соединении
elif path == '' или path.endswith ('/'):
Я думаю, что это, вероятно, какое-то несоответствие между QFileDialog, QString, которое он передает назад, и строкой, которую ожидает мой python. но я не уверен, как это исправить.
Я работаю на Max OS X 10.5.6
pyQt 4.4.4
QT 4.4.0
спасибо за любую помощь, которую вы можете оказать.
Mark