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