Advertisement
WupEly

Untitled

Feb 6th, 2023
24
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.63 KB | None | 0 0
  1. from PyQt6 import QtWidgets, QtGui, QtCore
  2. import sys
  3. import urllib.request
  4.  
  5.  
  6. class Ui_MainWindow(object):
  7. def setupUi(self, MainWindow):
  8. MainWindow.setObjectName("MainWindow")
  9. MainWindow.resize(800, 600)
  10. self.centralwidget = QtWidgets.QWidget(MainWindow)
  11. self.centralwidget.setObjectName("centralwidget")
  12. self.verticalLayoutWidget = QtWidgets.QWidget(self.centralwidget)
  13. self.verticalLayoutWidget.setGeometry(QtCore.QRect(130, 430, 511, 131))
  14. self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
  15. self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
  16. self.verticalLayout.setContentsMargins(0, 0, 0, 0)
  17. self.verticalLayout.setObjectName("verticalLayout")
  18. self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
  19. self.horizontalLayout_2.setObjectName("horizontalLayout_2")
  20. self.label_3 = QtWidgets.QLabel(self.verticalLayoutWidget)
  21. self.label_3.setObjectName("label_3")
  22. self.horizontalLayout_2.addWidget(self.label_3)
  23. self.size_width = QtWidgets.QLineEdit(self.verticalLayoutWidget)
  24. self.size_width.setObjectName("size_width")
  25. self.horizontalLayout_2.addWidget(self.size_width)
  26. self.size_height = QtWidgets.QLineEdit(self.verticalLayoutWidget)
  27. self.size_height.setObjectName("size_height")
  28. self.horizontalLayout_2.addWidget(self.size_height)
  29. self.verticalLayout.addLayout(self.horizontalLayout_2)
  30. self.horizontalLayout = QtWidgets.QHBoxLayout()
  31. self.horizontalLayout.setObjectName("horizontalLayout")
  32. self.label = QtWidgets.QLabel(self.verticalLayoutWidget)
  33. self.label.setObjectName("label")
  34. self.horizontalLayout.addWidget(self.label)
  35. self.coords_y = QtWidgets.QLineEdit(self.verticalLayoutWidget)
  36. self.coords_y.setText("")
  37. self.coords_y.setObjectName("coords_y")
  38. self.horizontalLayout.addWidget(self.coords_y)
  39. self.coords_x = QtWidgets.QLineEdit(self.verticalLayoutWidget)
  40. self.coords_x.setObjectName("coords_x")
  41. self.horizontalLayout.addWidget(self.coords_x)
  42. self.pushButton = QtWidgets.QPushButton(self.verticalLayoutWidget)
  43. self.pushButton.setObjectName("pushButton")
  44. self.horizontalLayout.addWidget(self.pushButton)
  45. self.verticalLayout.addLayout(self.horizontalLayout)
  46. self.image_cont = QtWidgets.QLabel(self.centralwidget)
  47. self.image_cont.setGeometry(QtCore.QRect(130, 40, 511, 371))
  48. self.image_cont.setText("")
  49. self.image_cont.setObjectName("image_cont")
  50. MainWindow.setCentralWidget(self.centralwidget)
  51. self.menubar = QtWidgets.QMenuBar(MainWindow)
  52. self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
  53. self.menubar.setObjectName("menubar")
  54. MainWindow.setMenuBar(self.menubar)
  55. self.statusbar = QtWidgets.QStatusBar(MainWindow)
  56. self.statusbar.setObjectName("statusbar")
  57. MainWindow.setStatusBar(self.statusbar)
  58.  
  59. self.retranslateUi(MainWindow)
  60. QtCore.QMetaObject.connectSlotsByName(MainWindow)
  61.  
  62. def retranslateUi(self, MainWindow):
  63. _translate = QtCore.QCoreApplication.translate
  64. MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
  65. self.label_3.setText(_translate("MainWindow", "Size:"))
  66. self.label.setText(_translate("MainWindow", "Your coords:"))
  67. self.pushButton.setText(_translate("MainWindow", "show"))
  68.  
  69.  
  70.  
  71. class ExampleApp(QtWidgets.QMainWindow, Ui_MainWindow):
  72. def __init__(self):
  73. # Это здесь нужно для доступа к переменным, методам
  74. # и т.д. в файле design.py
  75. super().__init__()
  76. self.setupUi(self) # Это нужно для инициализации нашего дизайна
  77. self.pushButton.clicked.connect(lambda: self.show_map())
  78.  
  79. self.spn = 0
  80.  
  81. self.spn_list = [0.001, 0.01, 0.02, 0.03, 0.05, 0.1, 0.2, 0.4, 0.8, 2, 3, 10, 15, 25]
  82. self.max_x = 180
  83. self.min_x = -180
  84. self.max_y = 85
  85. self.min_y = -85
  86.  
  87. def show_map(self):
  88. coord_y = self.coords_y.text()
  89. coord_x = self.coords_x.text()
  90. size_x = self.size_width.text()
  91. size_y = self.size_height.text()
  92. urllib.request.urlretrieve(
  93. f"https://static-maps.yandex.ru/1.x/?ll={coord_x},{coord_y}&size={size_x},{size_y}&spn={self.spn_list[self.spn]},{self.spn_list[self.spn]}&l=map", "map.png")
  94. map = QtGui.QPixmap("map.png")
  95. self.image_cont.setPixmap(map)
  96. self.show()
  97.  
  98. def increase_zoom(self):
  99. if self.spn > 0:
  100. self.spn -= 1
  101.  
  102. def decrease_zoom(self):
  103. if self.spn < len(self.spn_list)-1:
  104. self.spn += 1
  105.  
  106. def move_left(self):
  107. if self.min_x < float(self.coords_x.text()):
  108. self.coords_x.setText(str(float(self.coords_x.text())-(self.spn_list[self.spn]*3)))
  109.  
  110. def move_right(self):
  111. if float(self.coords_x.text()) < self.max_x:
  112. self.coords_x.setText(str(float(self.coords_x.text())+(self.spn_list[self.spn]*3)))
  113.  
  114. def move_down(self):
  115. if self.min_y < float(self.coords_y.text()):
  116. self.coords_y.setText(str(float(self.coords_y.text()) - (self.spn_list[self.spn]*1.5)))
  117.  
  118. def move_up(self):
  119. if float(self.coords_y.text()) < self.max_y:
  120. self.coords_y.setText(str(float(self.coords_y.text()) + (self.spn_list[self.spn]*1.5)))
  121.  
  122. def keyPressEvent(self, event):
  123. if event.key() == QtCore.Qt.Key.Key_PageUp:
  124. self.increase_zoom()
  125. self.show_map()
  126. elif event.key() == QtCore.Qt.Key.Key_PageDown:
  127. self.decrease_zoom()
  128. self.show_map()
  129. elif event.key() == QtCore.Qt.Key.Key_W:
  130. self.move_up()
  131. self.show_map()
  132. elif event.key() == QtCore.Qt.Key.Key_A:
  133. self.move_left()
  134. self.show_map()
  135. elif event.key() == QtCore.Qt.Key.Key_S:
  136. self.move_down()
  137. self.show_map()
  138. elif event.key() == QtCore.Qt.Key.Key_D:
  139. self.move_right()
  140. self.show_map()
  141.  
  142. print(f"x - {self.coords_x.text()}; y - {self.coords_y.text()}")
  143.  
  144.  
  145. def main():
  146. app = QtWidgets.QApplication(sys.argv) # Новый экземпляр QApplication
  147. window = ExampleApp() # Создаём экземпляр класса ExampleApp
  148. window.show() # Показываем окно
  149. app.exec() # и запускаем приложение
  150.  
  151.  
  152. if __name__ == "__main__":
  153. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement