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

質問編集履歴

8

コードの変更があったため編集しました。

2021/03/27 13:54

投稿

python_k
python_k

スコア7

title CHANGED
File without changes
body CHANGED
@@ -22,10 +22,10 @@
22
22
 
23
23
  class MainMenu(tkinter.Frame):
24
24
  def __init__(self,master):
25
- super().__init__(master)
25
+ super().__init__(master,width=450,height=400)
26
26
  self.pack()
27
27
  self.master.title('data')
28
- self.master.minsize(width=450,height=400)
28
+ self.master.minsize()
29
29
  self.CreateWindow()
30
30
 
31
31
  def CreateWindow(self):
@@ -35,21 +35,21 @@
35
35
  self.sptxt4=tkinter.StringVar()
36
36
  self.sptxt5=tkinter.StringVar()
37
37
  self.sptxt6=tkinter.StringVar()
38
- self.stlbl=tkinter.Label(text='from')
38
+ self.stlbl=tkinter.Label(self,text='from')
39
- self.endlbl=tkinter.Label(text='to')
39
+ self.endlbl=tkinter.Label(self,text='to')
40
- self.datelbl1=tkinter.Label(text='/')
40
+ self.datelbl1=tkinter.Label(self,text='/')
41
- self.datelbl2=tkinter.Label(text='/')
41
+ self.datelbl2=tkinter.Label(self,text='/')
42
42
  self.styear=tkinter.Spinbox(self,textvariable=self.sptxt1,from_=2021,to=2999,increment=1,state='readonly',width=20)
43
43
  self.stmonth=tkinter.Spinbox(self,textvariable=self.sptxt2,from_=1,to=12,increment=1,state='readonly',width=10)
44
44
  self.stday=tkinter.Spinbox(self,textvariable=self.sptxt3,from_=1,to=31,increment=1,state='readonly',width=10)
45
- self.datelbl3=tkinter.Label(text='/')
45
+ self.datelbl3=tkinter.Label(self,text='/')
46
- self.datelbl4=tkinter.Label(text='/')
46
+ self.datelbl4=tkinter.Label(self,text='/')
47
47
  self.endyear=tkinter.Spinbox(self,textvariable=self.sptxt4,from_=2021,to=2999,increment=1,state='readonly',width=20)
48
48
  self.endmonth=tkinter.Spinbox(self,textvariable=self.sptxt5,from_=1,to=12,increment=1,state='readonly',width=10)
49
49
  self.endday=tkinter.Spinbox(self,textvariable=self.sptxt6,from_=1,to=31,increment=1,state='readonly',width=10)
50
50
 
51
- self.sttime=tkinter.Entry(width=20)
51
+ self.sttime=tkinter.Entry(self,width=20)
52
- self.endtime=tkinter.Entry(width=20)
52
+ self.endtime=tkinter.Entry(self,width=20)
53
53
 
54
54
  self.stlbl.place(x=10,y=20)
55
55
  self.styear.place(x=40,y=60,width=80,height=30)
@@ -115,8 +115,10 @@
115
115
 
116
116
 
117
117
  def CreateNewWindow(self):
118
- self.newwindow=tkinter.Toplevel(self.master)
118
+ win2=tkinter.Toplevel(self.master)
119
- self.app=NewWindow(self.newwindow)
119
+ app=NewWindow(win2)
120
+ win2.attributes('-topmost',True)
121
+ win2.grab_set()
120
122
 
121
123
 
122
124
  class NewWindow(tkinter.Frame):

7

コードの変更があったため編集しました。

2021/03/27 13:54

投稿

python_k
python_k

スコア7

title CHANGED
File without changes
body CHANGED
@@ -29,18 +29,24 @@
29
29
  self.CreateWindow()
30
30
 
31
31
  def CreateWindow(self):
32
+ self.sptxt1=tkinter.StringVar()
33
+ self.sptxt2=tkinter.StringVar()
34
+ self.sptxt3=tkinter.StringVar()
35
+ self.sptxt4=tkinter.StringVar()
36
+ self.sptxt5=tkinter.StringVar()
37
+ self.sptxt6=tkinter.StringVar()
32
38
  self.stlbl=tkinter.Label(text='from')
33
39
  self.endlbl=tkinter.Label(text='to')
34
40
  self.datelbl1=tkinter.Label(text='/')
35
41
  self.datelbl2=tkinter.Label(text='/')
36
- self.styear=tkinter.Spinbox(self,from_=2021,to=2999,increment=1,state='readonly',width=20)
42
+ self.styear=tkinter.Spinbox(self,textvariable=self.sptxt1,from_=2021,to=2999,increment=1,state='readonly',width=20)
37
- self.stmonth=Spinbox(self,from_=1,to=12,increment=1,state='readonly',width=10)
43
+ self.stmonth=tkinter.Spinbox(self,textvariable=self.sptxt2,from_=1,to=12,increment=1,state='readonly',width=10)
38
- self.stday=Spinbox(self,from_=1,to=31,increment=1,state='readonly',width=10)
44
+ self.stday=tkinter.Spinbox(self,textvariable=self.sptxt3,from_=1,to=31,increment=1,state='readonly',width=10)
39
45
  self.datelbl3=tkinter.Label(text='/')
40
46
  self.datelbl4=tkinter.Label(text='/')
41
- self.endyear=Spinbox(self,from_=2021,to=2999,increment=1,state='readonly',width=20)
47
+ self.endyear=tkinter.Spinbox(self,textvariable=self.sptxt4,from_=2021,to=2999,increment=1,state='readonly',width=20)
42
- self.endmonth=Spinbox(self,from_=1,to=12,increment=1,state='readonly',width=10)
48
+ self.endmonth=tkinter.Spinbox(self,textvariable=self.sptxt5,from_=1,to=12,increment=1,state='readonly',width=10)
43
- self.endday=Spinbox(self,from_=1,to=31,increment=1,state='readonly',width=10)
49
+ self.endday=tkinter.Spinbox(self,textvariable=self.sptxt6,from_=1,to=31,increment=1,state='readonly',width=10)
44
50
 
45
51
  self.sttime=tkinter.Entry(width=20)
46
52
  self.endtime=tkinter.Entry(width=20)

6

コードの変更があったため編集しました。

2021/03/27 13:11

投稿

python_k
python_k

スコア7

title CHANGED
File without changes
body CHANGED
@@ -76,28 +76,27 @@
76
76
  self.inputRule()
77
77
 
78
78
  def inputRule(self):
79
- self.var=tkinter.StringVar()
79
+ self.var1=tkinter.StringVar()
80
80
  self.stlbl["font"]=("",20)
81
81
  self.styear["font"]=("",20)
82
82
  self.stmonth["font"]=("",20)
83
83
  self.stday["font"]=("",20)
84
84
  self.datelbl1["font"]=("",20)
85
85
  self.datelbl2["font"]=("",20)
86
- self.var.set("00:00")
86
+ self.var1.set("00:00")
87
- self.sttime["text"]=self.var
87
+ self.sttime["text"]=self.var1
88
88
  self.sttime["font"]=("",20)
89
89
 
90
- self.var=tkinter.StringVar()
90
+ self.var2=tkinter.StringVar()
91
91
  self.endlbl["font"]=("",20)
92
92
  self.endyear["font"]=("",20)
93
93
  self.endmonth["font"]=("",20)
94
94
  self.endday["font"]=("",20)
95
95
  self.datelbl3["font"]=("",20)
96
96
  self.datelbl4["font"]=("",20)
97
- self.var.set("23:59")
97
+ self.var2.set("23:59")
98
- self.endtime["text"]=self.var
98
+ self.endtime["text"]=self.var2
99
99
  self.endtime["font"]=("",20)
100
-
101
100
  def getText(self):
102
101
  date1=self.styear.get()+ '/'+ self.stmonth.get()+ '/'+ self.stday.get()+ ' '+self.sttime.get()
103
102
  date2=self.endyear.get()+ '/'+self.endmonth.get()+ '/'+ self.endday.get()+' '+self.endtime.get()
@@ -117,26 +116,39 @@
117
116
  class NewWindow(tkinter.Frame):
118
117
  def __init__(self,master):
119
118
 
120
- super().__init__(master,width=300,height=200)
119
+ super().__init__(master,width=400,height=200)
121
120
  self.pack()
122
121
  self.master.title('save')
122
+
123
123
  self.create_save()
124
124
 
125
125
  def create_save(self):
126
126
 
127
127
  self.save_path=tkinter.Entry(self,width=20)
128
- self.save_path.place(x=10,y=10,height=30,width=70)
128
+ self.save_path.place(x=10,y=10,height=30,width=210)
129
129
  self.path_button=ttk.Button(
130
130
  self,
131
131
  text='フォルダーの選択',
132
132
  padding=(20,5),
133
133
  command=self.GetPath)
134
- self.path_button.place(x=90,y=10)
134
+ self.path_button.place(x=230,y=10)
135
- self.file_name=ttk.Entry(self,width=20)
135
+ self.file_name=tkinter.Entry(self,width=20)
136
- self.file_name.place(x=10,y=50,height=30,width=70)
136
+ self.file_name.place(x=10,y=50,height=30,width=210)
137
137
  self.file_name_tag=tkinter.Label(self,text="ファイル名")
138
- self.file_name_tag.place(x=90,y=50)
138
+ self.file_name_tag.place(x=230,y=50)
139
-
139
+ self.file_save_button=ttk.Button(
140
+ self,
141
+ text='保存',
142
+ padding=(20,5),
143
+ command=self.file_save)
144
+ self.file_save_button.place(x=165,y=100)
145
+ self.button5=ttk.Button(
146
+ self,
147
+ text='cancel',
148
+ padding=(20,5),
149
+ command=self.quitWindow2)
150
+ self.button5.place(x=280,y=100)
151
+
140
152
  def GetPath(self):
141
153
  self.dir = 'C:\'
142
154
  self.fld = tkinter.filedialog.askdirectory(initialdir = self.dir)
@@ -144,6 +156,14 @@
144
156
  self.var.set(self.fld)
145
157
  self.save_path["text"]=self.var
146
158
 
159
+ def file_save(self):
160
+ self.file_path_name=self.save_path.get()+'/'+self.file_name.get()+'.csv'
161
+ print(self.file_path_name)
162
+
163
+ def quitWindow2(self):
164
+ self.master.destroy()
165
+
166
+
147
167
  def main():
148
168
  root=tkinter.Tk()
149
169
  app=MainMenu(master=root)

5

コードの変更があったため編集しました。

2021/03/27 12:34

投稿

python_k
python_k

スコア7

title CHANGED
File without changes
body CHANGED
@@ -33,14 +33,14 @@
33
33
  self.endlbl=tkinter.Label(text='to')
34
34
  self.datelbl1=tkinter.Label(text='/')
35
35
  self.datelbl2=tkinter.Label(text='/')
36
- self.styear=tkinter.Spinbox(from_=2021,to=2999,increment=1,state='readonly',width=20)
36
+ self.styear=tkinter.Spinbox(self,from_=2021,to=2999,increment=1,state='readonly',width=20)
37
- self.stmonth=Spinbox(from_=1,to=12,increment=1,state='readonly',width=10)
37
+ self.stmonth=Spinbox(self,from_=1,to=12,increment=1,state='readonly',width=10)
38
- self.stday=Spinbox(from_=1,to=31,increment=1,state='readonly',width=10)
38
+ self.stday=Spinbox(self,from_=1,to=31,increment=1,state='readonly',width=10)
39
39
  self.datelbl3=tkinter.Label(text='/')
40
40
  self.datelbl4=tkinter.Label(text='/')
41
- self.endyear=Spinbox(textvariable=self.sptxt,from_=2021,to=2999,increment=1,state='readonly',width=20)
41
+ self.endyear=Spinbox(self,from_=2021,to=2999,increment=1,state='readonly',width=20)
42
- self.endmonth=Spinbox(textvariable=self.sptxt,from_=1,to=12,increment=1,state='readonly',width=10)
42
+ self.endmonth=Spinbox(self,from_=1,to=12,increment=1,state='readonly',width=10)
43
- self.endday=Spinbox(textvariable=self.sptxt,from_=1,to=31,increment=1,state='readonly',width=10)
43
+ self.endday=Spinbox(self,from_=1,to=31,increment=1,state='readonly',width=10)
44
44
 
45
45
  self.sttime=tkinter.Entry(width=20)
46
46
  self.endtime=tkinter.Entry(width=20)

4

実行結果に変化があったため編集しました。

2021/03/27 10:36

投稿

python_k
python_k

スコア7

title CHANGED
File without changes
body CHANGED
@@ -163,4 +163,5 @@
163
163
 
164
164
  ウィンドウを表示するコードになります。
165
165
  データを検索するプログラムをCreateWindowのクラス内に入れていたのですが、そちらを削除したところスピンボックスの方は表示されるようになりました。
166
- visualstudioの方で編集実行していたのですが、pythonから実行したところスピンボックスの方は一つも表示されず新しく開たウィンドウの方は1つ目のテキストボックスボタンのみ表示されるという状態です。
166
+ visualstudioの方で編集実行していたのですが、pythonから実行したところスピンボックスの方は一つも表示されいという状態です。
167
+ 新しく開くウィンドウの方は無事表示されるようになりました。

3

実行結果に変化があったため編集しました。

2021/03/27 10:31

投稿

python_k
python_k

スコア7

title CHANGED
File without changes
body CHANGED
@@ -162,4 +162,5 @@
162
162
  ### 補足情報(FW/ツールのバージョンなど)
163
163
 
164
164
  ウィンドウを表示するコードになります。
165
- データを検索するプログラムをCreateWindowのクラス内に入れていたのですが、そちらを削除したところスピンボックスの方は表示されるようになりました。
165
+ データを検索するプログラムをCreateWindowのクラス内に入れていたのですが、そちらを削除したところスピンボックスの方は表示されるようになりました。
166
+ visualstudioの方で編集実行していたのですが、pythonから実行したところスピンボックスの方は一つも表示されず新しく開いたウィンドウの方は1つ目のテキストボックスとボタンのみ表示されるという状態です。

2

StringVarをよく理解できていなかったので編集しました。

2021/03/27 10:19

投稿

python_k
python_k

スコア7

title CHANGED
File without changes
body CHANGED
@@ -29,15 +29,13 @@
29
29
  self.CreateWindow()
30
30
 
31
31
  def CreateWindow(self):
32
- self.ptxt=tkinter.StringVar()
33
-
34
32
  self.stlbl=tkinter.Label(text='from')
35
33
  self.endlbl=tkinter.Label(text='to')
36
34
  self.datelbl1=tkinter.Label(text='/')
37
35
  self.datelbl2=tkinter.Label(text='/')
38
- self.styear=tkinter.Spinbox(textvariable=self.sptxt,from_=2021,to=2999,increment=1,state='readonly',width=20)
36
+ self.styear=tkinter.Spinbox(from_=2021,to=2999,increment=1,state='readonly',width=20)
39
- self.stmonth=Spinbox(textvariable=self.sptxt,from_=1,to=12,increment=1,state='readonly',width=10)
37
+ self.stmonth=Spinbox(from_=1,to=12,increment=1,state='readonly',width=10)
40
- self.stday=Spinbox(textvariable=self.sptxt,from_=1,to=31,increment=1,state='readonly',width=10)
38
+ self.stday=Spinbox(from_=1,to=31,increment=1,state='readonly',width=10)
41
39
  self.datelbl3=tkinter.Label(text='/')
42
40
  self.datelbl4=tkinter.Label(text='/')
43
41
  self.endyear=Spinbox(textvariable=self.sptxt,from_=2021,to=2999,increment=1,state='readonly',width=20)

1

ウィンドウ作成の全体のコードを書かせていただきました。

2021/03/27 08:42

投稿

python_k
python_k

スコア7

title CHANGED
File without changes
body CHANGED
@@ -13,30 +13,36 @@
13
13
  ### 該当のソースコード
14
14
 
15
15
  ```python
16
+ import tkinter
17
+ from tkinter import *
18
+ from tkinter import ttk
19
+ import datetime
20
+ import tkinter.filedialog
21
+ import os,sys
22
+
16
23
  class MainMenu(tkinter.Frame):
17
24
  def __init__(self,master):
18
25
  super().__init__(master)
19
26
  self.pack()
20
27
  self.master.title('data')
21
- self.master.minsize(width=600,height=400)
28
+ self.master.minsize(width=450,height=400)
22
29
  self.CreateWindow()
23
30
 
24
31
  def CreateWindow(self):
25
- sptxt=StringVar
32
+ self.ptxt=tkinter.StringVar()
26
33
 
27
-
28
34
  self.stlbl=tkinter.Label(text='from')
29
35
  self.endlbl=tkinter.Label(text='to')
30
36
  self.datelbl1=tkinter.Label(text='/')
31
37
  self.datelbl2=tkinter.Label(text='/')
32
- self.styear=tkinter.Spinbox(textvariable=sptxt,from_=2021,to=2999,increment=1,state='readonly',width=20)
38
+ self.styear=tkinter.Spinbox(textvariable=self.sptxt,from_=2021,to=2999,increment=1,state='readonly',width=20)
33
- self.stmonth=Spinbox(textvariable=sptxt,from_=1,to=12,increment=1,state='readonly',width=10)
39
+ self.stmonth=Spinbox(textvariable=self.sptxt,from_=1,to=12,increment=1,state='readonly',width=10)
34
- self.stday=Spinbox(textvariable=sptxt,from_=1,to=31,increment=1,state='readonly',width=10)
40
+ self.stday=Spinbox(textvariable=self.sptxt,from_=1,to=31,increment=1,state='readonly',width=10)
35
41
  self.datelbl3=tkinter.Label(text='/')
36
42
  self.datelbl4=tkinter.Label(text='/')
37
- self.endyear=Spinbox(textvariable=sptxt,from_=2021,to=2999,increment=1,state='readonly',width=20)
43
+ self.endyear=Spinbox(textvariable=self.sptxt,from_=2021,to=2999,increment=1,state='readonly',width=20)
38
- self.endmonth=Spinbox(textvariable=sptxt,from_=1,to=12,increment=1,state='readonly',width=10)
44
+ self.endmonth=Spinbox(textvariable=self.sptxt,from_=1,to=12,increment=1,state='readonly',width=10)
39
- self.endday=Spinbox(textvariable=sptxt,from_=1,to=31,increment=1,state='readonly',width=10)
45
+ self.endday=Spinbox(textvariable=self.sptxt,from_=1,to=31,increment=1,state='readonly',width=10)
40
46
 
41
47
  self.sttime=tkinter.Entry(width=20)
42
48
  self.endtime=tkinter.Entry(width=20)
@@ -69,19 +75,57 @@
69
75
  self.button1.place(x=300,y=240)
70
76
  self.button2.place(x=300,y=270)
71
77
 
78
+ self.inputRule()
79
+
80
+ def inputRule(self):
81
+ self.var=tkinter.StringVar()
82
+ self.stlbl["font"]=("",20)
83
+ self.styear["font"]=("",20)
84
+ self.stmonth["font"]=("",20)
85
+ self.stday["font"]=("",20)
72
- ---------------------------------------------------------------------------------
86
+ self.datelbl1["font"]=("",20)
87
+ self.datelbl2["font"]=("",20)
88
+ self.var.set("00:00")
89
+ self.sttime["text"]=self.var
90
+ self.sttime["font"]=("",20)
91
+
92
+ self.var=tkinter.StringVar()
93
+ self.endlbl["font"]=("",20)
94
+ self.endyear["font"]=("",20)
95
+ self.endmonth["font"]=("",20)
96
+ self.endday["font"]=("",20)
97
+ self.datelbl3["font"]=("",20)
98
+ self.datelbl4["font"]=("",20)
99
+ self.var.set("23:59")
100
+ self.endtime["text"]=self.var
101
+ self.endtime["font"]=("",20)
102
+
103
+ def getText(self):
104
+ date1=self.styear.get()+ '/'+ self.stmonth.get()+ '/'+ self.stday.get()+ ' '+self.sttime.get()
105
+ date2=self.endyear.get()+ '/'+self.endmonth.get()+ '/'+ self.endday.get()+' '+self.endtime.get()
106
+ #data_output(date1,date2)
107
+ self.CreateNewWindow()
108
+
109
+ def quitWindow(self):
110
+ self.master.destroy()
111
+
112
+
113
+
73
114
  def CreateNewWindow(self):
74
115
  self.newwindow=tkinter.Toplevel(self.master)
75
116
  self.app=NewWindow(self.newwindow)
117
+
118
+
76
119
  class NewWindow(tkinter.Frame):
77
120
  def __init__(self,master):
78
121
 
79
122
  super().__init__(master,width=300,height=200)
80
- self.pack
123
+ self.pack()
81
124
  self.master.title('save')
82
125
  self.create_save()
83
126
 
84
127
  def create_save(self):
128
+
85
129
  self.save_path=tkinter.Entry(self,width=20)
86
130
  self.save_path.place(x=10,y=10,height=30,width=70)
87
131
  self.path_button=ttk.Button(
@@ -94,6 +138,21 @@
94
138
  self.file_name.place(x=10,y=50,height=30,width=70)
95
139
  self.file_name_tag=tkinter.Label(self,text="ファイル名")
96
140
  self.file_name_tag.place(x=90,y=50)
141
+
142
+ def GetPath(self):
143
+ self.dir = 'C:\'
144
+ self.fld = tkinter.filedialog.askdirectory(initialdir = self.dir)
145
+ self.var=tkinter.StringVar()
146
+ self.var.set(self.fld)
147
+ self.save_path["text"]=self.var
148
+
149
+ def main():
150
+ root=tkinter.Tk()
151
+ app=MainMenu(master=root)
152
+ app.mainloop()
153
+
154
+ if __name__=="__main__":
155
+ main()
97
156
  ```
98
157
 
99
158
  ### 試したこと
@@ -104,4 +163,5 @@
104
163
 
105
164
  ### 補足情報(FW/ツールのバージョンなど)
106
165
 
107
- ここより詳細情報を記載してください
166
+ ウィンドウを表示するコードになります
167
+ データを検索するプログラムをCreateWindowのクラス内に入れていたのですが、そちらを削除したところスピンボックスの方は表示されるようになりました。