PlayerGameWindow
Module¶
Класс PlayerGameWindow
включает в себя отрисовку окон игрока таких как:
- Подключение
- Ответ (кнопки разного цвета)
- Результат (правильно/неправильно, рейтинг и место игрока)
- Ожидание
-
PlayerGameWindow.
delete_all_windgets
()¶ Удляет все виджеты вызывая все функции:
-
PlayerGameWindow.
delete_answer_windgets
()¶ Удаляет все виджеты окна с ответами
-
PlayerGameWindow.
delete_waiting_wingets
()¶ Удаляет все виджеты окна ожидания
-
PlayerGameWindow.
delete_true_false_wingets
()¶ Удаляет все виджеты окна с результатом
-
PlayerGameWindow.
delete_connect_windgets
()¶ Удляет все виджеты окна подключения
-
-
PlayerGameWindow.
answer_window
()¶ Отрисовка окна ответа (кнопки разного цвета), используя
QPushButton
.
-
PlayerGameWindow.
waiting_window
()¶ Отрисовка ожидания, используя
QVBoxLayout
иQLabel
.
-
PlayerGameWindow.
true_false_window
()¶ Отрисовка Результата (правильно/неправильно, рейтинг и место игрока), используя
QVBoxLayout
иQLabel
.
-
PlayerGameWindow.
connect_window
()¶ Отрисовка Результата (правильно/неправильно, рейтинг и место игрока), используя
QVBoxLayout
иQPushButton
иQLineEdit
-
PlayerGameWindow.
game_end
()¶ Открывает новое окно
StartWindow
-
PlayerGameWindow.
thread_signal
(game, name)¶ Game: pin игры 6 значный Name: имя игрока Подключени к серверу. Открытие потока
PlayerThread
. После завершения работы потока вызываетсяon_finished()
-
PlayerGameWindow.
change_window
()¶ def change_window(self, value): func = value[0]s arguments = value[1:] func(*arguments)
Value: list [function, param1, param2, ..]
Запускает вункцию, нужна для управления из потока с помощью
pyqtSignal(list)
-
PlayerGameWindow.
on_finished
()¶ Функция, которая запускается после завершения работы потока. Вызывает
connect_window()
-
PlayerGameWindow.
click
()¶ def click(self): i = int(self.sender().objectName()) self.waiting_window() self.API.ans(i)
Запускается при нажатие кнопки ответа
-
PlayerGameWindow.
connect
()¶ Запускает
self.thread_signal(game, name)
game
иname
взятые из окнаconnect_window
-
PlayerGameWindow.
exit
()¶ Открывает новое окно
StartWindow
-
class
PlayerGameWindow.
PlayerThread
¶ class PlayerThread(QThread): Signal = pyqtSignal(list) def __init__(self, game, name, window): super().__init__() self.window = window self.game = game self.name = name def run(self): self.window.API = api.PlayerAPI(URL, self.game, self.name) if self.window.API.hash_error(): self.window.error = self.window.API.error return self.Signal.emit([self.window.waiting_window]) self.window.API.wait() question_cnt = self.window.API.game_info() for i in range(question_cnt): info = self.window.API.question_info() self.Signal.emit([self.window.answer_window, info[0]]) QtTest.QTest.qWait(info[1] * 1000) res = self.window.API.validate() self.Signal.emit([self.window.true_false_window, res["valid"], res["place"], res['score']]) if i + 1 != question_cnt: self.window.API.wait() QtTest.QTest.qWait(2000) # 2 s