python3
1コード 2```#!/usr/bin/python3 3# -*- coding: utf-8 -*- 4 5import sys 6import os 7import time 8from PyQt5.QtWidgets import (QWidget, QApplication, QCheckBox, QHBoxLayout,QVBoxLayout, QPushButton, QGridLayout, QLineEdit, QLabel, QMessageBox) 9 10answers = ['NONE' for i in range(6)] 11group_right_or_not = ['×' for i in range(6)] 12group_number = 0 13ANSWER = 'サバイバー' 14 15if os.path.exists('performance{}.txt'.format(sys.argv[1])): 16 f = open('performance{}.txt'.format(sys.argv[1]), 'r') 17 lines = f.readlines() 18 for i in range(6): 19 answers[i] = lines[i][7:-4] 20 else: 21 pass 22 23class Example(QWidget): 24 def __init__(self): 25 super().__init__() 26 self.initUI() 27 self.file() 28 29 30 def initUI(self): 31 numberlabel = QLabel('グループ番号') 32 hbox1 = QHBoxLayout() 33 hbox1.addWidget(numberlabel) 34 hbox1.addStretch(1) 35 36 self.cb1 = QCheckBox('グループ1', self) 37 self.cb2 = QCheckBox('グループ2', self) 38 self.cb3 = QCheckBox('グループ3', self) 39 self.cb4 = QCheckBox('グループ4', self) 40 self.cb5 = QCheckBox('グループ5', self) 41 self.cb6 = QCheckBox('グループ6', self) 42 self.cb1.setChecked(False) 43 self.cb2.setChecked(False) 44 self.cb3.setChecked(False) 45 self.cb3.setChecked(False) 46 self.cb4.setChecked(False) 47 self.cb5.setChecked(False) 48 self.cb6.setChecked(False) 49 50 self.cb1.stateChanged.connect(lambda:self.btnstate(self.cb1)) 51 self.cb2.stateChanged.connect(lambda:self.btnstate(self.cb2)) 52 self.cb3.stateChanged.connect(lambda:self.btnstate(self.cb3)) 53 self.cb4.stateChanged.connect(lambda:self.btnstate(self.cb4)) 54 self.cb5.stateChanged.connect(lambda:self.btnstate(self.cb5)) 55 self.cb6.stateChanged.connect(lambda:self.btnstate(self.cb6)) 56 57 58 59 self.grid = QGridLayout() 60 self.grid.setSpacing(30) 61 62 self.grid.addWidget(self.cb1, 0, 0) 63 self.grid.addWidget(self.cb2, 1, 0) 64 self.grid.addWidget(self.cb3, 2, 0) 65 self.grid.addWidget(self.cb4, 0, 1) 66 self.grid.addWidget(self.cb5, 1, 1) 67 self.grid.addWidget(self.cb6, 2, 1) 68 69 self.passlabel = QLabel('パスワード') 70 self.self.self.hbox2 = QHBoxLayout() 71 self.self.hbox2.addWidget(passlabel) 72 self.hbox2.addStretch(1) 73 74 self.passinput = QLineEdit() 75 self.hbox3 = QHBoxLayout() 76 self.hbox3.addStretch(1) 77 self.hbox3.addWidget(passinput) 78 self.hbox3.addStretch(1) 79 80 self.okbutton = QPushButton('OK') 81 self.okbutton.clicked.connect(lambda: buttonClicked(group_number, passinput) 82 self.hbox4 = QHBoxLayout() 83 self.hbox4.addStretch(1) 84 self.hbox4.addWidget(okbutton) 85 86 self.self.vbox = QVBoxLayout() 87 self.vbox.addStretch(1) 88 self.vbox.addLayout(hbox1) 89 self.vbox.addLayout(grid) 90 self.vbox.addLayout(hbox2) 91 self.vbox.addLayout(hbox3) 92 self.vbox.addWidget(okbutton) 93 self.vbox.addLayout(hbox4) 94 self.vbox.addStretch(1) 95 96 self.setLayout(vbox) 97 98 self.showFullScreen() 99 100 def btnstate(self, cb): 101 if cb.text() == 'グループ1': 102 if cb.isChecked() == True: 103 self.cb2.setChecked(False) 104 self.cb3.setChecked(False) 105 self.cb4.setChecked(False) 106 self.cb5.setChecked(False) 107 self.cb6.setChecked(False) 108 group_number = 1 109 110 else: 111 group_number = None 112 113 if cb.text() == 'グループ2': 114 if cb.isChecked() == True: 115 self.cb1.setChecked(False) 116 self.cb3.setChecked(False) 117 self.cb4.setChecked(False) 118 self.cb5.setChecked(False) 119 self.cb6.setChecked(False) 120 group_number = 2 121 122 else: 123 group_number = None 124 125 if cb.text() == 'グループ3': 126 if cb.isChecked() == True: 127 self.cb1.setChecked(False) 128 self.cb2.setChecked(False) 129 self.cb4.setChecked(False) 130 self.cb5.setChecked(False) 131 self.cb6.setChecked(False) 132 group_number = 3 133 134 else: 135 group_number = None 136 137 if cb.text() == 'グループ4': 138 if cb.isChecked() == True: 139 self.cb1.setChecked(False) 140 self.cb2.setChecked(False) 141 self.cb3.setChecked(False) 142 self.cb5.setChecked(False) 143 self.cb6.setChecked(False) 144 group_number = 4 145 146 else: 147 group_number = None 148 149 if cb.text() == 'グループ5': 150 if cb.isChecked() == True: 151 self.cb1.setChecked(False) 152 self.cb2.setChecked(False) 153 self.cb3.setChecked(False) 154 self.cb4.setChecked(False) 155 self.cb6.setChecked(False) 156 group_number = 5 157 158 else: 159 group_number = 5 160 161 if cb.text() == 'グループ6': 162 if cb.isChecked() == True: 163 self.cb1.setChecked(False) 164 self.cb2.setChecked(False) 165 self.cb3.setChecked(False) 166 self.cb4.setChecked(False) 167 self.cb5.setChecked(False) 168 group_number = 6 169 170 else: 171 group_number = None 172 173 174 def buttonClicked(self, group_number, passinput): 175 global group_number 176 answers[group_number - 1] = passinput.text() 177 self.showDialog 178 179 self.cb1.setChecked(False) 180 self.cb2.setChecked(False) 181 self.cb3.setChecked(False) 182 self.cb4.setChecked(False) 183 self.cb5.setChecked(False) 184 self.cb6.setChecked(False) 185 group_number = None 186 passinput.clear() 187 188 def showDialog(self): 189 msg = QMessageBox() 190 msg.setText('入力完了。制限時間内であれば何回でも再入力可能です。') 191 ok = msg.addButton('OK', QMessageBox.OK) 192 193 def file(self): 194 for i in range(6): 195 if answers[i] == ANSWER: 196 group_right_or_not[i] = '○' 197 else: 198 pass 199 200 f = open('performance{}.txt'.format(sys.argv[1]), 'w') 201 202 for i in range(6): 203 f.write('group' + str(i + 1) + ':' + answers[i] + '--' + group_right_or_not[i] + '\n') 204 205 206 207if __name__ == '__main__': 208 209 app = QApplication(sys.argv) 210 ex = Example() 211 sys.exit(app.exec_()) 212コード全文とエラー表示です
回答1件
あなたの回答
tips
プレビュー