質問編集履歴
2
PyPostTblの定義を追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
既に同じ質問を3回目となる投稿です、投稿ルール、「編集」、「削除」等の処理方法が今一つ理解不足でご迷惑をかけています。(これからは言い訳です)投稿のコード部分のインデントが質問入力画面では有るにもかかわらず新着の質問で表示させると全て削除され左側揃えとなっています。2回目投稿ではご指摘で<code>で挿入したのですが頭尾にある「'''」を文面作成フォームで削除しました(入力画面ではインデント有)。この為と思われますが投稿の様にすべて左揃えになっていました。
|
2
2
|
下記文面はコード部分が入力フォームとプレビュー画面ともにインデント有で表示されています。
|
3
3
|
正常に表示されるようでしたら、よろしくお願いします。
|
4
|
+
【追記】ご指摘によりPyPostTblの定義を追加してあります
|
4
5
|
|
5
6
|
(1) //////// 初心者です。PYTHONでファイルを分割(親子関係で)したいのですがエラーが発生。対策を教えて下さい。
|
6
7
|
又、修正した方が良い部分があればご指摘ください。
|
@@ -189,9 +190,31 @@
|
|
189
190
|
for row in r:
|
190
191
|
print(row[2],row[4])
|
191
192
|
```
|
193
|
+
|
192
|
-
4) //////////// 分割前はフォームが表示された後、「フリガナ」を入力し「検索」ボタンをクリックすると結果が表示されます。
|
194
|
+
(4) //////////// 分割前はフォームが表示された後、「フリガナ」を入力し「検索」ボタンをクリックすると結果が表示されます。
|
193
195
|
これに対し分割後はフォームが表示された後、「フリガナ」を入力する以前に全登録データが表示されます。その後「フリガナ」を入力し「検索」ボタンをクリックすると下記エラーが表示され検索結果は表示されません
|
194
196
|
raceback (most recent call last):
|
195
197
|
File "C:\Users\akiteru\AppData\Local\Programs\Python\Python38\lib\tkinter\init.py", line 1883, in call
|
196
198
|
return self.func(*args)
|
197
|
-
TypeError: show_datalist() missing 1 required positional argument: 'self'
|
199
|
+
TypeError: show_datalist() missing 1 required positional argument: 'self'
|
200
|
+
|
201
|
+
(5) /////// PyPostTblの定義
|
202
|
+
DB Browser for SQLiteで表示されるテーブルの定義は下記の通りです。
|
203
|
+
|
204
|
+
CREATE TABLE "PyPostTbl" (
|
205
|
+
"Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
206
|
+
"KuwakeId" INTEGER NOT NULL,
|
207
|
+
"Name" TEXT NOT NULL,
|
208
|
+
"Huri" TEXT NOT NULL UNIQUE,
|
209
|
+
"Add1" TEXT,
|
210
|
+
"Add2" TEXT,
|
211
|
+
"Add3" TEXT,
|
212
|
+
"PostNo" TEXT,
|
213
|
+
"Tel1" TEXT,
|
214
|
+
"Tel2" TEXT,
|
215
|
+
"Email" TEXT,
|
216
|
+
"Nennga" TEXT,
|
217
|
+
"Seibo" TEXT,
|
218
|
+
"Bikou1" TEXT,
|
219
|
+
"Bikou2" TEXT
|
220
|
+
);
|
1
<code>を使用しコード部分のインデックスが表示される様に修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,14 +1,21 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
既に同じ質問を3回目となる投稿です、投稿ルール、「編集」、「削除」等の処理方法が今一つ理解不足でご迷惑をかけています。(これからは言い訳です)投稿のコード部分のインデントが質問入力画面では有るにもかかわらず新着の質問で表示させると全て削除され左側揃えとなっています。2回目投稿ではご指摘で<code>で挿入したのですが頭尾にある「'''」を文面作成フォームで削除しました(入力画面ではインデント有)。この為と思われますが投稿の様にすべて左揃えになっていました。
|
2
|
+
下記文面はコード部分が入力フォームとプレビュー画面ともにインデント有で表示されています。
|
3
|
+
正常に表示されるようでしたら、よろしくお願いします。
|
4
4
|
|
5
|
+
(1) //////// 初心者です。PYTHONでファイルを分割(親子関係で)したいのですがエラーが発生。対策を教えて下さい。
|
6
|
+
又、修正した方が良い部分があればご指摘ください。
|
7
|
+
|
8
|
+
(2) /////// 下記ソースコードは正常に動作します。これをメインプログラム(parent.py)と画面作成部分(child1.py)とボタンクリック動作部分(child2.py)にファイルに分割したい。
|
9
|
+
|
10
|
+
(3) 正常に動作する元コード及びエラーが出る三分割後コードは下記の通りです
|
11
|
+
|
5
12
|
////////////元コード(original.py):正常に動作する
|
13
|
+
```
|
6
|
-
#
|
14
|
+
#*** original.py
|
7
15
|
import tkinter as tk
|
8
16
|
import tkinter.ttk as ttk
|
9
17
|
import sqlite3
|
10
18
|
|
11
|
-
|
12
19
|
class MainWindow(ttk.Frame):
|
13
20
|
def __init__(self, parent):
|
14
21
|
super(MainWindow, self).__init__(parent)
|
@@ -41,7 +48,7 @@
|
|
41
48
|
self.entry1_1.pack(side="left")
|
42
49
|
|
43
50
|
# 検索ボタンの設定
|
44
|
-
self.button1_4 = tk.Button(self.tab1,text="検索",font
|
51
|
+
self.button1_4 = tk.Button(self.tab1,text="検 索",font("",14),width=5,bg="gray",command=self.show_datalist)
|
45
52
|
self.button1_4.pack()
|
46
53
|
|
47
54
|
#**********データベース接続
|
@@ -76,10 +83,11 @@
|
|
76
83
|
window = MainWindow(application)
|
77
84
|
application.protocol('WM_DELETE_WINDOW', window.quit)
|
78
85
|
application.mainloop()
|
86
|
+
```
|
79
87
|
|
80
|
-
|
88
|
+
/////////// エラーとなる三分割後コード(parent.py child1.py child2.py)
|
81
|
-
|
82
|
-
|
89
|
+
///親コード(parent.py)
|
90
|
+
```
|
83
91
|
# ******* parent.py
|
84
92
|
import tkinter as tk
|
85
93
|
import tkinter.ttk as ttk
|
@@ -88,7 +96,6 @@
|
|
88
96
|
import child1 as ch1
|
89
97
|
import child2 as ch2
|
90
98
|
|
91
|
-
|
92
99
|
class MainWindow(ttk.Frame):
|
93
100
|
def __init__(self, parent):
|
94
101
|
super(MainWindow, self).__init__(parent)
|
@@ -106,7 +113,6 @@
|
|
106
113
|
# ****検索実行ボタンが押された処理
|
107
114
|
ch2.show_datalist(self)
|
108
115
|
|
109
|
-
|
110
116
|
def quit(self, event=None):
|
111
117
|
# 終了時の処理
|
112
118
|
self.conn.close()
|
@@ -118,9 +124,10 @@
|
|
118
124
|
window = MainWindow(application)
|
119
125
|
application.protocol('WM_DELETE_WINDOW', window.quit)
|
120
126
|
application.mainloop()
|
121
|
-
|
127
|
+
```
|
122
|
-
|
128
|
+
//////子コード1(child1.py)
|
123
|
-
|
129
|
+
```
|
130
|
+
#**** child1.py
|
124
131
|
import tkinter as tk
|
125
132
|
import tkinter.ttk as ttk
|
126
133
|
import sqlite3
|
@@ -154,8 +161,11 @@
|
|
154
161
|
self.button1_4 = tk.Button(self.tab1,text="検索",font=("",14),width=5,bg="gray",command=ch2.show_datalist)
|
155
162
|
self.button1_4.pack()
|
156
163
|
|
164
|
+
|
165
|
+
```
|
157
|
-
|
166
|
+
//// 子コード2(child2.py)
|
167
|
+
```
|
158
|
-
# ****
|
168
|
+
# **** child2.py
|
159
169
|
import tkinter as tk
|
160
170
|
import tkinter.ttk as ttk
|
161
171
|
import sqlite3
|
@@ -178,10 +188,10 @@
|
|
178
188
|
else:
|
179
189
|
for row in r:
|
180
190
|
print(row[2],row[4])
|
181
|
-
|
191
|
+
```
|
182
|
-
|
192
|
+
4) //////////// 分割前はフォームが表示された後、「フリガナ」を入力し「検索」ボタンをクリックすると結果が表示されます。
|
183
|
-
|
193
|
+
これに対し分割後はフォームが表示された後、「フリガナ」を入力する以前に全登録データが表示されます。その後「フリガナ」を入力し「検索」ボタンをクリックすると下記エラーが表示され検索結果は表示されません
|
184
194
|
raceback (most recent call last):
|
185
|
-
|
195
|
+
File "C:\Users\akiteru\AppData\Local\Programs\Python\Python38\lib\tkinter\init.py", line 1883, in call
|
186
|
-
|
196
|
+
return self.func(*args)
|
187
197
|
TypeError: show_datalist() missing 1 required positional argument: 'self'
|