Advertisement
WupEly

Untitled

Feb 5th, 2023
25
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.21 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_x = QtWidgets.QLineEdit(self.verticalLayoutWidget)
  36. self.coords_x.setText("")
  37. self.coords_x.setObjectName("coords_x")
  38. self.horizontalLayout.addWidget(self.coords_x)
  39. self.coords_y = QtWidgets.QLineEdit(self.verticalLayoutWidget)
  40. self.coords_y.setObjectName("coords_y")
  41. self.horizontalLayout.addWidget(self.coords_y)
  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.zoom = 13
  80.  
  81. def show_map(self):
  82. coord_x = self.coords_x.text()
  83. coord_y = self.coords_y.text()
  84. size_x = self.size_width.text()
  85. size_y = self.size_height.text()
  86. urllib.request.urlretrieve(
  87. f"https://static-maps.yandex.ru/1.x/?ll={coord_x},{coord_y}&size={size_x},{size_y}&z={self.zoom}&l=map", "map.png")
  88. map = QtGui.QPixmap("map.png")
  89. self.image_cont.setPixmap(map.scaled(self.image_cont.size()))
  90. self.show()
  91.  
  92. def increase_zoom(self):
  93. if self.zoom < 21:
  94. self.zoom += 1
  95.  
  96. def decrease_zoom(self):
  97. if self.zoom > 0:
  98. self.zoom -= 1
  99.  
  100. def keyPressEvent(self, event):
  101. if event.key() == QtCore.Qt.Key.Key_PageUp:
  102. self.increase_zoom()
  103. self.show_map()
  104. elif event.key() == QtCore.Qt.Key.Key_PageDown:
  105. self.decrease_zoom()
  106. self.show_map()
  107.  
  108.  
  109. def main():
  110. app = QtWidgets.QApplication(sys.argv) # Новый экземпляр QApplication
  111. window = ExampleApp() # Создаём экземпляр класса ExampleApp
  112. window.show() # Показываем окно
  113. app.exec() # и запускаем приложение
  114.  
  115.  
  116.  
  117.  
  118. if __name__ == "__main__":
  119. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement