[Python-de] blackadder
René Liebscher
R.Liebscher at gmx.de
Die Jun 3 16:11:29 EDT 2003
Roland Kruggel schrieb:
>
> Am Montag Juni 2 2003 19:32 schrieb Roland Kruggel:
> > Hallo Liste,
> >
> > kennt sich hier jemand mit BlackAdder aus?
> >
> > Ich habe ein Problem. Das .ui file welches im qt-designer
> > erzeugt wurde wird von BlackAdder nicht gelesen.
> >
> > Weiß da jemand rat? Von TheKompany kommt keinerlei Reation auf
> > meine Mails.
> >
> > BlackAdder Version 1.0 Beta 4
> > designer Version 3.1
>
> Ich habe den 'bug' gefunden.
>
> ich habe zwei Programme die einander eine XML Datei übergeben.
> Die XML-Dateien weichen leider voneinander ab. Weiß da jeman ein
> Convertierungsprogramm für. Google schweigt sich leider aus.
>
> --snip source version="3.1"
> <widget class="QDialog">
> <property name="name">
> <cstring>test2</cstring>
> </property>
> <property name="geometry">
> --snap
>
> soll convertirt werden zu
>
> --snip destination version=weis nicht
> <widget>
> <class>QDialog</class>
> <property stdset="1">
> <name>name</name>
> <cstring>test1</cstring>
> </property>
> <property stdset="1">
> <name>geometry</name>
> --snap
>
> wäre um Tips dankbar.
>
> cu
>
> --
> Roland Kruggel mailto: rkruggel at bbf7.de
> System: AMD 1200Mhz, Debian woody, 2.4.20, KDE 3.1
>
Ich hatte mal auch so ein Problem (QT3 Dateien zu bekommen und QT2 zu
brauchen)
Ich hatte da ein kleines Script gemacht, was mir das meiste rüberholte.
convert3_2.py qt3-file qt2-file
Das Teil kann zwar nicht alles, aber macht schon allerhand für seine
Einfachheit.
MfG
Rene Liebscher
-------------- nächster Teil --------------
#!/usr/bin/env python
# convert files from qt3 designer to qt2 designer format
# Copyright 2003 Rene Liebscher <R.Liebscher at gmx.de>
# this program is public domain
# if you have made some improvements to it, it would like to get the improved version if possible
# use it:
# convert3_2.py qt3-file qt2-file
from xmllib import TestXMLParser
from string import strip,join,split,atoi,find
import sys
import re
fo = sys.stdout
class UIParser(TestXMLParser):
def __init__(self):
TestXMLParser.__init__(self)
def handle_data(self, data):
fo.write(data)
def start_widget(self, attrs):
fo.write('<widget>')
fo.write('<class>%s</class>' % attrs['class'])
def end_widget(self):
fo.write('</widget>')
def start_property(self, attrs):
fo.write('<property stdset="1">')
if attrs['name'] == "paletteBackgroundColor":
attrs['name'] = "backgroundColor"
if attrs['name'] == "paletteBackgroundPixmap":
attrs['name'] = "backgroundPixmap"
fo.write('<name>%s</name>' % attrs['name'])
def end_property(self):
fo.write('</property>')
def start_image(self, attrs):
fo.write('<image>')
fo.write('<name>%s</name>' % attrs['name'])
def end_image(self):
fo.write('</image>')
def unknown_starttag(self, tag, attrs):
s = ""
for i in attrs.keys():
s = '%s %s="%s"' % (s,i,attrs[i])
fo.write('<%s%s>' % (tag,s))
def unknown_endtag(self, tag):
fo.write('</%s>' % tag)
import xmllib
def test(args = None):
outfile = 'test.xml'
global fo
if not args:
args = sys.argv[1:]
if args:
file = args[0]
else:
return
if file == '-':
f = sys.stdin
else:
try:
f = open(file, 'r')
except IOError, msg:
print file, ":", msg
sys.exit(1)
if (len(args) > 1):
outfile = args[1]
if outfile != '-':
try:
fo = open(outfile, 'w')
except IOError, msg:
print file, ":", msg
sys.exit(1)
data = f.read()
if f is not sys.stdin:
f.close()
fo.write("<!DOCTYPE UI>")
x = UIParser()
try:
for c in data:
x.feed(c)
x.close()
except RuntimeError, msg:
print msg
sys.exit(1)
if __name__ == '__main__':
test()