[Tutor] playing around with function
kakada
hokkakada at khmeros.info
Fri Jul 28 11:01:19 CEST 2006
បានសរសេរ kakada:
> Thank Alan and Luke,
>
> My coding is divided up into many modules and import from one to another.
> Here is my editor.py interface.
>
>
> #!/usr/bin/python
> # -*- coding: utf8 -*-
>
> import sys
> import application_rc
> from PyQt4 import QtCore, QtGui
> from ui_editor import Ui_MainWindow
> from translate.storage import factory
> import Display
>
>
> class MainWindow(QtGui.QMainWindow):
> def __init__(self):
> QtGui.QMainWindow.__init__(self)
>
> self.ui = Ui_MainWindow()
> self.ui.setupUi(self)
>
> self.numApproved = 0
> self.numFuzzy = 0
> self.numTranslated = 0
>
> #events go here
> QtCore.QObject.connect(self.ui.treeWidget,
> QtCore.SIGNAL("itemSelectionChanged()"), self.updateField)
> QtCore.QObject.connect(self.ui.cmbMsgFilter,
> QtCore.SIGNAL("activated(int)"), self.setFilter)
>
> QtCore.QObject.connect(self.ui.chkfuzzy,QtCore.SIGNAL("stateChanged(int)"),self.toggleFuzzy)
>
> QtCore.QObject.connect(self.ui.chkapproved,QtCore.SIGNAL("toggled(bool)"),self.toggleApproved)
>
> QtCore.QObject.connect(self.ui.btnsource2target,QtCore.SIGNAL("pressed()"),self.source2target)
>
> QtCore.QObject.connect(self.ui.btnRemoveAllTU,QtCore.SIGNAL("pressed()"),self.removeAllTrans)
>
> QtCore.QObject.connect(self.ui.btnNA,QtCore.SIGNAL("pressed()"),self.gotoNA)
>
> QtCore.QObject.connect(self.ui.btnPA,QtCore.SIGNAL("pressed()"),self.gotoPA)
>
> QtCore.QObject.connect(self.ui.btnNF,QtCore.SIGNAL("pressed()"),self.gotoNF)
>
> QtCore.QObject.connect(self.ui.btnNT,QtCore.SIGNAL("pressed()"),self.gotoNT)
>
> QtCore.QObject.connect(self.ui.btnNU,QtCore.SIGNAL("pressed()"),self.gotoNU)
>
> QtCore.QObject.connect(self.ui.btnPF,QtCore.SIGNAL("pressed()"),self.gotoPF)
>
> QtCore.QObject.connect(self.ui.btnPU,QtCore.SIGNAL("pressed()"),self.gotoPU)
>
> QtCore.QObject.connect(self.ui.btnPT,QtCore.SIGNAL("pressed()"),self.gotoPT)
> QtCore.QMetaObject.connectSlotsByName(self)
>
>
>
>
> def newWindows(self):
> print "new windows"
> self.other = Ui_MainWindow()
> self.other.windowList.append(other)
> self.other.show()
>
> def openFile(self):
> fileName = QtGui.QFileDialog.getOpenFileName(self, self.tr("Open
> Xliff File"),
>
> QtCore.QDir.currentPath(),
> self.tr("XLIFF
> Files (*.xliff *.xml *.xlf);;All File(*.*)"))
>
> if fileName.isEmpty():
> self.setWindowTitle( self.tr("WordForge Translation Editor
> v.05 - ") + "untitle")
> else:
> self.setWindowTitle( self.tr("WordForge Translation Editor
> v.05 - ") + str(fileName))
> self.title = fileName
> self.store = factory.getobject(str(fileName))
> self.uf = Display.Display(self.ui, self.store)
>
> import FirstShow
> fs = FirstShow.FirstShow(self.ui, self.store)
> fs.firstShow()
>
> def save(self):
> if self.title.isEmpty():
> return self.saveAs()
> else:
> return self.store.savefile(str(self.title))
>
> def saveAs(self):
> fileName = QtGui.QFileDialog.getSaveFileName(self, self.tr("Save
> Xliff File"),
>
> QtCore.QDir.currentPath(),
> self.tr("XLIFF
> Files (*.xliff *.xml *.xlf)"))
> if fileName.isEmpty():
> return
>
> self.store.savefile(str(fileName))
>
> self.ui.cmbMsgFilter.addItem ('Not filtered')
> self.ui.cmbMsgFilter.addItem ('fuzzy')
> self.ui.cmbMsgFilter.addItem ('translated')
> self.ui.cmbMsgFilter.addItem ('untranslated')
>
>
> def getCurrentItem(self):
> try:
> self.item = self.ui.treeWidget.selectedItems()[0]
> except IndexError:
> return False
>
> # I have change my code style like this:
>
> def gotoNF(self):
> self.state = "NF"
> self.navigationNext(self.state)
> def gotoNT(self):
> self.state = "NT"
> self.navigationNext(self.state)
> def gotoNU(self):
> self.state = "NU"
> self.navigationNext(self.state)
> def gotoNA(self):
> self.state = "NA"
> self.navigationNext(self.state)
>
> def gotoPA(self):
> self.state = "PA"
> self.navigationPrevious(self.state)
> def gotoPT(self):
> self.state = "PT"
> self.navigationPrevious(self.state)
> def gotoPU(self):
> self.state = "PU"
> self.navigationPrevious(self.state)
> def gotoPF(self):
> self.state = "PF"
> self.navigationPrevious(self.state)
> def navigated(self):
> if (self.state == 'NF') and
> (self.store.units[int(self.id)].isfuzzy()):
> return True
> if (self.state == 'PF') and
> (self.store.units[int(self.id)].isfuzzy()):
> return True
> if (self.state == 'NT') and
> (self.store.units[int(self.id)].istranslated()):
> return True
> if (self.state == 'PT') and
> (self.store.units[int(self.id)].istranslated()):
> return True
> if (self.state == 'NU') and
> (self.store.units[int(self.id)].isuntranslated()):
> return True
> if (self.state == 'PU') and
> (self.store.units[int(self.id)].isuntranslated()):
> return True
> if (self.state == 'NA') and
> (self.store.units[int(self.id)].isapproved()):
> return True
> if (self.state == 'PA') and
> (self.store.units[int(self.id)].isapproved()):
> return True
> def navigationNext(self,state):
> if (self.getCurrentItem() == 0):
> return 0
> self.id = int(self.item.text(0))
> self.id += 1
> for i in range(self.id,775):
> self.id = i
> if (i == 775):
> pass
> #self.warningMessage()
> else:
> if self.navigated():
> curItem = self.ui.treeWidget.topLevelItem(self.id)
> self.ui.treeWidget.setCurrentItem(curItem)
>
> self.ui.txtSource.setHtml(self.store.units[self.id].source)
>
> self.ui.txtTarget.setHtml(self.store.units[self.id].target)
> break
> else: continue
>
> def navigationPrevious(self,state):
> if (self.getCurrentItem() == 0):
> return 0
> self.id = int(self.item.text(0))
> self.id -= 1
> for i in range(self.id,0,-1):
> self.id = i
> if (self.id == 0):
> pass
> #self.warningMessage()
> else:
> if self.navigated():
> curItem = self.ui.treeWidget.topLevelItem(self.id)
> self.ui.treeWidget.setCurrentItem(curItem)
>
> self.ui.txtSource.setHtml(self.store.units[self.id].source)
>
> self.ui.txtTarget.setHtml(self.store.units[self.id].target)
> break
> else: continue
>
> #class MessageDialog(QtGui.QDialog):
> #def warningMessage(self):
> #reply = QtGui.QMessageBox.warning(self,
> self.tr("QMessageBox.showWarning()"),
> #Dialong.MESSAGE,
> self.tr("Continue to the begining"),
> #self.tr("&Yes"))
> #if reply == 0:
> #self.warningLabel.setText(self.tr("Yes"))
> #else:
> #self.warningLabel.setText(self.tr("Cancel"))
>
>
>
>
> if __name__ == "__main__":
> app = QtGui.QApplication(sys.argv)
> editor = MainWindow()
> editor.show()
> sys.exit(app.exec_())
>
>
>
It is working like I want now, but I still not like this code style
(regarding navigation). It is too long.
Thx,
da
More information about the Tutor
mailing list