QFileDialog.getexistingdirectory в QGIS\Python
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
QFileDialog.getexistingdirectory в QGIS\Python
Сражаюсь с реализацией диалога для выбора имени директории в QGIS и Python, нашел вот это, похоже на правду, но не уверен, как реализовать
http://doc.trolltech.com/4.4/qfiledialo ... gDirectory
http://doc.trolltech.com/4.4/qfiledialo ... gDirectory
пристегивайтесь, турбулентность прямо по курсу
-
- Интересующийся
- Сообщения: 29
- Зарегистрирован: 04 ноя 2008, 00:40
- Репутация: 0
Re: QFileDialog.getexistingdirectory в QGIS\Python
Вот пример использования найденной функции в интерпретаторе питона:
Полезные ссылки Python Bindings for Qt v4 Reference Guide и PyQt's Classes
Код: Выделить всё
>>> from PyQt4.QtCore import *
>>> from PyQt4.QtGui import *
>>> app = QApplication([])
>>> d = QFileDialog.getExistingDirectory(None, "Open Directory", QDir.currentPath())
>>> d
PyQt4.QtCore.QString(u'/home/lynx/Linux/Programming/plugins repo/qgisOSM/')
>>> str(d)
'/home/lynx/Linux/Programming/plugins repo/qgisOSM/'
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: QFileDialog.getexistingdirectory в QGIS\Python
большое спасибо! то что мне нужно, я то, не догадался QApplication сделать, но теперь буду знать.
только одна проблема, при включение этого диалога в расширение, все прекрасно работает, но! после окончания работы программа зависает, может как-то нужно выгружать этот QApplication или что-то? Такое ощущение, что она перехватывает управление QGIS, но не возвращает
вот код, если вдруг найдется минутка взглянуть: http://svn.gis-lab.info/osmpoly_export/
только одна проблема, при включение этого диалога в расширение, все прекрасно работает, но! после окончания работы программа зависает, может как-то нужно выгружать этот QApplication или что-то? Такое ощущение, что она перехватывает управление QGIS, но не возвращает
вот код, если вдруг найдется минутка взглянуть: http://svn.gis-lab.info/osmpoly_export/
пристегивайтесь, турбулентность прямо по курсу
-
- Интересующийся
- Сообщения: 29
- Зарегистрирован: 04 ноя 2008, 00:40
- Репутация: 0
Re: QFileDialog.getexistingdirectory в QGIS\Python
app = QApplication([]) #удалить, я же написал, что это пример для интерпретатора питона
adir = QFileDialog.getExistingDirectory(None, "Open Directory", QDir.currentPath())
j=1 #в плагине используется только один раз, и не ясно зачем
for fid in featids:
features={} #меня глючит или
result={} #списки и
features[fid]=QgsFeature() #вправду
curLayer.featureAtId(fid,features[fid]) #используется
result[fid]=features[fid].geometry() #в качестве
attrmap=features[fid].attributeMap() #переменных?...
attr=attrmap.values()[attrindex]
fileHandle = open (str(adir) + "/" + attr.toString() +'.txt', 'w')
fileHandle.write(attr.toString()+"\n")
fileHandle.write(str(j)+"\n")
i=0
vertex=result[fid].vertexAt(i)
while (vertex!=QgsPoint(0,0)):
fileHandle.write(" "+str(vertex.x())+ " " + str(vertex.y()) +"\n")
i+=1
vertex=result[fid].vertexAt(i)
fileHandle.write("END" +"\n")
fileHandle.write("END" +"\n")
fileHandle.close()
adir = QFileDialog.getExistingDirectory(None, "Open Directory", QDir.currentPath())
j=1 #в плагине используется только один раз, и не ясно зачем
for fid in featids:
features={} #меня глючит или
result={} #списки и
features[fid]=QgsFeature() #вправду
curLayer.featureAtId(fid,features[fid]) #используется
result[fid]=features[fid].geometry() #в качестве
attrmap=features[fid].attributeMap() #переменных?...

attr=attrmap.values()[attrindex]
fileHandle = open (str(adir) + "/" + attr.toString() +'.txt', 'w')
fileHandle.write(attr.toString()+"\n")
fileHandle.write(str(j)+"\n")
i=0
vertex=result[fid].vertexAt(i)
while (vertex!=QgsPoint(0,0)):
fileHandle.write(" "+str(vertex.x())+ " " + str(vertex.y()) +"\n")
i+=1
vertex=result[fid].vertexAt(i)
fileHandle.write("END" +"\n")
fileHandle.write("END" +"\n")
fileHandle.close()
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: QFileDialog.getexistingdirectory в QGIS\Python
Теперь ты осознаешь глубину моего невежества?app = QApplication([]) #удалить, я же написал, что это пример для интерпретатора питона

Убрал QApplication, помогло, наконец я понял, что ответ уже был в самом вопросе.
про списки в качестве переменных, это неправильно? вроде работает как надо

пристегивайтесь, турбулентность прямо по курсу
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: QFileDialog.getexistingdirectory в QGIS\Python
все понял про списки, все верно, можно проще и понятнее
Код: Выделить всё
for fid in featids:
afeature=QgsFeature()
curLayer.featureAtId(fid,afeature)
result=afeature.geometry()
attrmap=afeature.attributeMap()
attr=attrmap.values()[attrindex]
пристегивайтесь, турбулентность прямо по курсу
Кто сейчас на конференции
Сейчас этот форум просматривают: Bing [Bot] и 7 гостей