質問編集履歴

1 情報を加えました

pussy_pussy

pussy_pussy score 9

2020/07/21 18:48  投稿

PysimpleGUIでの他のソースファイルのclassのimport
### 前提・実現したいこと
PysimpleGUIで
同じ階層にいるソースファイルのクラスをインポートしたい
(3つとも同じ階層)
### 発生している問題・エラーメッセージ
```
NameError: name 'sg' is not defined
となる。
(あとまだ読み込めていないので予想ですが、test.pyのインスタンスpopup2が認識されるのか疑問です。
クラスTestpopupをインポートしているだけなので。どうすればよいでしょうか)
```
### 該当のソースコード
(上から、main.py,test.py,point.py)
```
import PySimpleGUI as sg
from test import TestPopup
layout = [
   [sg.Text("覚えたい単語:"),sg.InputText()],
   [sg.Text("その意味:"),sg.InputText()],
   [sg.Button("追加")],
   [sg.Button("削除")],
   [sg.Button("テスト開始")]
]
window = sg.Window("単語暗記", layout) #タイトル
d ={}
def listadd():
   d[values[0]]=values[1]
   print(d)
   
def listdelete():
   del d[values[0]]
   print(d)
while True:
   event, values = window.read()
   if event == sg.WIN_CLOSED or event == 'Cancel':
       break
   if event == "追加":
       listadd()
   if event == "削除":
       listdelete()
   if event =="テスト開始":
       popup1 = TestPopup()
       popup1.Move()
           
       
window.close()
################################
import PySimpleGUI as sg
from point import PointPopup
class TestPopup():
   def __init__(self):
       self.layout = [
       [sg.Text("TEST",size=(20,1))],
       [sg.Button("ファイル参照")],
       [sg.Button("終了")],
       ]
       self.window =sg.Window(title="Test",layout=self.layout)
   
   def Move(self):
       while True:
           event,values = self.window.read()
           if event == sg.WIN_CLOSED:
             break
           if event == "ファイル参照":
               sg.popup_get_file("ファイル")
           if event == "終了":
               popup2 = PointPopup()
               popup2.Finish()
       self.window.close()
################################
import PySimpleGUI as sg
class PointPopup():
   def __init__(self):
       self.layout = [
       [sg.Text("POINT",size=(20,1))],
       [sg.Button("確認")],
       ]
       self.window =sg.Window(title="Point",layout=self.layout)
   
   def Finish(self):
       while True:
           event,values = self.window.read()
           if event == "確認" or event == sg.WIN_CLOSED:
             break
       self.window.close()
```
  • Python 3.x

    16674 questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る