teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

7

画像追加

2020/05/16 11:03

投稿

saya24
saya24

スコア258

title CHANGED
File without changes
body CHANGED
@@ -138,4 +138,8 @@
138
138
  ```
139
139
  ### 2020/05/15 23:12追加
140
140
  windowアプリケーションではない位置づけにすると、出力ウィンドウやコンソールにエラー内容が表示される(コードは反転してくれません)
141
- ![イメージ説明](d0224b9be00223a608dfa526dfafe39c.png)
141
+ ![イメージ説明](d0224b9be00223a608dfa526dfafe39c.png)
142
+
143
+ ### 2020/05/16 20:05追加
144
+ VisualStudio上でプロジェクトをWindowsアプリケーションと位置付ける・位置付けない
145
+ ![これ](02812114452a18bbc69d94e46ef642d8.png)

6

画像追加

2020/05/16 11:03

投稿

saya24
saya24

スコア258

title CHANGED
File without changes
body CHANGED
@@ -135,4 +135,7 @@
135
135
  # 格納したTkインスタンスのmainloopで画面を起こす
136
136
  app.mainloop()
137
137
 
138
- ```
138
+ ```
139
+ ### 2020/05/15 23:12追加
140
+ windowアプリケーションではない位置づけにすると、出力ウィンドウやコンソールにエラー内容が表示される(コードは反転してくれません)
141
+ ![イメージ説明](d0224b9be00223a608dfa526dfafe39c.png)

5

コード追加

2020/05/15 14:12

投稿

saya24
saya24

スコア258

title CHANGED
File without changes
body CHANGED
@@ -90,8 +90,8 @@
90
90
  self.this['cursor'] = 'watch'
91
91
  self.update() #画面更新
92
92
 
93
- param = {"data1": 9, "data2": "hogehoge"}
93
+ param = {"data1": 9, "data2": "hoge"}
94
- r = requests.post("http://99.99.99.99/hogehoge/test01.php", data=param)
94
+ r = requests.post("http://99.99.99.99/hoge/test01.php", data=param)
95
95
  if (r.status_code == 200):
96
96
  tkMB.showinfo("Result","Finished !", parent=self.this)
97
97
  else:

4

コード追加

2020/05/15 07:45

投稿

saya24
saya24

スコア258

title CHANGED
File without changes
body CHANGED
@@ -16,4 +16,123 @@
16
16
 
17
17
 
18
18
  ### 2020/05/14 21;54 追加
19
- ![イメージ説明](5603fdd16794692c1f8720554d31342b.png)
19
+ ![イメージ説明](5603fdd16794692c1f8720554d31342b.png)
20
+
21
+ ### 2020/05/15 16:35 追加
22
+ たとえば ありえないURLへアクセスするrequest文を含むプログラムでも、動作の異常検知はapp.mainloop()の部分
23
+ ```Python
24
+ from tkinter import *
25
+ import tkinter.ttk as ttk
26
+ import tkinter.messagebox as tkMB
27
+ import tkinter.scrolledtext as tksc
28
+ import math
29
+ import requests
30
+
31
+
32
+
33
+ class Apprication(ttk.Frame):
34
+
35
+ def __init__(self, app):
36
+ super().__init__(app)
37
+ self.pack()
38
+
39
+ btn = ttk.Button(self, text="Sub", command=self.openDialog)
40
+ btn.grid(row=1, column=0)
41
+
42
+
43
+
44
+ # 子画面開く
45
+ def openDialog(self):
46
+
47
+ self.dialog = Toplevel(self)
48
+ self.dialog.title("Sub Menu")
49
+
50
+ #フォームサイズを実行端末から導き、ド真中に配置表示
51
+ lw = math.ceil(ww * 0.408)
52
+ lh = math.ceil(wh * 0.477)
53
+ self.dialog.geometry(str(lw)+"x"+str(lh)+"+"+str(int(ww/2-lw/2))+"+"+str(int(wh/2-lh/2)) )
54
+
55
+ self.dialog.configure(bg="#F0FFFF")
56
+ self.dialog.resizable(0,0)
57
+ self.dialog.protocol('WM_DELETE_WINDOW', (lambda: 'pass')())
58
+
59
+ # 当該ダイアログのカーソルを変更し、関数側でもカーソルを変更できるように
60
+ self.dialog['cursor'] = 'hand2'
61
+ self.this = self.dialog
62
+
63
+ # modalに
64
+ self.dialog.grab_set()
65
+
66
+
67
+
68
+ # ★WebAPIアクセスボタン★
69
+ btn1 = Button(self.dialog, text='Execute', width=10, command=self.webAPI)
70
+ btn1.grid(row=2, columnspan=11, pady=(0, 20))
71
+
72
+ # 閉じるボタン
73
+ btn3 = Button(self.dialog, text='Quit', command=self.closeDialog, width=10)
74
+ btn3.grid(row=5, column=10, pady=10, padx=(0,10))
75
+
76
+
77
+ self.dialog.grid_rowconfigure(1, weight=1)
78
+ self.dialog.grid_rowconfigure(3, weight=1)
79
+ self.dialog.grid_columnconfigure(2, weight=1)
80
+
81
+
82
+
83
+
84
+ # 子画面閉じる
85
+ def closeDialog(self):
86
+ self.dialog.destroy()
87
+
88
+ # WebAPIアクセス
89
+ def webAPI(self):
90
+ self.this['cursor'] = 'watch'
91
+ self.update() #画面更新
92
+
93
+ param = {"data1": 9, "data2": "hogehoge"}
94
+ r = requests.post("http://99.99.99.99/hogehoge/test01.php", data=param)
95
+ if (r.status_code == 200):
96
+ tkMB.showinfo("Result","Finished !", parent=self.this)
97
+ else:
98
+ tkMB.showwarning("Result", "[" + str(r.status_code) + "] error occured !", parent=self.this)
99
+
100
+ self.this['cursor'] = 'hand2'
101
+
102
+
103
+
104
+
105
+ if __name__ == '__main__':
106
+
107
+ #世間でいうrootをappとしています
108
+ app = Tk()
109
+
110
+ #実行端末の画面サイズを取得
111
+ ww = app.winfo_screenwidth()
112
+ wh = app.winfo_screenheight()
113
+
114
+ app.update_idletasks()
115
+
116
+ #フォームサイズを実行端末から導き、ド真中に配置表示
117
+ lw = math.ceil(ww * 0.208)
118
+ lh = math.ceil(wh * 0.277)
119
+ app.geometry(str(lw)+"x"+str(lh)+"+"+str(int(ww/2-lw/2))+"+"+str(int(wh/2-lh/2)) )
120
+
121
+ #タイトルを指定
122
+ app.title("Main Menu")
123
+
124
+ #フォームの最大化、×ボタン操作を無効化
125
+ app.resizable(0,0)
126
+ #app.protocol('WM_DELETE_WINDOW', (lambda: 'pass')())
127
+
128
+ # カーソル変更
129
+ app["cursor"] = "hand2"
130
+
131
+ app.configure(bg="#F0FFFF")
132
+
133
+ # フレームを作成する
134
+ frame = Apprication(app)
135
+ # 格納したTkインスタンスのmainloopで画面を起こす
136
+ app.mainloop()
137
+
138
+ ```

3

画像追加

2020/05/15 07:42

投稿

saya24
saya24

スコア258

title CHANGED
File without changes
body CHANGED
@@ -12,4 +12,8 @@
12
12
  現在は エラーの発生箇所の特定を行いやすいよう、少しコーディングを終えては こまめにデバッグ実行を繰り返す措置を行っています。
13
13
  VisualStudioの問題でしょうか? 
14
14
 
15
- 何かの設定が足りないがため 他人様より開発がしづらい環境で作業を行っていないか?と 少々気になりましたので 問い合わせさせて頂きました。
15
+ 何かの設定が足りないがため 他人様より開発がしづらい環境で作業を行っていないか?と 少々気になりましたので 問い合わせさせて頂きました。
16
+
17
+
18
+ ### 2020/05/14 21;54 追加
19
+ ![イメージ説明](5603fdd16794692c1f8720554d31342b.png)

2

タイトル変更

2020/05/14 12:57

投稿

saya24
saya24

スコア258

title CHANGED
@@ -1,1 +1,1 @@
1
- Python: 開発時(デバッグ実行時)に検出されるSyntaxエラーの解析方法を 効率化したい
1
+ Python: 開発時(デバッグ実行時)に検出されるエラーの解析方法を 効率化したい
body CHANGED
File without changes

1

コード追加

2020/05/14 07:23

投稿

saya24
saya24

スコア258

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,10 @@
1
1
  現在自分が行っている開発がTkInterのライブラリを利用していること、と
2
2
  開発環境は人それぞれであること、を理由に若干回答はつきにくい可能性がありますが、これからの開発作業を考慮し、恥を忍んでお聞きします。
3
3
  ![画面イメージを生成できない時](ce5157cb0f55a2779efe157badd7fe64.png)
4
+ ```Python
5
+ btn2 = Button(self.dialog, width=10, image="images\excel.png", command=outCsv)
6
+ btn2.grid(row=5, column=9, pady=10)
7
+ ```
4
8
 
5
9
  今回、モーダル側のボタンイメージを変更する質素な変更を加えたのですが(これはこれで謎...)、こういったエラーの表示のされ方しかなされません。
6
10
  もう少し、具体的にエラー内容・問題箇所を示すようなことは不可能でしょうか?