質問編集履歴

1

2022/01/30 13:22

投稿

terala
terala

スコア2

test CHANGED
File without changes
test CHANGED
@@ -1,235 +1,39 @@
1
1
  ### 実現したいこと
2
2
 
3
-
4
-
5
3
  Python初心者です。
6
-
7
4
  wxPythonでアプリ上にExcelファイルをドラッグ&ドロップをすることで、ファイルの中身の計算式に間違いがないかチェックしてくれるアプリを作成しています。
8
-
9
5
  また、作業完了後にはメッセージボックスで知らせてくれる仕様になっています。
10
-
11
6
  同じアプリをvirtualboxでWindows10で動くように作成していますが、ファイルパス等一部違いがあるものの正常に動いているため、対処に困り質問させていただきました。
12
-
13
7
  お力添え頂けますと幸いです。
14
8
 
15
9
 
10
+ ### 発生している問題・エラーメッセージ
11
+ Excelファイルをドラッグ&ドロップすると、ターミナル上で下記の通りエラーが発生します。
12
+ まだ完成版ではないため、ソースコードには一部「print("-------")」のように途中で目印となるコードを挟んだみたりしてターミナルへの出力結果を確認しながらコーディングしていますが、ドラッグ&ドロップをすると下記のエラーメッセージしか出力されない状況です。
13
+ ```Python
14
+ TypeError: invalid result from FileDropTarget.OnDropFiles(), a 'bool' is expected not 'NoneType'
15
+
16
+ #FileDropTargetはクラス名、OnDropFile()はメソッド名です。※以下ソースコードに記載。
17
+ ```
16
18
 
17
19
 
20
+ ### 該当のソースコード
21
+ ```Python
22
+ import os
23
+ import sys
24
+ import wx
25
+ import wx.adv
26
+ import openpyxl as xl
27
+ from openpyxl import Workbook, load_workbook
28
+ import time
18
29
 
19
- ### 発生している問題・エラーメッセージ
20
-
21
- Excelファイルをドラッグ&ドロップすると、ターミナル上で下記の通りエラーが発生します。
22
-
23
- まだ完成版ではないため、ソースコードには一部「print("-------")」のように途中で目印となるコードを挟んだみたりしてターミナルへの出力結果を確認しながらコーディングしていますが、ドラッグ&ドロップをすると下記のエラーメッセージしか出力されない状況です。
24
-
25
- ```Python
26
-
27
- TypeError: invalid result from FileDropTarget.OnDropFiles(), a 'bool' is expected not 'NoneType'
28
-
29
-
30
-
31
- #FileDropTargetはクラス名、OnDropFile()はメソッド名です。※以下ソースコードに記載。
32
30
 
