A podruhe potrebujem ukladat data do suboru v UTF-8 ale nejako sa mi to nedari, proste
Traceback (most recent call last): File "netdirector.py", line 41, in uloz fh.write(sprava) UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 81: ordinal not in range(128)
Tu je cely zdrojak keby ste ho nahodou potrebovali vidiet ako to funguje:
#!/usr/bin/env python # -*- coding: utf-8 -*- from PyQt4 import QtCore, QtGui import sys, os, time subor=os.path.exists('nastavenia') # vypise ci fajl nastavenia existuje, teda True - pravda alebo False - neexistuje spusti=os.system('./skuska') print "Vitaj! Ja som Net Director, spravca tvojej internetovej kaviarne" if subor==True: # ak existuje vyhod cele okno s programom app = QtGui.QApplication(sys.argv) MainWindow = QtGui.QMainWindow() MainWindow.setWindowIcon(QtGui.QIcon('ikona.png')) MainWindow.setWindowTitle("Net Director") MainWidget=QtGui.QWidget(MainWindow) MainWindow.setCentralWidget(MainWidget) layout=QtGui.QGridLayout(MainWidget) headerLabel=QtGui.QLabel(u"<h1>Net Director - Správca siete</h1>", MainWidget) headerLabel.setAlignment(QtCore.Qt.AlignHCenter) layout.addWidget(headerLabel,0,0,1,2, QtCore.Qt.AlignHCenter) MainWindow.showMaximized() sys.exit(app.exec_()) else: # ak neexistuje nahod tam okienko s nastaveniami def uloz(): # funkcia uloz, platna iba v pripade ze subor==False kaviaren_ul=unicode(kaviaren.text()) meno_ul=unicode(meno.text()) priezvisko_ul=unicode(priezvisko.text()) pocet_ul=unicode(pocet.text()) sprava='#!/usr/bin/env python \n \ # -*- coding: utf-8 -*- \n \ %s \n \ %s \n \ %s \n \ %s \n' % (kaviaren_ul, meno_ul, priezvisko_ul, pocet_ul) vytvor=file('nastavenia','w') # vytvori sa subor nastavenia fh=open("nastavenia","w") # otvaram, ukladam a zatvaram subor nastavenia fh.write(sprava) fh.close() app = QtGui.QApplication(sys.argv) MainWindow = QtGui.QMainWindow() MainWindow.setWindowIcon(QtGui.QIcon('ikona.png')) MainWindow.setWindowTitle("Nastavenia") MainWidget=QtGui.QWidget(MainWindow) MainWindow.setCentralWidget(MainWidget) layout=QtGui.QGridLayout(MainWidget) logo=QtGui.QLabel(MainWidget) logo.setPixmap(QtGui.QPixmap("nastavenia_logo.png")) meno=QtGui.QLineEdit(MainWidget) priezvisko=QtGui.QLineEdit(MainWidget) pocet=QtGui.QLineEdit(MainWidget) kaviaren=QtGui.QLineEdit(MainWidget) menotext=QtGui.QLabel(u"Vaše meno:", MainWidget) priezviskotext=QtGui.QLabel(u"Vaše priezvisko:", MainWidget) pocettext=QtGui.QLabel(u"Počet počítačov:", MainWidget) kaviarentext=QtGui.QLabel(u"Názov vašej kaviarne:", MainWidget) posli=QtGui.QPushButton(u"Uložiť", MainWidget) zavri=QtGui.QPushButton(u"Zavrieť", MainWidget) layout.addWidget(logo,0,0,1,2, QtCore.Qt.AlignHCenter) layout.addWidget(meno,1,1) layout.addWidget(menotext,1,0) layout.addWidget(priezvisko,2,1) layout.addWidget(priezviskotext,2,0) layout.addWidget(pocet,3,1) layout.addWidget(pocettext,3,0) layout.addWidget(kaviaren,4,1) layout.addWidget(kaviarentext,4,0) layout.addWidget(posli,5,1) layout.addWidget(zavri,5,0) app.connect(zavri,QtCore.SIGNAL("clicked()"), MainWindow.close) app.connect(posli,QtCore.SIGNAL("clicked()"), uloz) import info print info.info[0] MainWindow.show() sys.exit(app.exec_()),Si mozete vsimnut v tej funkcii uloz ze som skusal vytvorit aj s kodovanim vo vnutri ten subor, ale nedari sa mi, proste to napise ze mam tam znaky ktore ascii nepovoluje.
Dakujem
Možno bude stačiť jedno z toho.
dakujem velmi velmi pekne !!! :)