WupEly

Untitled

Mar 11th, 2023
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.52 KB | None | 0 0
  1. from PyQt6 import QtWidgets, QtGui, QtCore
  2. import sys
  3. import urllib.request
  4. from ui import Ui_MainWindow
  5. from random import uniform
  6. import time
  7.  
  8. CITIES = {"Москва": [55.751428, 37.618869]}
  9.  
  10.  
  11. class Ui_MainWindow(object):
  12. def setupUi(self, MainWindow):
  13. MainWindow.setObjectName("MainWindow")
  14. MainWindow.resize(800, 600)
  15. self.centralwidget = QtWidgets.QWidget(parent=MainWindow)
  16. self.centralwidget.setObjectName("centralwidget")
  17. self.label = QtWidgets.QLabel(parent=self.centralwidget)
  18. self.label.setGeometry(QtCore.QRect(170, 50, 421, 381))
  19. self.label.setText("")
  20. self.label.setObjectName("label")
  21. self.label_2 = QtWidgets.QLabel(parent=self.centralwidget)
  22. self.label_2.setGeometry(QtCore.QRect(290, 0, 151, 41))
  23. self.label_2.setObjectName("label_2")
  24. self.horizontalLayoutWidget = QtWidgets.QWidget(parent=self.centralwidget)
  25. self.horizontalLayoutWidget.setGeometry(QtCore.QRect(140, 450, 471, 81))
  26. self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget")
  27. self.horizontalLayout = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget)
  28. self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
  29. self.horizontalLayout.setObjectName("horizontalLayout")
  30. self.label_3 = QtWidgets.QLabel(parent=self.horizontalLayoutWidget)
  31. self.label_3.setObjectName("label_3")
  32. self.horizontalLayout.addWidget(self.label_3)
  33. self.lineEdit = QtWidgets.QLineEdit(parent=self.horizontalLayoutWidget)
  34. self.lineEdit.setObjectName("lineEdit")
  35. self.horizontalLayout.addWidget(self.lineEdit)
  36. self.pushButton = QtWidgets.QPushButton(parent=self.horizontalLayoutWidget)
  37. self.pushButton.setObjectName("pushButton")
  38. self.horizontalLayout.addWidget(self.pushButton)
  39. MainWindow.setCentralWidget(self.centralwidget)
  40. self.menubar = QtWidgets.QMenuBar(parent=MainWindow)
  41. self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
  42. self.menubar.setObjectName("menubar")
  43. MainWindow.setMenuBar(self.menubar)
  44. self.statusbar = QtWidgets.QStatusBar(parent=MainWindow)
  45. self.statusbar.setObjectName("statusbar")
  46. MainWindow.setStatusBar(self.statusbar)
  47.  
  48. self.retranslateUi(MainWindow)
  49. QtCore.QMetaObject.connectSlotsByName(MainWindow)
  50.  
  51. def retranslateUi(self, MainWindow):
  52. _translate = QtCore.QCoreApplication.translate
  53. MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
  54. self.label_2.setText(_translate("MainWindow",
  55. "<html><head/><body><p align=\"center\"><span style=\" font-size:16pt; font-weight:600;\">Player 1</span></p></body></html>"))
  56. self.label_3.setText(_translate("MainWindow",
  57. "<html><head/><body><p align=\"center\"><span style=\" font-size:12pt; font-weight:600;\">Загадайте город: </span></p></body></html>"))
  58. self.pushButton.setText(_translate("MainWindow", "Confirm"))
  59.  
  60.  
  61. if __name__ == "__main__":
  62. import sys
  63.  
  64. app = QtWidgets.QApplication(sys.argv)
  65. MainWindow = QtWidgets.QMainWindow()
  66. ui = Ui_MainWindow()
  67. ui.setupUi(MainWindow)
  68. MainWindow.show()
  69. sys.exit(app.exec())
  70.  
  71.  
  72. class ExampleApp(QtWidgets.QMainWindow, Ui_MainWindow):
  73. def __init__(self):
  74. # Это здесь нужно для доступа к переменным, методам
  75. # и т.д. в файле design.py
  76. super().__init__()
  77. self.right_answer = ""
  78. self.setupUi(self) # Это нужно для инициализации нашего дизайна
  79. self.pushButton.clicked.connect(lambda: self.next_step())
  80. self.step = False
  81.  
  82. def next_step(self):
  83. if not self.step:
  84. print(self.lineEdit.text(), self.lineEdit.text() in CITIES)
  85. if self.lineEdit.text() in CITIES:
  86. self.right_answer = self.lineEdit.text()
  87. self.label_2.setText(
  88. '<html><head/><body><p align="center">'
  89. '<span style=" font-size:16pt; font-weight:600;">'
  90. 'Player 2'
  91. '</span></p></body></html>')
  92. self.label_3.setText(
  93. '<html><head/><body><p align="center"><span style=" font-size:12pt; font-weight:600;">'
  94. 'Угадайте город: '
  95. '</span></p></body></html>')
  96. coord_y, coord_x = CITIES[self.lineEdit.text()]
  97. for i in range(2):
  98. coord_shift = uniform(-0.59, 0.59)
  99. urllib.request.urlretrieve(
  100. f"https://static-maps.yandex.ru/1.x/?ll={coord_x + coord_shift},{coord_y + coord_shift}&spn=0.1,0.1&l=sat",
  101. f"map{i}.png")
  102. for i in range(2):
  103. map_label = QtGui.QPixmap(f"map{i}.png")
  104. self.label.setPixmap(map_label)
  105. self.show()
  106. print(i)
  107. time.sleep(3)
  108. self.step = not self.step
  109.  
  110. if self.step:
  111. if self.lineEdit.text() == self.right_answer:
  112. self.lineEdit.setText("")
  113. self.label_3.setText(
  114. '<html><head/><body><p align="center"><span style=" font-size:12pt; font-weight:600;">'
  115. 'Правильный Ответ!!'
  116. '</span></p></body></html>')
  117. time.sleep(3)
  118. self.step = not self.step
  119. self.label_2.setText(
  120. '<html><head/><body><p align="center">'
  121. '<span style=" font-size:16pt; font-weight:600;">'
  122. 'Player 1'
  123. '</span></p></body></html>')
  124. self.label_3.setText(
  125. '<html><head/><body><p align="center"><span style=" font-size:12pt; font-weight:600;">'
  126. 'Загадайте город: '
  127. '</span></p></body></html>')
  128.  
  129.  
  130. def main():
  131. app = QtWidgets.QApplication(sys.argv) # Новый экземпляр QApplication
  132. window = ExampleApp() # Создаём экземпляр класса ExampleApp
  133. window.show() # Показываем окно
  134. app.exec() # и запускаем приложение
  135.  
  136.  
  137. if __name__ == "__main__":
  138. main()
  139.  
Add Comment
Please, Sign In to add comment