បានសរសេរ 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 _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor