Пример #1
0
 def create_layout(self):
     self.words_widget = WordsWidget()
     self.setCentralWidget(self.words_widget)
     self.words_widget.show()
Пример #2
0
class Window(QMainWindow):

    def __init__(self):
        super(QMainWindow, self).__init__()
        self.setWindowTitle('Bangla Dictionary')

        self.create_layout()
        self.create_actions()
        self.create_menus()
        self.create_connections()

    def create_layout(self):
        self.words_widget = WordsWidget()
        self.setCentralWidget(self.words_widget)
        self.words_widget.show()

    def create_actions(self):
        self.new_action = QAction("&New", self)
        self.export_action = QAction("&Export", self)
        self.quit_action = QAction("&Quit", self)

    def create_menus(self):
        file_menu = self.menuBar().addMenu("&File")
        file_menu.addAction(self.new_action)
        file_menu.addAction(self.export_action)
        file_menu.addAction(self.quit_action)

    def create_connections(self):
        self.connect(self.new_action, SIGNAL("triggered()"), self.new_word)
        self.connect(self.export_action, SIGNAL("triggered()"),
                     self.export_words)
        self.connect(self.quit_action, SIGNAL("triggered()"),
                     QApplication.instance(), SLOT("closeAllWindows()"))

    def new_word(self):
        add = AddWordWidget(self)
        add.words_widget = self.words_widget
        add.show()

    def export_words(self):
        words = Word.objects.filter(exported=False)
        if words.count() == 0:
            QMessageBox.information(self, 'BengDict',
                                    'No word found to be exported')
            return

        json_str = serializers.serialize("json", words, fields=['dictionary',
                                                                'original',
                                                                'translation',
                                                                'phoneme',
                                                                'pos',
                                                                'description',
                                                                'synonyms',
                                                                'antonyms', ])

        try:
            root_dir = os.path.dirname(os.path.dirname(__file__))
            exports_dir = os.path.join(root_dir, 'exports')
            os.mkdir(exports_dir)
        except OSError:
            pass

        time_format = datetime.datetime.now().isoformat().replace(':', '-')
        fname = os.path.join(exports_dir, 'export-' + time_format + '.json')

        with open(fname, 'w') as f:
            f.write(json_str)

        for word in words:
            word.exported = True
            word.save()

        self.words_widget.load_words()
        QMessageBox.information(self, 'BengDict',
                                'The exported file is saved in ' + fname)