33
31
  ```
34
32
 
35
33
 
36
34
 
37
-
38
-
39
- ### 該当のソースコード
40
-
41
- ```Python
42
-
43
- import os
44
-
45
- import sys
46
-
47
- import wx
48
-
49
- import wx.adv
50
-
51
- import openpyxl as xl
52
-
53
- from openpyxl import Workbook, load_workbook
54
-
55
- import time
56
-
57
-
58
-
59
- sys.path.append(os.path.join(os.path.dirname(__file__), '/Users/ユーザー名/〜/仮想環境/lib/python3.9/site-packages'))
60
-
61
-
62
-
63
- 〜〜〜〜〜
64
-
65
-
66
-
67
- class FileDropTarget(wx.FileDropTarget):
68
-
69
-
70
-
71
- def __init__(self, window):
72
-
73
- wx.FileDropTarget.__init__(self)
74
-
75
- self.window = window
76
-
77
-
78
-
79
- def OnDropFiles(self, x, y, files):
80
-
81
- self.window.text_entry.SetLabel(files[0])
82
-
83
-
84
-
85
- r_path = files[0]
86
-
87
- def Check():
88
-
89
- print("-------")
90
-
91
- 〜〜〜〜〜
92
-
93
- if VC() == True and WC() == True and XC() == True:
94
-
95
- print(True)
96
-
97
- wx.MessageBox(u"Thanks!", u"A")
98
-
99
- print("-------")
100
-
101
- else:
102
-
103
- wx.MessageBox(u"見直してください。", u"A")
104
-
105
- print("見直してください。")
106
-
107
- if __name__=='__main__':
108
-
109
- Check()
110
-
111
-
112
-
113
- class App(wx.Frame):
114
-
115
- def on_erase_background(self, event):
116
-
117
- dc = event.GetDC()
118
-
119
-
120
-
121
- if not dc:
122
-
123
- dc = wx.ClientDC(self)
124
-
125
- rect = self.GetUpdateRegion().GetBox()
126
-
127
- dc.SetClippingRect(rect)
128
-
129
- dc.Clear()
130
-
131
- bmp = wx.Bitmap("/Users/ユーザー名/Desktop/bgi.png")
132
-
133
- dc.DrawBitmap(bmp)
134
-
135
-
136
-
137
- def __init__(self, parent, id, title):
138
-
139
- wx.Frame.__init__(self, parent, id, size=(300, 700), style=wx.DEFAULT_FRAME_STYLE)
140
-
141
- self.SetBackgroundStyle(wx.BG_STYLE_ERASE)
142
-
143
- self.frame = parent
144
-
145
-
146
-
147
- notebook = wx.Notebook(self, wx.ID_ANY)
148
-
149
- notebook.Bind(wx.EVT_ERASE_BACKGROUND, self.on_erase_background)
150
-
151
-
152
-
153
- panel = wx.Panel(notebook, wx.ID_ANY)
154
-
155
-
156
-
157
- notebook.InsertPage(0, panel, 'Check')
158
-
159
-
160
-
161
- label1 = wx.StaticText(panel, wx.ID_ANY, style=wx.SIMPLE_BORDER)
162
-
163
- date_time = wx.DateTime.Now()
164
-
165
- label2 = wx.StaticText(panel, wx.ID_ANY, label=time.strftime(r'%Y/%m/%d'), style=wx.TE_RIGHT)
166
-
167
- self.timer = wx.Timer(self)
168
-
169
- self.timer.Start(1000)
170
-
171
-
172
-
173
- box = wx.StaticBox(panel, wx.ID_ANY, 'ex')
174
-
175
-
176
-
177
- label1.SetDropTarget(FileDropTarget(self))
178
-
179
-
180
-
181
- self.text_entry = wx.TextCtrl(panel, wx.ID_ANY)
182
-
183
-
184
-
185
- layout = wx.StaticBoxSizer(box, wx.VERTICAL)
186
-
187
- layout.Add(label1, flag=wx.EXPAND | wx.ALL, border=10, proportion=1)
188
-
189
- layout.Add(self.text_entry, flag=wx.EXPAND | wx.ALL, border=10, proportion=1)
190
-
191
- layout.Add(label2, flag=wx.EXPAND | wx.ALL, border=10, proportion=1)
192
-
193
- panel.SetSizer(layout)
194
-
195
-
196
-
197
- self.Show()
198
-
199
-
200
-
201
-
202
-
203
- app = wx.App()
204
-
205
- App(None, -1, 'タイトル')
206
-
207
- app.MainLoop()
208
-
209
-
210
-
211
- def resource_path(relative):
212
-
213
- if hasattr(sys, "_MEIPASS"):
214
-
215
- return os.path.join(sys._MEIPASS, relative)
216
-
217
- return os.path.join(relative)
218
-
219
- ```
220
-
221
-
222
-
223
-
224
-
225
-
226
-
227
35
  ### 補足情報
228
-
229
36
  ◆操作環境
230
-
231
37
  ・PC:Macbook Air
232
-
233
38
  ・OS:MacOS High Sierra
234
-
235
39
  ・言語:Python 3.9