blog-blog-blog

Утилитка на PyQt. Выборка из XML, созданных в Everest

, , ,

Понадобилась для работы утилитка, которая выбирала бы нужные строки из XML файла, созданного в Everest.
Основой файл:
# -*- 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))

Про PostgreSQL 8.3.7-1 на WindowsУтилитка на PyQt. Изменение атрибутов файлов.

Write a comment

New comments have been disabled for this post.