Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- import sys
- import os
- from subprocess import call
- import re
- """
- src/ # .ui, .qrc файлы
- compiled/ # готовые модулями
- compile.py # компилятор
- """
- SRC_DIRECTORY = 'src'
- COMPILED_DIRECTORY = 'compiled'
- PYTHON_PATH = os.path.dirname(sys.executable)
- PUIC_PATH = PYTHON_PATH + '\\Lib\\site-packages\\PyQt4\\uic\\pyuic.py'
- CURRENT_PATH = os.path.dirname(__file__)
- COMPILED_PATH = os.path.join(CURRENT_PATH, COMPILED_DIRECTORY, '{name}.py')
- MODULE_TEMPLATE = """# -*- coding: utf-8 -*-
- import sys
- from PyQt4 import QtCore, QtGui
- from ui_{module} import Ui_{Class}
- class {Class}(QtGui.{Parent}):
- def __init__(self, parent=None):
- QtGui.{Parent}.__init__(self, parent)
- self.parent = parent
- self.ui = Ui_{Class}()
- self.ui.setupUi(self)
- if __name__ == '__main__':
- a = QtGui.QApplication(sys.argv)
- w = {Class}()
- w.show()
- a.exec_()
- """
- if __name__ == '__main__':
- files = os.listdir(SRC_DIRECTORY)
- for filename in files:
- relpath = os.path.join(SRC_DIRECTORY, filename)
- if os.path.isfile(relpath):
- name, extension = os.path.splitext(filename)
- extension = extension.lower()
- if extension in ['.ui', '.qrc']:
- source_path = os.path.join(CURRENT_PATH, relpath)
- if extension == '.ui':
- call(['python', PUIC_PATH, source_path, '-o',
- COMPILED_PATH.format(name='ui_' + name)])
- f = open(source_path)
- source = f.read()
- f.close()
- C = re.search('<class>([^<]+)</class>', source).group(1)
- P = re.search('<widget class="([^"]+)', source).group(1)
- data = MODULE_TEMPLATE.format(module=name,
- Class=C,
- Parent=P)
- f = open(COMPILED_PATH.format(name=name), 'w')
- f.write(data)
- f.close()
- continue
- call(['pyrcc4', '-o', source_path,
- COMPILED_PATH.format(name=name + '_rc')])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement