質問編集履歴

3

解決しました。ありがとうございました。

2017/07/09 12:39

投稿

geek.000
geek.000

スコア9

test CHANGED
File without changes
test CHANGED
@@ -1,441 +1,425 @@
1
+ ```python3
2
+
3
+ コード
4
+
5
+ ```#!/usr/bin/python3
6
+
7
+ # -*- coding: utf-8 -*-
8
+
9
+
10
+
11
+ import sys
12
+
13
+ import os
14
+
15
+ import time
16
+
17
+ from PyQt5.QtWidgets import (QWidget, QApplication, QCheckBox, QHBoxLayout,QVBoxLayout, QPushButton, QGridLayout, QLineEdit, QLabel, QMessageBox)
18
+
19
+
20
+
21
+ answers = ['NONE' for i in range(6)]
22
+
23
+ group_right_or_not = ['×' for i in range(6)]
24
+
25
+ group_number = 0
26
+
27
+ ANSWER = 'サバイバー'
28
+
29
+
30
+
31
+ if os.path.exists('performance{}.txt'.format(sys.argv[1])):
32
+
33
+ f = open('performance{}.txt'.format(sys.argv[1]), 'r')
34
+
35
+ lines = f.readlines()
36
+
37
+ for i in range(6):
38
+
39
+ answers[i] = lines[i][7:-4]
40
+
41
+ else:
42
+
43
+ pass
44
+
45
+
46
+
47
+ class Example(QWidget):
48
+
49
+ def __init__(self):
50
+
51
+ super().__init__()
52
+
53
+ self.initUI()
54
+
55
+ self.file()
56
+
57
+
58
+
59
+
60
+
61
+ def initUI(self):
62
+
63
+ numberlabel = QLabel('グループ番号')
64
+
65
+ hbox1 = QHBoxLayout()
66
+
67
+ hbox1.addWidget(numberlabel)
68
+
69
+ hbox1.addStretch(1)
70
+
71
+
72
+
73
+ self.cb1 = QCheckBox('グループ1', self)
74
+
75
+ self.cb2 = QCheckBox('グループ2', self)
76
+
77
+ self.cb3 = QCheckBox('グループ3', self)
78
+
79
+ self.cb4 = QCheckBox('グループ4', self)
80
+
81
+ self.cb5 = QCheckBox('グループ5', self)
82
+
83
+ self.cb6 = QCheckBox('グループ6', self)
84
+
85
+ self.cb1.setChecked(False)
86
+
87
+ self.cb2.setChecked(False)
88
+
89
+ self.cb3.setChecked(False)
90
+
91
+ self.cb3.setChecked(False)
92
+
93
+ self.cb4.setChecked(False)
94
+
95
+ self.cb5.setChecked(False)
96
+
97
+ self.cb6.setChecked(False)
98
+
99
+
100
+
101
+ self.cb1.stateChanged.connect(lambda:self.btnstate(self.cb1))
102
+
103
+ self.cb2.stateChanged.connect(lambda:self.btnstate(self.cb2))
104
+
105
+ self.cb3.stateChanged.connect(lambda:self.btnstate(self.cb3))
106
+
107
+ self.cb4.stateChanged.connect(lambda:self.btnstate(self.cb4))
108
+
109
+ self.cb5.stateChanged.connect(lambda:self.btnstate(self.cb5))
110
+
111
+ self.cb6.stateChanged.connect(lambda:self.btnstate(self.cb6))
112
+
113
+
114
+
115
+
116
+
117
+
118
+
119
+ self.grid = QGridLayout()
120
+
121
+ self.grid.setSpacing(30)
122
+
123
+
124
+
125
+ self.grid.addWidget(self.cb1, 0, 0)
126
+
127
+ self.grid.addWidget(self.cb2, 1, 0)
128
+
129
+ self.grid.addWidget(self.cb3, 2, 0)
130
+
131
+ self.grid.addWidget(self.cb4, 0, 1)
132
+
133
+ self.grid.addWidget(self.cb5, 1, 1)
134
+
135
+ self.grid.addWidget(self.cb6, 2, 1)
136
+
137
+
138
+
139
+ self.passlabel = QLabel('パスワード')
140
+
141
+ self.self.self.hbox2 = QHBoxLayout()
142
+
143
+ self.self.hbox2.addWidget(passlabel)
144
+
145
+ self.hbox2.addStretch(1)
146
+
147
+
148
+
149
+ self.passinput = QLineEdit()
150
+
151
+ self.hbox3 = QHBoxLayout()
152
+
153
+ self.hbox3.addStretch(1)
154
+
155
+ self.hbox3.addWidget(passinput)
156
+
157
+ self.hbox3.addStretch(1)
158
+
159
+
160
+
161
+ self.okbutton = QPushButton('OK')
162
+
1
- pythonプログラム初心者です。文化祭で使うプログラムの作成をしています。ユーザーにグループ番号とパスワードを入力させ、パスワードを正解判定付きでテキストファイルに保存するプログラムです。
163
+ self.okbutton.clicked.connect(lambda: buttonClicked(group_number, passinput)
164
+
2
-
165
+ self.hbox4 = QHBoxLayout()
166
+
3
-
167
+ self.hbox4.addStretch(1)
168
+
169
+ self.hbox4.addWidget(okbutton)
170
+
171
+
172
+
173
+ self.self.vbox = QVBoxLayout()
174
+
175
+ self.vbox.addStretch(1)
176
+
177
+ self.vbox.addLayout(hbox1)
178
+
179
+ self.vbox.addLayout(grid)
180
+
181
+ self.vbox.addLayout(hbox2)
182
+
183
+ self.vbox.addLayout(hbox3)
184
+
185
+ self.vbox.addWidget(okbutton)
186
+
187
+ self.vbox.addLayout(hbox4)
188
+
189
+ self.vbox.addStretch(1)
190
+
191
+
192
+
193
+ self.setLayout(vbox)
194
+
195
+
196
+
197
+ self.showFullScreen()
198
+
199
+
200
+
201
+ def btnstate(self, cb):
202
+
203
+ if cb.text() == 'グループ1':
204
+
205
+ if cb.isChecked() == True:
206
+
207
+ self.cb2.setChecked(False)
208
+
209
+ self.cb3.setChecked(False)
210
+
211
+ self.cb4.setChecked(False)
212
+
213
+ self.cb5.setChecked(False)
214
+
215
+ self.cb6.setChecked(False)
216
+
217
+ group_number = 1
218
+
219
+
220
+
221
+ else:
222
+
223
+ group_number = None
224
+
225
+
226
+
227
+ if cb.text() == 'グループ2':
228
+
229
+ if cb.isChecked() == True:
230
+
231
+ self.cb1.setChecked(False)
232
+
233
+ self.cb3.setChecked(False)
234
+
235
+ self.cb4.setChecked(False)
236
+
237
+ self.cb5.setChecked(False)
238
+
239
+ self.cb6.setChecked(False)
240
+
241
+ group_number = 2
242
+
243
+
244
+
245
+ else:
246
+
247
+ group_number = None
248
+
249
+
250
+
251
+ if cb.text() == 'グループ3':
252
+
253
+ if cb.isChecked() == True:
254
+
255
+ self.cb1.setChecked(False)
256
+
257
+ self.cb2.setChecked(False)
258
+
259
+ self.cb4.setChecked(False)
260
+
261
+ self.cb5.setChecked(False)
262
+
263
+ self.cb6.setChecked(False)
264
+
265
+ group_number = 3
266
+
267
+
268
+
269
+ else:
270
+
271
+ group_number = None
272
+
273
+
274
+
275
+ if cb.text() == 'グループ4':
276
+
277
+ if cb.isChecked() == True:
278
+
279
+ self.cb1.setChecked(False)
280
+
281
+ self.cb2.setChecked(False)
282
+
283
+ self.cb3.setChecked(False)
284
+
285
+ self.cb5.setChecked(False)
286
+
287
+ self.cb6.setChecked(False)
288
+
289
+ group_number = 4
290
+
291
+
292
+
293
+ else:
294
+
295
+ group_number = None
296
+
297
+
298
+
299
+ if cb.text() == 'グループ5':
300
+
301
+ if cb.isChecked() == True:
302
+
303
+ self.cb1.setChecked(False)
304
+
305
+ self.cb2.setChecked(False)
306
+
307
+ self.cb3.setChecked(False)
308
+
309
+ self.cb4.setChecked(False)
310
+
311
+ self.cb6.setChecked(False)
312
+
313
+ group_number = 5
314
+
315
+
316
+
317
+ else:
318
+
319
+ group_number = 5
320
+
321
+
322
+
323
+ if cb.text() == 'グループ6':
324
+
325
+ if cb.isChecked() == True:
326
+
327
+ self.cb1.setChecked(False)
328
+
329
+ self.cb2.setChecked(False)
330
+
331
+ self.cb3.setChecked(False)
332
+
333
+ self.cb4.setChecked(False)
334
+
335
+ self.cb5.setChecked(False)
336
+
337
+ group_number = 6
338
+
339
+
340
+
341
+ else:
342
+
343
+ group_number = None
344
+
345
+
346
+
347
+
348
+
349
+ def buttonClicked(self, group_number, passinput):
350
+
351
+ global group_number
352
+
353
+ answers[group_number - 1] = passinput.text()
354
+
355
+ self.showDialog
356
+
357
+
358
+
359
+ self.cb1.setChecked(False)
360
+
361
+ self.cb2.setChecked(False)
362
+
363
+ self.cb3.setChecked(False)
364
+
365
+ self.cb4.setChecked(False)
366
+
367
+ self.cb5.setChecked(False)
368
+
369
+ self.cb6.setChecked(False)
370
+
371
+ group_number = None
372
+
373
+ passinput.clear()
374
+
375
+
376
+
377
+ def showDialog(self):
378
+
379
+ msg = QMessageBox()
380
+
381
+ msg.setText('入力完了。制限時間内であれば何回でも再入力可能です。')
382
+
383
+ ok = msg.addButton('OK', QMessageBox.OK)
384
+
385
+
386
+
387
+ def file(self):
388
+
389
+ for i in range(6):
390
+
391
+ if answers[i] == ANSWER:
392
+
393
+ group_right_or_not[i] = '○'
394
+
395
+ else:
396
+
397
+ pass
398
+
399
+
400
+
401
+ f = open('performance{}.txt'.format(sys.argv[1]), 'w')
402
+
403
+
404
+
405
+ for i in range(6):
406
+
407
+ f.write('group' + str(i + 1) + ':' + answers[i] + '--' + group_right_or_not[i] + '\n')
408
+
409
+
410
+
411
+
412
+
413
+
414
+
415
+ if __name__ == '__main__':
416
+
417
+
418
+
419
+ app = QApplication(sys.argv)
420
+
421
+ ex = Example()
422
+
423
+ sys.exit(app.exec_())
4
424
 
5
425
  コード全文とエラー表示です
6
-
7
- #!/usr/bin/python3
8
-
9
- # -*- coding: utf-8 -*-
10
-
11
-
12
-
13
- import sys
14
-
15
- import os
16
-
17
- import time
18
-
19
- from PyQt5.QtWidgets import (QWidget, QApplication, QCheckBox, QHBoxLayout,QVBoxLayout, QPushButton, QGridLayout, QLineEdit, QLabel, QMessageBox)
20
-
21
-
22
-
23
- answers = ['NONE' for i in range(6)]
24
-
25
- group_right_or_not = ['×' for i in range(6)]
26
-
27
- group_number = 0
28
-
29
- ANSWER = 'サバイバー'
30
-
31
-
32
-
33
- if os.path.exists('performance{}.txt'.format(sys.argv[1])):
34
-
35
- f = open('performance{}.txt'.format(sys.argv[1]), 'r')
36
-
37
- lines = f.readlines()
38
-
39
- for i in range(6):
40
-
41
- answers[i] = lines[i][7:-4]
42
-
43
- else:
44
-
45
- pass
46
-
47
-
48
-
49
- class Example(QWidget):
50
-
51
- def __init__(self):
52
-
53
- super().__init__()
54
-
55
- self.initUI()
56
-
57
- self.file()
58
-
59
-
60
-
61
-
62
-
63
- def initUI(self):
64
-
65
- numberlabel = QLabel('グループ番号')
66
-
67
- hbox1 = QHBoxLayout()
68
-
69
- hbox1.addWidget(numberlabel)
70
-
71
- hbox1.addStretch(1)
72
-
73
-
74
-
75
- self.cb1 = QCheckBox('グループ1', self)
76
-
77
- self.cb2 = QCheckBox('グループ2', self)
78
-
79
- self.cb3 = QCheckBox('グループ3', self)
80
-
81
- self.cb4 = QCheckBox('グループ4', self)
82
-
83
- self.cb5 = QCheckBox('グループ5', self)
84
-
85
- self.cb6 = QCheckBox('グループ6', self)
86
-
87
- self.cb1.setChecked(False)
88
-
89
- self.cb2.setChecked(False)
90
-
91
- self.cb3.setChecked(False)
92
-
93
- self.cb3.setChecked(False)
94
-
95
- self.cb4.setChecked(False)
96
-
97
- self.cb5.setChecked(False)
98
-
99
- self.cb6.setChecked(False)
100
-
101
-
102
-
103
- self.cb1.stateChanged.connect(lambda:self.btnstate(self.cb1))
104
-
105
- self.cb2.stateChanged.connect(lambda:self.btnstate(self.cb2))
106
-
107
- self.cb3.stateChanged.connect(lambda:self.btnstate(self.cb3))
108
-
109
- self.cb4.stateChanged.connect(lambda:self.btnstate(self.cb4))
110
-
111
- self.cb5.stateChanged.connect(lambda:self.btnstate(self.cb5))
112
-
113
- self.cb6.stateChanged.connect(lambda:self.btnstate(self.cb6))
114
-
115
-
116
-
117
-
118
-
119
-
120
-
121
- self.grid = QGridLayout()
122
-
123
- self.grid.setSpacing(30)
124
-
125
-
126
-
127
- self.grid.addWidget(self.cb1, 0, 0)
128
-
129
- self.grid.addWidget(self.cb2, 1, 0)
130
-
131
- self.grid.addWidget(self.cb3, 2, 0)
132
-
133
- self.grid.addWidget(self.cb4, 0, 1)
134
-
135
- self.grid.addWidget(self.cb5, 1, 1)
136
-
137
- self.grid.addWidget(self.cb6, 2, 1)
138
-
139
-
140
-
141
- self.passlabel = QLabel('パスワード')
142
-
143
- self.self.self.hbox2 = QHBoxLayout()
144
-
145
- self.self.hbox2.addWidget(passlabel)
146
-
147
- self.hbox2.addStretch(1)
148
-
149
-
150
-
151
- self.passinput = QLineEdit()
152
-
153
- self.hbox3 = QHBoxLayout()
154
-
155
- self.hbox3.addStretch(1)
156
-
157
- self.hbox3.addWidget(passinput)
158
-
159
- self.hbox3.addStretch(1)
160
-
161
-
162
-
163
- self.okbutton = QPushButton('OK')
164
-
165
- self.okbutton.clicked.connect(lambda: buttonClicked(group_number, passinput)
166
-
167
- self.hbox4 = QHBoxLayout()
168
-
169
- self.hbox4.addStretch(1)
170
-
171
- self.hbox4.addWidget(okbutton)
172
-
173
-
174
-
175
- self.self.vbox = QVBoxLayout()
176
-
177
- self.vbox.addStretch(1)
178
-
179
- self.vbox.addLayout(hbox1)
180
-
181
- self.vbox.addLayout(grid)
182
-
183
- self.vbox.addLayout(hbox2)
184
-
185
- self.vbox.addLayout(hbox3)
186
-
187
- self.vbox.addWidget(okbutton)
188
-
189
- self.vbox.addLayout(hbox4)
190
-
191
- self.vbox.addStretch(1)
192
-
193
-
194
-
195
- self.setLayout(vbox)
196
-
197
-
198
-
199
- self.showFullScreen()
200
-
201
-
202
-
203
- def btnstate(self, cb):
204
-
205
- if cb.text() == 'グループ1':
206
-
207
- if cb.isChecked() == True:
208
-
209
- self.cb2.setChecked(False)
210
-
211
- self.cb3.setChecked(False)
212
-
213
- self.cb4.setChecked(False)
214
-
215
- self.cb5.setChecked(False)
216
-
217
- self.cb6.setChecked(False)
218
-
219
- group_number = 1
220
-
221
-
222
-
223
- else:
224
-
225
- group_number = None
226
-
227
-
228
-
229
- if cb.text() == 'グループ2':
230
-
231
- if cb.isChecked() == True:
232
-
233
- self.cb1.setChecked(False)
234
-
235
- self.cb3.setChecked(False)
236
-
237
- self.cb4.setChecked(False)
238
-
239
- self.cb5.setChecked(False)
240
-
241
- self.cb6.setChecked(False)
242
-
243
- group_number = 2
244
-
245
-
246
-
247
- else:
248
-
249
- group_number = None
250
-
251
-
252
-
253
- if cb.text() == 'グループ3':
254
-
255
- if cb.isChecked() == True:
256
-
257
- self.cb1.setChecked(False)
258
-
259
- self.cb2.setChecked(False)
260
-
261
- self.cb4.setChecked(False)
262
-
263
- self.cb5.setChecked(False)
264
-
265
- self.cb6.setChecked(False)
266
-
267
- group_number = 3
268
-
269
-
270
-
271
- else:
272
-
273
- group_number = None
274
-
275
-
276
-
277
- if cb.text() == 'グループ4':
278
-
279
- if cb.isChecked() == True:
280
-
281
- self.cb1.setChecked(False)
282
-
283
- self.cb2.setChecked(False)
284
-
285
- self.cb3.setChecked(False)
286
-
287
- self.cb5.setChecked(False)
288
-
289
- self.cb6.setChecked(False)
290
-
291
- group_number = 4
292
-
293
-
294
-
295
- else:
296
-
297
- group_number = None
298
-
299
-
300
-
301
- if cb.text() == 'グループ5':
302
-
303
- if cb.isChecked() == True:
304
-
305
- self.cb1.setChecked(False)
306
-
307
- self.cb2.setChecked(False)
308
-
309
- self.cb3.setChecked(False)
310
-
311
- self.cb4.setChecked(False)
312
-
313
- self.cb6.setChecked(False)
314
-
315
- group_number = 5
316
-
317
-
318
-
319
- else:
320
-
321
- group_number = 5
322
-
323
-
324
-
325
- if cb.text() == 'グループ6':
326
-
327
- if cb.isChecked() == True:
328
-
329
- self.cb1.setChecked(False)
330
-
331
- self.cb2.setChecked(False)
332
-
333
- self.cb3.setChecked(False)
334
-
335
- self.cb4.setChecked(False)
336
-
337
- self.cb5.setChecked(False)
338
-
339
- group_number = 6
340
-
341
-
342
-
343
- else:
344
-
345
- group_number = None
346
-
347
-
348
-
349
-
350
-
351
- def buttonClicked(self, group_number, passinput):
352
-
353
- global group_number
354
-
355
- answers[group_number - 1] = passinput.text()
356
-
357
- self.showDialog
358
-
359
-
360
-
361
- self.cb1.setChecked(False)
362
-
363
- self.cb2.setChecked(False)
364
-
365
- self.cb3.setChecked(False)
366
-
367
- self.cb4.setChecked(False)
368
-
369
- self.cb5.setChecked(False)
370
-
371
- self.cb6.setChecked(False)
372
-
373
- group_number = None
374
-
375
- passinput.clear()
376
-
377
-
378
-
379
- def showDialog(self):
380
-
381
- msg = QMessageBox()
382
-
383
- msg.setText('入力完了。制限時間内であれば何回でも再入力可能です。')
384
-
385
- ok = msg.addButton('OK', QMessageBox.OK)
386
-
387
-
388
-
389
- def file(self):
390
-
391
- for i in range(6):
392
-
393
- if answers[i] == ANSWER:
394
-
395
- group_right_or_not[i] = '○'
396
-
397
- else:
398
-
399
- pass
400
-
401
-
402
-
403
- f = open('performance{}.txt'.format(sys.argv[1]), 'w')
404
-
405
-
406
-
407
- for i in range(6):
408
-
409
- f.write('group' + str(i + 1) + ':' + answers[i] + '--' + group_right_or_not[i] + '\n')
410
-
411
-
412
-
413
-
414
-
415
-
416
-
417
- if __name__ == '__main__':
418
-
419
-
420
-
421
- app = QApplication(sys.argv)
422
-
423
- ex = Example()
424
-
425
- sys.exit(app.exec_())
426
-
427
-
428
-
429
-
430
-
431
- File "prototype3.py", line 82
432
-
433
- self.hbox4 = QHBoxLayout()
434
-
435
- ^
436
-
437
- SyntaxError: invalid syntax
438
-
439
-
440
-
441
- idleで書いてます。さきほどこのソースをgeditで開いてしまいました。何か関係あるでしょうか。実行環境はUbuntu16.04です。回答よろしくお願いします。

2

pythonで書くよってとこと、utf-8で書くよってとこが大きくなるのはなんででしょう?

2017/07/09 12:38

投稿

geek.000
geek.000

スコア9

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,6 @@
1
- ###前提・実現したいこと
2
-
3
1
  pythonプログラム初心者です。文化祭で使うプログラムの作成をしています。ユーザーにグループ番号とパスワードを入力させ、パスワードを正解判定付きでテキストファイルに保存するプログラムです。
4
2
 
5
- ###発生している問題・エラーメッセージ
3
+
6
4
 
7
5
  コード全文とエラー表示です
8
6
 

1

申し訳ありません。コードのコピペの段階でインデントが崩れたようです。改めましてお願いします。それと、アドバイス等あればよろしくおねがいします。

2017/07/09 12:33

投稿

geek.000
geek.000

スコア9

test CHANGED
File without changes
test CHANGED
@@ -18,9 +18,7 @@
18
18
 
19
19
  import time
20
20
 
21
- from PyQt5.QtWidgets import (QWidget, QApplication, QCheckBox, QHBoxLayout,
21
+ from PyQt5.QtWidgets import (QWidget, QApplication, QCheckBox, QHBoxLayout,QVBoxLayout, QPushButton, QGridLayout, QLineEdit, QLabel, QMessageBox)
22
-
23
- QVBoxLayout, QPushButton, QGridLayout, QLineEdit, QLabel, QMessageBox)
24
22
 
25
23
 
26
24