Пример #1
0
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)

        self.wordplay = Wordplay()
        self.wordplay.open("french.sqlite")

        self.__init_gui()
Пример #2
0
class MainWindow(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)

        self.wordplay = Wordplay()
        self.wordplay.open("french.sqlite")

        self.__init_gui()


    def __init_gui(self):
        self.setWindowTitle("Wordplay")
        self.setMinimumWidth(400)
        self.setMinimumHeight(300)

        layout = QtGui.QVBoxLayout()
        self.setLayout(layout)

        tabWidget = QtGui.QTabWidget(self)
        layout.addWidget(tabWidget)

        self.__init_tab_dictionary(tabWidget)
        self.__init_tab_anagrams(tabWidget)
        self.__init_tab_3words(tabWidget)
        self.__init_tab_quatro(tabWidget)


    def __init_tab_dictionary(self, tabWidget):
        tab = QtGui.QWidget(tabWidget)
        tabWidget.addTab(tab, "Dictionnaire")

        layout = QtGui.QVBoxLayout()
        tab.setLayout(layout)

        entry = QtGui.QLineEdit(self)
        layout.addWidget(entry)

        listView = QtGui.QListView(self)
        layout.addWidget(listView)

        model = QtGui.QStandardItemModel(listView)
        listView.setModel(model)

        entry.editingFinished.connect(lambda: self.__dictionary_updated(entry.text(), model))


    def __init_tab_anagrams(self, tabWidget):
        tab = QtGui.QWidget(tabWidget)
        tabWidget.addTab(tab, "Annagrames")

        layout = QtGui.QVBoxLayout()
        tab.setLayout(layout)

        entry = QtGui.QLineEdit(self)
        layout.addWidget(entry)

        listView = QtGui.QListView(self)
        layout.addWidget(listView)

        model = QtGui.QStandardItemModel(listView)
        listView.setModel(model)

        entry.editingFinished.connect(lambda: self.__anagram_updated(entry.text(), model))


    def __init_tab_3words(self, tabWidget):
        tab = QtGui.QWidget(tabWidget)
        tabWidget.addTab(tab, "Lettres pour 3 mots")

        layout = QtGui.QVBoxLayout()
        tab.setLayout(layout)

        sub_layout = QtGui.QHBoxLayout()
        layout.addLayout(sub_layout)

        prefix1 = QtGui.QLineEdit(self)
        sub_layout.addWidget(prefix1)

        prefix2 = QtGui.QLineEdit(self)
        sub_layout.addWidget(prefix2)

        prefix3 = QtGui.QLineEdit(self)
        sub_layout.addWidget(prefix3)

        suffixLength = QtGui.QSpinBox(self)
        sub_layout.addWidget(suffixLength)
        suffixLength.setValue(3)

        pushButton = QtGui.QPushButton("OK", self)
        sub_layout.addWidget(pushButton)

        listView = QtGui.QListView(self)
        layout.addWidget(listView)

        model = QtGui.QStandardItemModel(listView)
        listView.setModel(model)

        pushButton.clicked.connect(lambda: self.__3words_updated(prefix1.text(), prefix2.text(), prefix3.text(), suffixLength.value(), model))


    def __init_tab_quatro(self, tabWidget):
        tab = QtGui.QWidget(tabWidget)
        tabWidget.addTab(tab, "Quatro")

        layout = QtGui.QVBoxLayout()
        tab.setLayout(layout)


        sub_layout = QtGui.QHBoxLayout()
        layout.addLayout(sub_layout)

        prefix1 = QtGui.QLineEdit(self)
        sub_layout.addWidget(prefix1)

        suffix1 = QtGui.QLineEdit(self)
        sub_layout.addWidget(suffix1)

        sub_layout = QtGui.QHBoxLayout()
        layout.addLayout(sub_layout)

        prefix2 = QtGui.QLineEdit(self)
        sub_layout.addWidget(prefix2)

        suffix2 = QtGui.QLineEdit(self)
        sub_layout.addWidget(suffix2)

        sub_layout = QtGui.QHBoxLayout()
        layout.addLayout(sub_layout)

        middleLength = QtGui.QSpinBox(self)
        sub_layout.addWidget(middleLength)
        middleLength.setValue(1)

        pushButton = QtGui.QPushButton("OK", self)
        sub_layout.addWidget(pushButton)


        listView = QtGui.QListView(self)
        layout.addWidget(listView)

        model = QtGui.QStandardItemModel(listView)
        listView.setModel(model)

        pushButton.clicked.connect(lambda: self.__quatro_updated(prefix1.text(), suffix1.text(), prefix2.text(), suffix2.text(), middleLength.value(), model))


    def __dictionary_updated(self, text, model):
        model.clear()
        for word in self.wordplay.search_words(text):
            item = QtGui.QStandardItem(word)
            item.setEditable(False)
            model.appendRow(item)


    def __anagram_updated(self, text, model):
        model.clear()
        for word in self.wordplay.search_anagrams(text):
            item = QtGui.QStandardItem(word)
            item.setEditable(False)
            model.appendRow(item)


    def __3words_updated(self, prefix1, prefix2, prefix3, suffix_len, model):
        model.clear()
        for suffix in self.wordplay.letters_for_three_words(prefix1, prefix2, prefix3, suffix_len):
            item = QtGui.QStandardItem("{0} ({1}{0}, {2}{0}, {3}{0})".format(suffix, prefix1, prefix2, prefix3))
            item.setEditable(False)
            model.appendRow(item)


    def __quatro_updated(self, prefix1, suffix1, prefix2, suffix2, middleLength, model):
        model.clear()
        for middle in self.wordplay.quatro(prefix1, suffix1, prefix2, suffix2, middleLength):
            item = QtGui.QStandardItem("{0} ({1}{0}{2}, {3}{0}{4})".format(middle, prefix1, suffix1, prefix2, suffix2))
            item.setEditable(False)
            model.appendRow(item)