1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
| import sys
from PIL import Image
import io
import folium
from PyQt5.QtWidgets import QWidget, QApplication, QMainWindow, QAction, QLabel, QPushButton, QVBoxLayout
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtGui import QPixmap
import urllib.request
class Window(QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.initUI()
self.window = QMainWindow()
self.pamyatniki = ['Памятник Тысечелетия России', 'Музей деревянного зодчества "Витославлицы"',
'Река Волхов', 'Софийский собор', 'Новгородский кремль', 'Ярославово дворище',
'Монумент Победы', 'Свято-Юрьев мужской монастырь']
self.kultura_centers = ['Малый театр', 'театр драмы имени Достоевского', 'ТЦ Мармелад', 'Киноцентр Россия',
'Театр "Садко"', 'Акрон', 'ДКМ "Город"', 'КЦ Диалог', 'Грановитая палата',
'Музей письменности', 'АЛЕКСЕЕВСКАЯ (БЕЛАЯ) БАШНЯ', 'Музей изобразительных искусств',
'Зал воинской славы', 'Церковь Параскевы Пятницы на Торгу']
self.interesting_places = ['Парк Юности', 'Парк 30-летия Октября', 'Сквер водников', 'Парк "Луговой"',
'Веряжский парк', 'Красное поле', 'Парк 45-летия Акрона', 'Трест зеленого хозяйства',
'Рюриково городище', 'Чудо Остров', 'Юрьево Картинг центр']
self.kartinki = ['tousend.jpg', 'vit.jpg', 'vol.jpg', 'sobor.jpg', "kreml.jpg", 'dvor.jpg', 'mon.jpg',
'muz.jpg']
self.tousend_kartinka = ("https://photocentra.ru/images/main63/639676_main.jpg")
urllib.request.urlretrieve(self.tousend_kartinka, "tousend.jpg")
self.vit_kartinka = ("https://key2rus-travel.ru/upload/iblock/6e1/6e1e1631a6b46eb0edc0b82f15b2b1e1.jpg")
urllib.request.urlretrieve(self.vit_kartinka, "vit.jpg")
self.vol_kartinka = ("https://hydroteh.ru/upload/news/images/958_pVpoplchkhpopv.jpg")
urllib.request.urlretrieve(self.vol_kartinka, "vol.jpg")
self.sobor_kartinka = (
"https://s16.stc.all.kpcdn.net/russia/wp-content/uploads/2022/07/Novgorod-Sofijskij-sobor-so-zvonnitsej.jpg")
urllib.request.urlretrieve(self.sobor_kartinka, "sobor.jpg")
self.kreml_kartinka = ('https://www.ostwest.ru/upload/tours/625/vn1.jpg')
urllib.request.urlretrieve(self.kreml_kartinka, "kreml.jpg")
self.dvor_kartinka = ('https://charmtravel.ru/wp-content/uploads/2019/01/3_jaroslavovo-dvorische_prev.jpg')
urllib.request.urlretrieve(self.dvor_kartinka, "dvor.jpg")
self.mon_kartinka = (
'https://img.29palms.ru/photo/hotels/russia/veliky-novgorod/1/resized/'
'115_Rossiya_Velikiy_Novgorod_Kompleks_Monument_Pobedy_Monument_to_the_Victory_in_the_Great_Patriotic_War_in_Veliky_Novgorod_Foto_Leonid_Andronov_-_Deposit.jpg')
urllib.request.urlretrieve(self.mon_kartinka, "mon.jpg")
self.muz_kartinka = ('http://www.logoslovo.ru/media/pic_full/19/58890.jpg')
urllib.request.urlretrieve(self.muz_kartinka, "muz.jpg")
for el in self.kartinki:
self.compress_image(el)
for button in app.allWidgets():
if isinstance(button, QWidget):
button.setStyleSheet("QWidget { background-color: rgb(41, 49, 51); }")
if isinstance(button, QPushButton):
button.setStyleSheet("QPushButton { background-color : black; color : orange; border-radius : 10px; }")
if isinstance(button, QLabel):
button.setStyleSheet("QLabel { background-color : '#45433b'; color : orange; border-radius : 10px; }")
if isinstance(button, QMainWindow):
button.setStyleSheet("background-color: rgb(41, 49, 51);")
def initUI(self):
self.setWindowTitle('проектик')
self.setCentralWidget(mumu())
self.setMinimumSize(1430, 720)
self.button_x = 120
self.button_y = 285
self.label_x = 80
self.label_y = 30
self.jpg_x = 50
self.jpg_y = 70
self.about_action = QAction(self)
self.about_action.setText('О программе')
self.about_action.triggered.connect(self.about)
self.menuBar().addAction(self.about_action)
# Памятники и главные достопримечательности:
self.label = QLabel(self)
self.label.setText(''' Памятник Тысечелетия России ''')
self.label.move(self.label_x + 40, self.label_y)
self.label.setMinimumSize(self.label.sizeHint().width(), self.label.minimumSizeHint().height())
self.tousend_karta = QPushButton('Памятник Тысечелетия России карта', self)
self.tousend_karta.setMinimumSize(self.tousend_karta.sizeHint().width(),
self.tousend_karta.minimumSizeHint().height())
self.tousend_karta.resize(170, 30)
self.tousend_karta.move(self.button_x - 5, self.button_y)
self.tousend_karta.clicked.connect(self.tousend_map)
self.tousend_info = QPushButton('Памятник Тысечелетия России информация', self)
self.tousend_info.setMinimumSize(self.tousend_info.sizeHint().width(),
self.tousend_info.minimumSizeHint().height())
self.tousend_info.resize(170, 30)
self.tousend_info.move(self.button_x - 20, self.button_y + 35)
self.tousend_info.clicked.connect(self.info)
self.tousend_jpg = QLabel(self)
pixmap = QPixmap("tousend.jpg")
self.tousend_jpg.setPixmap(pixmap)
self.tousend_jpg.resize(pixmap.width(), pixmap.height())
self.tousend_jpg.move(self.jpg_x, self.jpg_y)
self.button_x += 340
self.label_x += 340
self.jpg_x += 340
self.vit = QLabel(self)
self.vit.setText(''' Музей деревянного зодчества "Витославлицы" ''')
self.vit.move(self.label_x, self.label_y)
self.vit.setMinimumSize(self.vit.sizeHint().width(), self.vit.minimumSizeHint().height())
self.vit_karta = QPushButton('Музей деревянного зодчества "Витославлицы" карта', self)
self.vit_karta.setMinimumSize(self.vit_karta.sizeHint().width(), self.vit_karta.minimumSizeHint().height())
self.vit_karta.resize(170, 30)
self.vit_karta.move(self.button_x - 60, self.button_y)
self.vit_karta.clicked.connect(self.tousend_map)
self.vit_info = QPushButton('Музей деревянного зодчества "Витославлицы" информация', self)
self.vit_info.setMinimumSize(self.vit_info.sizeHint().width(), self.vit_info.minimumSizeHint().height())
self.vit_info.resize(170, 30)
self.vit_info.move(self.button_x - 70, self.button_y + 35)
self.vit_info.clicked.connect(self.info)
self.vit_jpg = QLabel(self)
pixmap = QPixmap('vit.jpg')
self.vit_jpg.setPixmap(pixmap)
self.vit_jpg.resize(pixmap.width(), pixmap.height())
self.vit_jpg.move(self.jpg_x, self.jpg_y)
self.button_x += 340
self.label_x += 400
self.jpg_x += 340
self.vol = QLabel(self)
self.vol.setText(''' Pека Волхов''')
self.vol.move(self.label_x, self.label_y)
self.vol.setMinimumSize(self.vol.sizeHint().width(), self.vol.minimumSizeHint().height())
self.vol_karta = QPushButton('Pека Волхов карта', self)
self.vol_karta.setMinimumSize(self.vol_karta.sizeHint().width(), self.vol_karta.minimumSizeHint().height())
self.vol_karta.resize(170, 30)
self.vol_karta.move(self.button_x, self.button_y)
self.vol_karta.clicked.connect(self.tousend_map)
self.vol_info = QPushButton('Pека Волхов информация', self)
self.vol_info.setMinimumSize(self.vol_info.sizeHint().width(), self.vol_info.minimumSizeHint().height())
self.vol_info.resize(170, 30)
self.vol_info.move(self.button_x, self.button_y + 35)
self.vol_info.clicked.connect(self.info)
self.vol_jpg = QLabel(self)
pixmap = QPixmap('vol.jpg')
self.vol_jpg.setPixmap(pixmap)
self.vol_jpg.resize(pixmap.width(), pixmap.height())
self.vol_jpg.move(self.jpg_x, self.jpg_y)
self.button_x += 340
self.label_x += 340
self.jpg_x += 340
self.sobor = QLabel(self)
self.sobor.setText(''' Софийский собор''')
self.sobor.move(self.label_x, self.label_y)
self.sobor.setMinimumSize(self.vol.sizeHint().width(), self.vol.minimumSizeHint().height())
self.sobor_karta = QPushButton('Софийский собор карта', self)
self.sobor_karta.setMinimumSize(self.sobor_karta.sizeHint().width(),
self.sobor_karta.minimumSizeHint().height())
self.sobor_karta.resize(170, 30)
self.sobor_karta.move(self.button_x, self.button_y)
self.sobor_karta.clicked.connect(self.tousend_map)
self.sobor_info = QPushButton('Софийский собор информация', self)
self.sobor_info.setMinimumSize(self.sobor_info.sizeHint().width(), self.sobor_info.minimumSizeHint().height())
self.sobor_info.resize(170, 30)
self.sobor_info.move(self.button_x, self.button_y + 35)
self.sobor_info.clicked.connect(self.info)
self.sobor_jpg = QLabel(self)
pixmap = QPixmap('sobor.jpg')
self.sobor_jpg.setPixmap(pixmap)
self.sobor_jpg.resize(pixmap.width(), pixmap.height())
self.sobor_jpg.move(self.jpg_x, self.jpg_y)
self.button_x = 100
self.label_x = 140
self.jpg_x = 50
self.button_y += 340
self.label_y += 340
self.jpg_y += 340
self.kreml = QLabel(self)
self.kreml.setText(''' Новгородский кремль''')
self.kreml.move(self.label_x, self.label_y)
self.kreml.setMinimumSize(self.kreml.sizeHint().width(), self.kreml.minimumSizeHint().height())
self.kreml_karta = QPushButton('Новгородский кремль карта', self)
self.kreml_karta.resize(170, 30)
self.kreml_karta.move(self.button_x + 8, self.button_y)
self.kreml_karta.setMinimumSize(self.kreml_karta.sizeHint().width(),
self.kreml_karta.minimumSizeHint().height())
self.kreml_karta.clicked.connect(self.tousend_map)
self.kreml_info = QPushButton('Новгородский кремль информация', self)
self.kreml_info.resize(170, 30)
self.kreml_info.move(self.button_x, self.button_y + 35)
self.kreml_info.setMinimumSize(self.kreml_info.sizeHint().width(), self.kreml_info.minimumSizeHint().height())
self.kreml_info.clicked.connect(self.info)
self.kreml_jpg = QLabel(self)
pixmap = QPixmap('kreml.jpg')
self.kreml_jpg.setPixmap(pixmap)
self.kreml_jpg.resize(pixmap.width(), pixmap.height())
self.kreml_jpg.move(self.jpg_x, self.jpg_y)
self.button_x += 340
self.label_x += 340
self.jpg_x += 340
self.dvor = QLabel(self)
self.dvor.setText(''' Ярославово дворище''')
self.dvor.move(self.label_x, self.label_y)
self.dvor.setMinimumSize(self.dvor.sizeHint().width(), self.dvor.minimumSizeHint().height())
self.dvor_karta = QPushButton('Ярославово дворище карта', self)
self.dvor_karta.resize(170, 30)
self.dvor_karta.move(self.button_x + 8, self.button_y)
self.dvor_karta.setMinimumSize(self.dvor_karta.sizeHint().width(),
self.dvor_karta.minimumSizeHint().height())
self.dvor_karta.clicked.connect(self.tousend_map)
self.dvor_info = QPushButton('Ярославово дворище информация', self)
self.dvor_info.resize(170, 30)
self.dvor_info.move(self.button_x + 5, self.button_y + 35)
self.dvor_info.setMinimumSize(self.dvor_info.sizeHint().width(), self.dvor_info.minimumSizeHint().height())
self.dvor_info.clicked.connect(self.info)
self.dvor_jpg = QLabel(self)
pixmap = QPixmap('dvor.jpg')
self.dvor_jpg.setPixmap(pixmap)
self.dvor_jpg.resize(pixmap.width(), pixmap.height())
self.dvor_jpg.move(self.jpg_x, self.jpg_y)
self.button_x += 340
self.label_x += 340
self.jpg_x += 340
self.mon = QLabel(self)
self.mon.setText(''' Монумент Победы''')
self.mon.move(self.label_x + 5, self.label_y)
self.mon.setMinimumSize(self.mon.sizeHint().width(), self.mon.minimumSizeHint().height())
self.mon_karta = QPushButton('Монумент Победы карта', self)
self.mon_karta.resize(170, 30)
self.mon_karta.move(self.button_x + 8, self.button_y)
self.mon_karta.setMinimumSize(self.mon_karta.sizeHint().width(),
self.mon_karta.minimumSizeHint().height())
self.mon_karta.clicked.connect(self.tousend_map)
self.mon_info = QPushButton('Монумент Победы информация', self)
self.mon_info.resize(170, 30)
self.mon_info.move(self.button_x + 7, self.button_y + 35)
self.mon_info.setMinimumSize(self.mon_info.sizeHint().width(), self.mon_info.minimumSizeHint().height())
self.mon_info.clicked.connect(self.info)
self.mon_jpg = QLabel(self)
pixmap = QPixmap("mon.jpg")
self.mon_jpg.setPixmap(pixmap)
self.mon_jpg.resize(pixmap.width(), pixmap.height())
self.mon_jpg.move(self.jpg_x, self.jpg_y)
self.button_x += 340
self.label_x += 340
self.jpg_x += 340
self.muz = QLabel(self)
self.muz.setText(''' Свято-Юрьев мужской монастырь''')
self.muz.move(self.label_x - 25, self.label_y)
self.muz.setMinimumSize(self.muz.sizeHint().width(), self.muz.minimumSizeHint().height())
self.muz_karta = QPushButton('Свято-Юрьев мужской монастырь карта', self)
self.muz_karta.resize(170, 30)
self.muz_karta.move(self.button_x + 5, self.button_y)
self.muz_karta.setMinimumSize(self.muz_karta.sizeHint().width(),
self.muz_karta.minimumSizeHint().height())
self.muz_karta.clicked.connect(self.tousend_map)
self.muz_info = QPushButton('Свято-Юрьев мужской монастырь информация', self)
self.muz_info.resize(170, 30)
self.muz_info.move(self.button_x - 10, self.button_y + 35)
self.muz_info.setMinimumSize(self.muz_info.sizeHint().width(), self.muz_info.minimumSizeHint().height())
self.muz_info.clicked.connect(self.info)
self.muz_jpg = QLabel(self)
pixmap = QPixmap("muz.jpg")
self.muz_jpg.setPixmap(pixmap)
self.muz_jpg.resize(pixmap.width(), pixmap.height())
self.muz_jpg.move(self.jpg_x, self.jpg_y)
self.button_x += 340
self.label_x += 340
self.jpg_x += 340
self.about_window = AboutWindow()
self.my_map = My_map()
self.info = My_Info()
def about(self):
self.about_window.show()
def tousend_map(self):
self.text = self.sender().text()
print(self.text)
with open('sender_karta.txt', 'w') as file:
file.write(self.text)
self.my_map.show()
def info(self):
self.text = self.sender().text()
print(self.text)
with open('sender_info.txt', 'w') as file:
file.write(self.text)
self.info.show()
def compress_image(self, input_image):
try:
img = Image.open(input_image)
img = img.resize((300, 200))
img.save(input_image)
except Exception as e:
print("Ошибка:", e)
class mumu(QWidget):
def __init__(self):
super(mumu, self).__init__()
self.setGeometry(300, 300, 300, 300)
class AboutWindow(QWidget):
def __init__(self):
super(AboutWindow, self).__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('О программе')
self.setLayout(QVBoxLayout(self))
self.info = QLabel(self)
self.info.setWordWrap(True)
self.info.setText(
'''Доброго времени суток!
Это приложение-сборник достопримечательностей и просто интересных, красивых мест Великого Новгорода.
Нажав на интересующее вас место вы можете прочитать о нем информацию,
интересные факты, а также посмотреть, где оно находится.''')
self.layout().addWidget(self.info)
class My_map(QWidget):
def __init__(self):
super(My_map, self).__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('Карта для уважаемого гостя')
self.setMinimumSize(1430, 800)
self.layout = QVBoxLayout(self)
self.setLayout(self.layout)
# Почему-то читает один и тот же начальный неизменяющийся, заданный без нажатия кнопок, в самом начале, файл
# тоже непонятно почему он читает строки из файла, который фактически еще не создан
with open("sender_karta.txt", "r") as file:
self.text = file.read()
self.text = self.text.replace(' карта', '')
print(self.text)
# тут будут координаты всех мест
self.coords = {
'Памятник Тысечелетия России': (58.521171, 31.275285),
'Музей деревянного зодчества "Витославлицы"': (58.490336, 31.272310),
'Pека Волхов': (58.518815, 31.279671),
'Софийский собор': (58.522049, 31.276564),
'Новгородский кремль': (58.521446, 31.275557),
'Ярославово дворище': (58.518886, 31.284647),
'Монумент Победы': (58.516818, 31.275260),
'Свято-Юрьев мужской монастырь': (58.486362, 31.284663),
}
# данные карты
self.karta = folium.Map(
title=self.text,
zoom_start=20,
location=self.coords.get(self.text)
)
# сохранение данных карты
data = io.BytesIO()
self.karta.save(data, close_file=False)
self.webView = QWebEngineView()
self.webView.setHtml(data.getvalue().decode())
self.layout.addWidget(self.webView)
class My_Info(QWidget):
def __init__(self):
super(My_Info, self).__init__()
self.initUI()
def initUI(self):
self.infs = {
'Памятник Тысечелетия России': (
'Одна из известнейших достопримечательностей Новгорода - памятник Тысячелетию России. '
'Его торжественное открытие состоялось в 1862 году, на другой год после отмены крепостного права. '
'Время установки памятника выбрано не случайно. Согласно записанной в летописи легенде Рюрик, вождь'
' варяжских дружин, был приглашен в Новгород в 862 году. Эту дату принято считать годом рождения России, '
'а через 1000 лет состоялось торжественное празднование первого тысячелетия государства Российского.'),
'Музей деревянного зодчества "Витославлицы"': ('''«Хозяйственный двор» работает с 11:00 до 17:00, выходной – понедельник.
АДРЕС И КОНТАКТЫ
+78162792150 (касса)
+79210205422 (приём заявок)
Электронная почта: mndz.zayavka@yandex.ru
Великий Новгород, Юрьевское шоссе'''),
'Pека Волхов': ('''Волхов - единственная река, вытекающая из озера Ильмень. Он протекает по Приильменской низменности,
впадает в Ладожское озеро. Длина реки — 224 км.'''),
'Софийский собор': ('''Софи́йский собо́р или Собо́р Свято́й Софи́и — главный православный храм Великого Новгорода,
созданный в 1045—1050 годах, кафедральный собор Новгородской митрополии. На протяжении столетий — духовный центр
Новгородской республики. Наиболее ранний из древнерусских храмов, сохранившихся на современной территории России.
В 1046 году великий князь Ярослав Мудрый и княгиня Ирина (Ингигерда) направились в Новгород из Киева к сыну Владимиру
на закладку им Софийского собора. Собор был заложен в Детинце на месте Владычного двора и строился примерно до 1050 года
вместо сгоревшего перед этим деревянного храма «из дуба о 13 верхах» (13-купольного) 989 года, однако не на том же
месте, а севернее.'''),
'Новгородский кремль': (
'Новгородский дети́нец (также Новгородский кремль) — крепость Великого Новгорода.'
' Детинец расположен на левом берегу реки Волхов. Первое летописное упоминание о нём относится к 1044 году.'
' Является памятником архитектуры федерального значения, охраняется государством.'
' Новгородский детинец как часть исторического центра Великого Новгорода входит в список всемирного наследия ЮНЕСКО.'),
'Ярославово дворище': ('С 1992 г. Ярославово дворище – объект Всемирного культурного наследия ЮНЕСКО.'
' В настоящее время к архитектурному комплексу Ярославова дворища относится 7 храмов,'
'Ганзейский фонтан и торговые ряды. Многими памятниками истории полон Великий Новгород.'
' Ярославово Дворище – одно из уникальных сооружений не только города, но и всей России.'
' Название комплексу было дано по имени князя Ярослава, впоследствии правившего в Киеве'
', где он получил новое звание – Мудрый. Исторически сложилось, что на правом берегу'
' реки Волхов расположена торговая часть города,'
' где с незапамятных времен обустраивались купцы и проводились вечевые сборы.'),
'Монумент Победы': ('Монумент Победы — памятник в ознаменование победы Советского Союза над фашизмом.'
' Находится в Великом Новгороде на Екатерининской горке, в южной части Кремлёвского парка.'
'Сооружён по решению Совета Министров РСФСР от 5 января 1968 года в 1973—1974 годах.'
' Авторы — скульпторы Г. В. Нерода, А. Филиппова, архитекторы А. Душкин, А. Сайковский. '
'Открытие состоялось 20 января 1974 года в день тридцатилетия освобождения Новгорода'
' от фашистских захватчиков.'),
'Свято-Юрьев мужской монастырь': ('Ярослав Мудрый крещён был Георгием и в честь своего святого покровителя'
' Георгия-Победоносца заложил деревянную церковь. Шёл 1030 год. Этот год'
' считается годом основания здесь Юрьева Монастыря (Юрий=Георгий, имена'
' эти близкородственные). В 1191 году деревянная церковь сменилась на'
' каменный собор. Первый среди Новгородских, лучший среди прочих,'
' монастырь был на хорошем счету среди русских князей и веками служил'
' им верой и правдой.')
}
with open("sender_info.txt", "r") as file:
self.text = file.read()
print(self.text)
self.text = self.text.replace(' информация', '')
self.setWindowTitle(f'Информация про {self.text}')
self.setLayout(QVBoxLayout(self))
self.info = QLabel(self)
self.info.setWordWrap(True)
self.info.setText(self.infs.get(self.text))
self.layout().addWidget(self.info)
if __name__ == '__main__':
app = QApplication(sys.argv)
start = Window()
start.show()
sys.exit(app.exec()) |