以下の理由が機能しない理由を説明してください。 環境:Python 3.4、Gtk3.0、Pythonの限られた経験 ファイルselectcontact.pyには、いくつかのレコードの1つを選択し、そのキーを親プロセスに戻して少なくとも3つのアクションのうちの1つで使用するコードが含まれています。親クラスからPythonファイル間のデータ転送
コードスニペット:
….
self.cindex = 0
….
def editcontact_clicked (self, menuitem):
import selectcontact
selectcontact.SelectContactGUI(self)
print ('From Manage ', self.cindex)
if self.cindex > 0:
import editcontact
editcontact.EditContactGUI(self.db, self.cindex)
...。 selectcontactから
コードスニペット: クラスSelectContactGUI: DEF のinit(自己、parent_class):
self.builder = Gtk.Builder()
self.builder.add_from_file(UI_FILE)
self.builder.connect_signals(self)
self.parent_class = parent_class
self.db = parent_class.db
self.cursor = self.db.cursor(cursor_factory = psycopg2.extras.NamedTupleCursor)
self.contact_store = self.builder.get_object('contact_store')
self.window = self.builder.get_object('window1')
self.window.show_all()
def select_contact_path(self, path):
self.builder.get_object('treeview_selection1').select_path(path)
def contact_treerow_changed (self, treeview):
selection = self.builder.get_object('treeview_selection1')
model, path = selection.get_selected()
if path != None:
self.parent_class.cindex = model[path][0]
print ('From select ', self.parent_class.cindex)
self.window.destroy()
...。
window1は "モーダル"と宣言されていますので、selectcontactの呼び出しがサブルーチンとして機能することを期待していたので、コントロールが親に返されるまでeditcontactは呼び出されませんでした。 contact_storeが正しく設定されているため、parent_classビットが機能します。しかし、親に戻っても正常に動作しないと思われ、2つの印刷文が間違った順序で発生します。 管理0から から選択2 感謝の意を表明します。 Graeme