0

Python/PyQt4 で非常にシンプルな Notepad++ クローンを作成していますが、エディター タブのデータを保存するこれらのオプションのどれが不思議です。

オプション 1: 現在のタブ、ファイル パス、現在の言語などの現在の Qsci.QsciScintilla インスタンスを格納する QQCodeTab というクラスがあります。これらは辞書によってタブ インデックスにマップされます。

オプション 2: オプション 1 と同じですが、クラスを切り取り、代わりにすべてを dict に格納します (例: {1: {"scintilla": <blah>, "filepath": "C:/File/whatevs.py"}, "language": "python"})

私のコードコメントはそれをよりよく説明できます。

from PyQt4 import QtGui, Qsci

class QQCodeEditor(QtGui.QTabWidget):
    def __init__(self, parent=None):
        QtGui.QTabWidget.__init__(self, parent)
        self.new_tab()
        self.new_tab()
        # Option 1: Maps index to tab object
        # Option 2: Maps index to dict of options
        self.tab_info = {}

    def new_tab(self):
        scin = Qsci.QsciScintilla()
        index = self.addTab(scin, "New Tab")

    def get_tab_info(self, index):
        # Returns QQCodeTab object
        return self.tab_info[index]

    def save(self, index):
        # Option 2: Save dialog boc and file system stuff goes here
        pass

class QQCodeTab(object):
    def __init__(self, scintilla, editor):
        self.scintilla = scintilla
        self.editor = editor

    def save(self):
        # Option 1: Save dialog box and file system stuff goes here
        pass
4

1 に答える 1