Утилитка на PyQt. Выборка из XML, созданных в Everest
Tuesday, May 31, 2011 9:36:13 AM
Понадобилась для работы утилитка, которая выбирала бы нужные строки из XML файла, созданного в Everest.
Основой файл:
Файл графической формы form.py
Основой файл:
# -*- coding: utf-8 -*-
import sys, os, glob
from PyQt4 import QtGui, QtCore
from form import Ui_Form
class pyqt01(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.ui = Ui_Form()
myWidget = QtGui.QWidget()
self.ui.setupUi(myWidget)
self.setCentralWidget(myWidget)
self.connect(self.ui.listWidget, QtCore.SIGNAL('itemSelectionChanged()'), self.ptext)
self.connect(self.ui.pushButton, QtCore.SIGNAL('clicked()'), self.showDialog)
def showDialog(self):
filename = QtGui.QFileDialog.getExistingDirectory(self, 'Open file')
names = glob.glob(unicode(filename) + '\*.xml')
self.ui.listWidget.clear()
for name in names:
if os.path.isfile(name):
self.ui.listWidget.addItem(name)
def ptext(self):
fh = open(unicode(self.ui.listWidget.item(self.ui.listWidget.currentRow()).text()), 'r')
self.ui.textEdit.setText(self.ui.listWidget.item(self.ui.listWidget.currentRow()).text()[-12:-4])
for line in fh.readlines():
if ((line.find("<Item><Title>Тип ЦП</Title><Icon>") > -1) and (line.find("</Icon><Value>") == -1)):
self.ui.textEdit.append(unicode(line[line.find('</ID><Value>')+12:-16], 'cp1251'))
if ((line.find("<Item><Title>Системная плата</Title><Icon>") > -1) and (line.find("</Icon><Value>") == -1)):
self.ui.textEdit.append(unicode(line[line.find('</ID><Value>')+12:-16], 'cp1251'))
if ((line.find("<Item><Title>Системная память</Title><Icon>") > -1) and (line.find("</Icon><Value>") == -1)):
self.ui.textEdit.append(unicode(line[line.find('</ID><Value>')+12:-16], 'cp1251'))
if ((line.find("<Item><Title>DIMM</Title><Icon>") > -1) and (line.find("</Icon><Value>") == -1)):
self.ui.textEdit.append(unicode(line[line.find('</ID><Value>')+12:-16], 'cp1251'))
if ((line.find("<Item><Title>Дисковый накопитель</Title><Icon>") > -1) and (line.find("</Icon><Value>") == -1)):
self.ui.textEdit.append(unicode(line[line.find('</ID><Value>')+12:-16], 'cp1251'))
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
window = pyqt01()
window.show()
sys.exit(app.exec_())
Файл графической формы form.py
# -*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
_fromUtf8 = lambda s: s
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName(_fromUtf8("Form"))
Form.resize(640, 240)
self.gridLayout = QtGui.QGridLayout(Form)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.splitter = QtGui.QSplitter(Form)
self.splitter.setOrientation(QtCore.Qt.Horizontal)
self.splitter.setObjectName(_fromUtf8("splitter"))
self.widget = QtGui.QWidget(self.splitter)
self.widget.setObjectName(_fromUtf8("widget"))
self.verticalLayout = QtGui.QVBoxLayout(self.widget)
self.verticalLayout.setMargin(0)
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
self.pushButton = QtGui.QPushButton(self.widget)
self.pushButton.setMinimumSize(QtCore.QSize(121, 0))
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.verticalLayout.addWidget(self.pushButton)
self.listWidget = QtGui.QListWidget(self.widget)
self.listWidget.setMinimumSize(QtCore.QSize(121, 0))
self.listWidget.setObjectName(_fromUtf8("listWidget"))
self.verticalLayout.addWidget(self.listWidget)
self.textEdit = QtGui.QTextEdit(self.splitter)
self.textEdit.setObjectName(_fromUtf8("textEdit"))
self.gridLayout.addWidget(self.splitter, 0, 0, 1, 1)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
Form.setWindowTitle(QtGui.QApplication.translate("Form", "Открывалка XML - ЗАО \"Луч\"", None, QtGui.QApplication.UnicodeUTF8))
self.pushButton.setText(QtGui.QApplication.translate("Form", "Выбрать папку...", None, QtGui.QApplication.UnicodeUTF8))
