現在自分が行っている開発がTkInterのライブラリを利用していること、と
開発環境は人それぞれであること、を理由に若干回答はつきにくい可能性がありますが、これからの開発作業を考慮し、恥を忍んでお聞きします。
Python
1btn2 = Button(self.dialog, width=10, image="images\excel.png", command=outCsv) 2btn2.grid(row=5, column=9, pady=10)
今回、モーダル側のボタンイメージを変更する質素な変更を加えたのですが(これはこれで謎...)、こういったエラーの表示のされ方しかなされません。
もう少し、具体的にエラー内容・問題箇所を示すようなことは不可能でしょうか?
現在は エラーの発生箇所の特定を行いやすいよう、少しコーディングを終えては こまめにデバッグ実行を繰り返す措置を行っています。
VisualStudioの問題でしょうか?
何かの設定が足りないがため 他人様より開発がしづらい環境で作業を行っていないか?と 少々気になりましたので 問い合わせさせて頂きました。
2020/05/14 21;54 追加
2020/05/15 16:35 追加
たとえば ありえないURLへアクセスするrequest文を含むプログラムでも、動作の異常検知はapp.mainloop()の部分
Python
1from tkinter import * 2import tkinter.ttk as ttk 3import tkinter.messagebox as tkMB 4import tkinter.scrolledtext as tksc 5import math 6import requests 7 8 9 10class Apprication(ttk.Frame): 11 12 def __init__(self, app): 13 super().__init__(app) 14 self.pack() 15 16 btn = ttk.Button(self, text="Sub", command=self.openDialog) 17 btn.grid(row=1, column=0) 18 19 20 21 # 子画面開く 22 def openDialog(self): 23 24 self.dialog = Toplevel(self) 25 self.dialog.title("Sub Menu") 26 27 #フォームサイズを実行端末から導き、ド真中に配置表示 28 lw = math.ceil(ww * 0.408) 29 lh = math.ceil(wh * 0.477) 30 self.dialog.geometry(str(lw)+"x"+str(lh)+"+"+str(int(ww/2-lw/2))+"+"+str(int(wh/2-lh/2)) ) 31 32 self.dialog.configure(bg="#F0FFFF") 33 self.dialog.resizable(0,0) 34 self.dialog.protocol('WM_DELETE_WINDOW', (lambda: 'pass')()) 35 36 # 当該ダイアログのカーソルを変更し、関数側でもカーソルを変更できるように 37 self.dialog['cursor'] = 'hand2' 38 self.this = self.dialog 39 40 # modalに 41 self.dialog.grab_set() 42 43 44 45 # ★WebAPIアクセスボタン★ 46 btn1 = Button(self.dialog, text='Execute', width=10, command=self.webAPI) 47 btn1.grid(row=2, columnspan=11, pady=(0, 20)) 48 49 # 閉じるボタン 50 btn3 = Button(self.dialog, text='Quit', command=self.closeDialog, width=10) 51 btn3.grid(row=5, column=10, pady=10, padx=(0,10)) 52 53 54 self.dialog.grid_rowconfigure(1, weight=1) 55 self.dialog.grid_rowconfigure(3, weight=1) 56 self.dialog.grid_columnconfigure(2, weight=1) 57 58 59 60 61 # 子画面閉じる 62 def closeDialog(self): 63 self.dialog.destroy() 64 65 # WebAPIアクセス 66 def webAPI(self): 67 self.this['cursor'] = 'watch' 68 self.update() #画面更新 69 70 param = {"data1": 9, "data2": "hoge"} 71 r = requests.post("http://99.99.99.99/hoge/test01.php", data=param) 72 if (r.status_code == 200): 73 tkMB.showinfo("Result","Finished !", parent=self.this) 74 else: 75 tkMB.showwarning("Result", "[" + str(r.status_code) + "] error occured !", parent=self.this) 76 77 self.this['cursor'] = 'hand2' 78 79 80 81 82if __name__ == '__main__': 83 84 #世間でいうrootをappとしています 85 app = Tk() 86 87 #実行端末の画面サイズを取得 88 ww = app.winfo_screenwidth() 89 wh = app.winfo_screenheight() 90 91 app.update_idletasks() 92 93 #フォームサイズを実行端末から導き、ド真中に配置表示 94 lw = math.ceil(ww * 0.208) 95 lh = math.ceil(wh * 0.277) 96 app.geometry(str(lw)+"x"+str(lh)+"+"+str(int(ww/2-lw/2))+"+"+str(int(wh/2-lh/2)) ) 97 98 #タイトルを指定 99 app.title("Main Menu") 100 101 #フォームの最大化、×ボタン操作を無効化 102 app.resizable(0,0) 103 #app.protocol('WM_DELETE_WINDOW', (lambda: 'pass')()) 104 105 # カーソル変更 106 app["cursor"] = "hand2" 107 108 app.configure(bg="#F0FFFF") 109 110 # フレームを作成する 111 frame = Apprication(app) 112 # 格納したTkインスタンスのmainloopで画面を起こす 113 app.mainloop() 114
2020/05/15 23:12追加
windowアプリケーションではない位置づけにすると、出力ウィンドウやコンソールにエラー内容が表示される(コードは反転してくれません)
2020/05/16 20:05追加
回答1件
あなたの回答
tips
プレビュー