diff --git a/Dijkstra.py b/Dijkstra.py new file mode 100644 index 0000000..f5a534a --- /dev/null +++ b/Dijkstra.py @@ -0,0 +1,74 @@ +# campus 폴더의 하위 항목인 songdo.py 파일과 sinchon.py 파일을 모듈로 임포트합니다. +from src.campus.songdo import NodeSongdo as Song_ +from src.campus.sinchon import NodeSinchon as Sin_ + +#print(Song_) +#print(Sin_) +print("사용할 위치를 고르세요.") +print("1 : 신촌캠퍼스 2 : 국제캠퍼스") +place = input("숫자를 입력하세요 : ") + +load = [] +t = [] + +#신촌캠퍼스 +if place == 1: + def search(dir, stops, end, time=0): + if Sin_[stops][1] > time: + Sin_[stops][1] = time + dir.append(stops) + else: + return '취소' + if stops == end: + load.append(dir) + t.append(time) + load[t.index(min(t))] + print(f'지나온 길 : {load[t.index(min(t))]}') + print(f'걸린 시간 : {round(min(t), 1)} 분') + return '도착' + + for i in Sin_[stops][2]: # Song_[stops][2] = [['nodem', 57, 0], ['noden', 56, 0], ['nodes', 19, 0]] 요느낌 + if i[2] > 0: # 오르막길->시간 더 걸림. 가중치 (i[2]*1.1)로 해봄. 상대높이가 24까지 있다해서 + search(list(dir), i[0], end, (i[1] * 0.015) * i[2] * 1.1 + time) # i[0]은 'nodem', i[1] = 57(거리), i[2] = 0(높이) 의미 + elif i[2] < 0: # 내리막길->시간 덜 걸림. 가중치 (-i[2]*0.9)로 해봄. 상대높이가 24까지 있다해서 + search(list(dir), i[0], end, (i[1] * 0.015) * (-i[2]) * 0.9 + time) + else: # 평지. 가중치 없음 + search(list(dir), i[0], end, (i[1] * 0.015) + time) + + + # 사람 속도 = 1000m 15분 적용.-> 1m 0.015분 + # 여기에 상대 고도 고려해야함. + +#송도캠퍼스 +else: + def search(dir, stops, end, time=0): + if Song_[stops][1] > time: + Song_[stops][1] = time + dir.append(stops) + else: + return '취소' + if stops == end: + load.append(dir) + t.append(time) + load[t.index(min(t))] + print(f'지나온 길 : {load[t.index(min(t))]}') + print(f'걸린 시간 : {round(min(t), 1)} 분') + print(t, load) + return '도착' + + for i in Song_[stops][2]: # Song_[stops][2] = [['nodem', 57, 0], ['noden', 56, 0], ['nodes', 19, 0]] 요느낌 + if i[2] > 0: # 오르막길->시간 더 걸림. 가중치 (i[2]*1.1)로 해봄. 상대높이가 24까지 있다해서 + search(list(dir), i[0], end, + (i[1] * 0.015) * i[2] * 1.1 + time) # i[0]은 'nodem', i[1] = 57(거리), i[2] = 0(높이) 의미 + elif i[2] < 0: # 내리막길->시간 덜 걸림. 가중치 (-i[2]*0.9)로 해봄. 상대높이가 24까지 있다해서 + search(list(dir), i[0], end, (i[1] * 0.015) * (-i[2]) * 0.9 + time) + else: # 평지. 가중치 없음 + search(list(dir), i[0], end, (i[1] * 0.015) + time) + + + # 사람 속도 = 1000m 15분 적용.-> 1m 0.015분 + # 여기에 상대 고도 고려해야함. + +search([], 'Yplaza', 'YICfield') +search([], 'Yplaza', 'gatea') +search([], 'Futsal', 'gatea') \ No newline at end of file diff --git a/Helpclose.py b/Helpclose.py new file mode 100644 index 0000000..dd7e293 --- /dev/null +++ b/Helpclose.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'Helpclose.ui' +# +# Created by: PyQt5 UI code generator 5.15.6 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(320, 240) + MainWindow.setMinimumSize(QtCore.QSize(320, 240)) + MainWindow.setMaximumSize(QtCore.QSize(320, 240)) + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.gridLayoutWidget = QtWidgets.QWidget(self.centralwidget) + self.gridLayoutWidget.setGeometry(QtCore.QRect(10, 10, 301, 221)) + self.gridLayoutWidget.setObjectName("gridLayoutWidget") + self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget) + self.gridLayout.setContentsMargins(0, 0, 0, 0) + self.gridLayout.setObjectName("gridLayout") + self.lineEdit = QtWidgets.QLineEdit(self.gridLayoutWidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.lineEdit.sizePolicy().hasHeightForWidth()) + self.lineEdit.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("Pretendard SemiBold") + self.lineEdit.setFont(font) + self.lineEdit.setFrame(False) + self.lineEdit.setAlignment(QtCore.Qt.AlignCenter) + self.lineEdit.setDragEnabled(False) + self.lineEdit.setReadOnly(True) + self.lineEdit.setObjectName("lineEdit") + self.gridLayout.addWidget(self.lineEdit, 0, 0, 1, 1) + MainWindow.setCentralWidget(self.centralwidget) + + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) + self.lineEdit.setText(_translate("MainWindow", "이제 도움 없이도 잘 쓸 수 있겠나요?")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + MainWindow = QtWidgets.QMainWindow() + ui = Ui_MainWindow() + ui.setupUi(MainWindow) + MainWindow.show() + sys.exit(app.exec_()) diff --git a/Helpclose.ui b/Helpclose.ui new file mode 100644 index 0000000..1e6bc63 --- /dev/null +++ b/Helpclose.ui @@ -0,0 +1,61 @@ + + + MainWindow + + + + 0 + 0 + 320 + 240 + + + + + 320 + 240 + + + + + 320 + 240 + + + + MainWindow + + + + + + 10 + 10 + 301 + 221 + + + + + + + + Pretendard SemiBold + 15 + + + + 이제 도움 없이도 잘 쓸 수 있겠나요? + + + Qt::AlignCenter + + + + + + + + + + diff --git a/Helphelp.ui b/Helphelp.ui new file mode 100644 index 0000000..7cdd348 --- /dev/null +++ b/Helphelp.ui @@ -0,0 +1,61 @@ + + + MainWindow + + + + 0 + 0 + 320 + 240 + + + + + 320 + 240 + + + + + 320 + 240 + + + + MainWindow + + + + + + 10 + 10 + 301 + 221 + + + + + + + + Pretendard SemiBold + 15 + + + + 도대체 얼마나 더 도움이 필요한가요? + + + Qt::AlignCenter + + + + + + + + + + diff --git a/Helpignore.ui b/Helpignore.ui new file mode 100644 index 0000000..3211954 --- /dev/null +++ b/Helpignore.ui @@ -0,0 +1,61 @@ + + + MainWindow + + + + 0 + 0 + 320 + 240 + + + + + 320 + 240 + + + + + 320 + 240 + + + + MainWindow + + + + + + 10 + 10 + 301 + 221 + + + + + + + + Pretendard SemiBold + 15 + + + + 제 호의를 무시하다니, 정말 못됐군요. + + + Qt::AlignCenter + + + + + + + + + + diff --git a/LICENSE b/LICENSE index 427cf7d..05cd1e7 100644 --- a/LICENSE +++ b/LICENSE @@ -45,31 +45,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -=============================================================================== -Bokgithub -/ -APTP2022 -=============================================================================== -Copyright (c) 2022 {팀명} - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - =============================================================================== everyparser.py =============================================================================== diff --git a/SPY.py b/SPY.py new file mode 100644 index 0000000..8cda2b0 --- /dev/null +++ b/SPY.py @@ -0,0 +1,567 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'SPy.ui' +# +# Created by: PyQt5 UI code generator 5.15.6 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_SPY(object): + def setupUi(self, SPY): + SPY.setObjectName("SPY") + SPY.resize(800, 600) + SPY.setMinimumSize(QtCore.QSize(800, 600)) + SPY.setMaximumSize(QtCore.QSize(800, 600)) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoR00") + font.setPointSize(10) + SPY.setFont(font) + self.centralwidget = QtWidgets.QWidget(SPY) + self.centralwidget.setObjectName("centralwidget") + self.gridLayoutWidget_2 = QtWidgets.QWidget(self.centralwidget) + self.gridLayoutWidget_2.setGeometry(QtCore.QRect(440, 220, 351, 370)) + self.gridLayoutWidget_2.setObjectName("gridLayoutWidget_2") + self.ToU_Copyrightgrid = QtWidgets.QGridLayout(self.gridLayoutWidget_2) + self.ToU_Copyrightgrid.setContentsMargins(0, 0, 0, 0) + self.ToU_Copyrightgrid.setObjectName("ToU_Copyrightgrid") + spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.ToU_Copyrightgrid.addItem(spacerItem, 3, 0, 1, 1) + self.ToUMaintext = QtWidgets.QTextEdit(self.gridLayoutWidget_2) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoL00") + font.setPointSize(10) + self.ToUMaintext.setFont(font) + self.ToUMaintext.setReadOnly(True) + self.ToUMaintext.setObjectName("ToUMaintext") + self.ToU_Copyrightgrid.addWidget(self.ToUMaintext, 2, 0, 1, 2) + self.closeButton = QtWidgets.QDialogButtonBox(self.gridLayoutWidget_2) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoSB00") + font.setPointSize(10) + self.closeButton.setFont(font) + self.closeButton.setStandardButtons(QtWidgets.QDialogButtonBox.Close) + self.closeButton.setObjectName("closeButton") + self.ToU_Copyrightgrid.addWidget(self.closeButton, 3, 1, 1, 1) + self.line_7 = QtWidgets.QFrame(self.gridLayoutWidget_2) + self.line_7.setFrameShape(QtWidgets.QFrame.HLine) + self.line_7.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_7.setObjectName("line_7") + self.ToU_Copyrightgrid.addWidget(self.line_7, 1, 0, 1, 2) + self.ToU_copyriightlabel = QtWidgets.QLabel(self.gridLayoutWidget_2) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ToU_copyriightlabel.sizePolicy().hasHeightForWidth()) + self.ToU_copyriightlabel.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoB00") + font.setPointSize(10) + self.ToU_copyriightlabel.setFont(font) + self.ToU_copyriightlabel.setObjectName("ToU_copyriightlabel") + self.ToU_Copyrightgrid.addWidget(self.ToU_copyriightlabel, 0, 0, 1, 2) + self.gridLayoutWidget_4 = QtWidgets.QWidget(self.centralwidget) + self.gridLayoutWidget_4.setGeometry(QtCore.QRect(10, 120, 421, 170)) + self.gridLayoutWidget_4.setObjectName("gridLayoutWidget_4") + self.positionchoose = QtWidgets.QGridLayout(self.gridLayoutWidget_4) + self.positionchoose.setContentsMargins(0, 0, 0, 0) + self.positionchoose.setObjectName("positionchoose") + self.SongdoCampus = QtWidgets.QRadioButton(self.gridLayoutWidget_4) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoR00") + font.setPointSize(10) + self.SongdoCampus.setFont(font) + self.SongdoCampus.setObjectName("SongdoCampus") + self.positionchoose.addWidget(self.SongdoCampus, 3, 2, 1, 2) + self.DestinationInput = QtWidgets.QLineEdit(self.gridLayoutWidget_4) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoR00") + font.setPointSize(10) + self.DestinationInput.setFont(font) + self.DestinationInput.setObjectName("DestinationInput") + self.positionchoose.addWidget(self.DestinationInput, 6, 2, 1, 2) + self.pushButton = QtWidgets.QPushButton(self.gridLayoutWidget_4) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoSB00") + font.setPointSize(10) + self.pushButton.setFont(font) + self.pushButton.setObjectName("pushButton") + self.positionchoose.addWidget(self.pushButton, 2, 4, 1, 1) + self.SinchonCampus = QtWidgets.QRadioButton(self.gridLayoutWidget_4) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoR00") + font.setPointSize(10) + self.SinchonCampus.setFont(font) + self.SinchonCampus.setObjectName("SinchonCampus") + self.positionchoose.addWidget(self.SinchonCampus, 2, 2, 1, 2) + self.line = QtWidgets.QFrame(self.gridLayoutWidget_4) + self.line.setFrameShape(QtWidgets.QFrame.VLine) + self.line.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line.setObjectName("line") + self.positionchoose.addWidget(self.line, 2, 1, 2, 1) + self.OriginInput = QtWidgets.QLineEdit(self.gridLayoutWidget_4) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoR00") + font.setPointSize(10) + self.OriginInput.setFont(font) + self.OriginInput.setObjectName("OriginInput") + self.positionchoose.addWidget(self.OriginInput, 5, 2, 1, 2) + self.Designator = QtWidgets.QLabel(self.gridLayoutWidget_4) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.Designator.sizePolicy().hasHeightForWidth()) + self.Designator.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoEB00") + font.setPointSize(10) + self.Designator.setFont(font) + self.Designator.setObjectName("Designator") + self.positionchoose.addWidget(self.Designator, 0, 0, 1, 5) + self.pushButton_2 = QtWidgets.QPushButton(self.gridLayoutWidget_4) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoSB00") + font.setPointSize(10) + self.pushButton_2.setFont(font) + self.pushButton_2.setObjectName("pushButton_2") + self.positionchoose.addWidget(self.pushButton_2, 3, 4, 1, 1) + self.line_5 = QtWidgets.QFrame(self.gridLayoutWidget_4) + self.line_5.setFrameShape(QtWidgets.QFrame.HLine) + self.line_5.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_5.setObjectName("line_5") + self.positionchoose.addWidget(self.line_5, 1, 0, 1, 5) + self.Destination = QtWidgets.QLabel(self.gridLayoutWidget_4) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoSB00") + font.setPointSize(10) + self.Destination.setFont(font) + self.Destination.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.Destination.setObjectName("Destination") + self.positionchoose.addWidget(self.Destination, 6, 0, 1, 2) + self.Campus = QtWidgets.QLabel(self.gridLayoutWidget_4) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoSB00") + font.setPointSize(10) + self.Campus.setFont(font) + self.Campus.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.Campus.setObjectName("Campus") + self.positionchoose.addWidget(self.Campus, 2, 0, 2, 1) + self.line_2 = QtWidgets.QFrame(self.gridLayoutWidget_4) + self.line_2.setFrameShape(QtWidgets.QFrame.HLine) + self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_2.setObjectName("line_2") + self.positionchoose.addWidget(self.line_2, 4, 0, 1, 5) + self.ConfirmButton = QtWidgets.QPushButton(self.gridLayoutWidget_4) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ConfirmButton.sizePolicy().hasHeightForWidth()) + self.ConfirmButton.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoSB00") + font.setPointSize(10) + self.ConfirmButton.setFont(font) + self.ConfirmButton.setObjectName("ConfirmButton") + self.positionchoose.addWidget(self.ConfirmButton, 5, 4, 2, 1) + self.Origin = QtWidgets.QLabel(self.gridLayoutWidget_4) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoSB00") + font.setPointSize(10) + self.Origin.setFont(font) + self.Origin.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.Origin.setObjectName("Origin") + self.positionchoose.addWidget(self.Origin, 5, 0, 1, 2) + self.line_3 = QtWidgets.QFrame(self.gridLayoutWidget_4) + self.line_3.setFrameShape(QtWidgets.QFrame.HLine) + self.line_3.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_3.setObjectName("line_3") + self.positionchoose.addWidget(self.line_3, 7, 0, 1, 5) + self.gridLayoutWidget_5 = QtWidgets.QWidget(self.centralwidget) + self.gridLayoutWidget_5.setGeometry(QtCore.QRect(440, 120, 350, 90)) + self.gridLayoutWidget_5.setObjectName("gridLayoutWidget_5") + self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget_5) + self.gridLayout.setContentsMargins(0, 0, 0, 0) + self.gridLayout.setObjectName("gridLayout") + self.label_11 = QtWidgets.QLabel(self.gridLayoutWidget_5) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoR00") + font.setPointSize(10) + self.label_11.setFont(font) + self.label_11.setAlignment(QtCore.Qt.AlignCenter) + self.label_11.setObjectName("label_11") + self.gridLayout.addWidget(self.label_11, 3, 2, 1, 1) + self.label_10 = QtWidgets.QLabel(self.gridLayoutWidget_5) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoR00") + font.setPointSize(10) + self.label_10.setFont(font) + self.label_10.setAlignment(QtCore.Qt.AlignCenter) + self.label_10.setObjectName("label_10") + self.gridLayout.addWidget(self.label_10, 3, 0, 1, 1) + self.label_9 = QtWidgets.QLabel(self.gridLayoutWidget_5) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoR00") + font.setPointSize(10) + self.label_9.setFont(font) + self.label_9.setAlignment(QtCore.Qt.AlignCenter) + self.label_9.setObjectName("label_9") + self.gridLayout.addWidget(self.label_9, 2, 2, 1, 1) + self.ShowMetre = QtWidgets.QLineEdit(self.gridLayoutWidget_5) + self.ShowMetre.setAutoFillBackground(False) + self.ShowMetre.setReadOnly(True) + self.ShowMetre.setObjectName("ShowMetre") + self.gridLayout.addWidget(self.ShowMetre, 2, 1, 1, 1) + self.ShowMinute = QtWidgets.QLineEdit(self.gridLayoutWidget_5) + self.ShowMinute.setReadOnly(True) + self.ShowMinute.setObjectName("ShowMinute") + self.gridLayout.addWidget(self.ShowMinute, 3, 1, 1, 1) + self.label_8 = QtWidgets.QLabel(self.gridLayoutWidget_5) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoR00") + font.setPointSize(10) + self.label_8.setFont(font) + self.label_8.setAlignment(QtCore.Qt.AlignCenter) + self.label_8.setObjectName("label_8") + self.gridLayout.addWidget(self.label_8, 2, 0, 1, 1) + self.line_11 = QtWidgets.QFrame(self.gridLayoutWidget_5) + self.line_11.setFrameShape(QtWidgets.QFrame.HLine) + self.line_11.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_11.setObjectName("line_11") + self.gridLayout.addWidget(self.line_11, 1, 0, 1, 3) + self.label_6 = QtWidgets.QLabel(self.gridLayoutWidget_5) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_6.sizePolicy().hasHeightForWidth()) + self.label_6.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoB00") + font.setPointSize(10) + self.label_6.setFont(font) + self.label_6.setObjectName("label_6") + self.gridLayout.addWidget(self.label_6, 0, 0, 1, 3) + self.gridLayoutWidget_6 = QtWidgets.QWidget(self.centralwidget) + self.gridLayoutWidget_6.setGeometry(QtCore.QRect(10, 390, 421, 200)) + self.gridLayoutWidget_6.setObjectName("gridLayoutWidget_6") + self.Processgrid = QtWidgets.QGridLayout(self.gridLayoutWidget_6) + self.Processgrid.setContentsMargins(0, 0, 0, 0) + self.Processgrid.setObjectName("Processgrid") + self.progressBar = QtWidgets.QProgressBar(self.gridLayoutWidget_6) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoR00") + font.setPointSize(10) + self.progressBar.setFont(font) + self.progressBar.setProperty("value", 0) + self.progressBar.setInvertedAppearance(False) + self.progressBar.setObjectName("progressBar") + self.Processgrid.addWidget(self.progressBar, 2, 0, 1, 1) + self.line_8 = QtWidgets.QFrame(self.gridLayoutWidget_6) + self.line_8.setFrameShape(QtWidgets.QFrame.HLine) + self.line_8.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_8.setObjectName("line_8") + self.Processgrid.addWidget(self.line_8, 1, 0, 1, 1) + self.Processlabel = QtWidgets.QLabel(self.gridLayoutWidget_6) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.Processlabel.sizePolicy().hasHeightForWidth()) + self.Processlabel.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoEB00") + font.setPointSize(10) + self.Processlabel.setFont(font) + self.Processlabel.setObjectName("Processlabel") + self.Processgrid.addWidget(self.Processlabel, 0, 0, 1, 1) + self.ProcessViewer = QtWidgets.QPlainTextEdit(self.gridLayoutWidget_6) + self.ProcessViewer.setReadOnly(True) + self.ProcessViewer.setObjectName("ProcessViewer") + self.Processgrid.addWidget(self.ProcessViewer, 3, 0, 1, 1) + self.gridLayoutWidget_3 = QtWidgets.QWidget(self.centralwidget) + self.gridLayoutWidget_3.setGeometry(QtCore.QRect(10, 10, 780, 100)) + self.gridLayoutWidget_3.setObjectName("gridLayoutWidget_3") + self.TopGrid = QtWidgets.QGridLayout(self.gridLayoutWidget_3) + self.TopGrid.setContentsMargins(0, 0, 0, 0) + self.TopGrid.setObjectName("TopGrid") + self.GetTimeTableButton = QtWidgets.QPushButton(self.gridLayoutWidget_3) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoSB00") + font.setPointSize(10) + self.GetTimeTableButton.setFont(font) + self.GetTimeTableButton.setObjectName("GetTimeTableButton") + self.TopGrid.addWidget(self.GetTimeTableButton, 3, 6, 1, 1) + self.SPYlabel = QtWidgets.QLabel(self.gridLayoutWidget_3) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoH00") + font.setPointSize(10) + self.SPYlabel.setFont(font) + self.SPYlabel.setAlignment(QtCore.Qt.AlignCenter) + self.SPYlabel.setObjectName("SPYlabel") + self.TopGrid.addWidget(self.SPYlabel, 0, 0, 1, 1) + self.IDinput = QtWidgets.QLineEdit(self.gridLayoutWidget_3) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.IDinput.sizePolicy().hasHeightForWidth()) + self.IDinput.setSizePolicy(sizePolicy) + self.IDinput.setClearButtonEnabled(True) + self.IDinput.setObjectName("IDinput") + self.TopGrid.addWidget(self.IDinput, 0, 4, 1, 1) + self.Passwordlabel = QtWidgets.QLabel(self.gridLayoutWidget_3) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoSB00") + font.setPointSize(10) + self.Passwordlabel.setFont(font) + self.Passwordlabel.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.Passwordlabel.setObjectName("Passwordlabel") + self.TopGrid.addWidget(self.Passwordlabel, 1, 3, 1, 1) + self.line_9 = QtWidgets.QFrame(self.gridLayoutWidget_3) + self.line_9.setFrameShape(QtWidgets.QFrame.VLine) + self.line_9.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_9.setObjectName("line_9") + self.TopGrid.addWidget(self.line_9, 0, 1, 4, 1) + self.UseUrlButton = QtWidgets.QRadioButton(self.gridLayoutWidget_3) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoR00") + font.setPointSize(10) + self.UseUrlButton.setFont(font) + self.UseUrlButton.setObjectName("UseUrlButton") + self.TopGrid.addWidget(self.UseUrlButton, 3, 2, 1, 1) + self.byUslabel = QtWidgets.QLabel(self.gridLayoutWidget_3) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoR00") + font.setPointSize(10) + self.byUslabel.setFont(font) + self.byUslabel.setObjectName("byUslabel") + self.TopGrid.addWidget(self.byUslabel, 1, 0, 1, 1) + self.ShowPassword = QtWidgets.QCheckBox(self.gridLayoutWidget_3) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoR00") + font.setPointSize(10) + self.ShowPassword.setFont(font) + self.ShowPassword.setObjectName("ShowPassword") + self.TopGrid.addWidget(self.ShowPassword, 1, 5, 1, 1) + self.httpslabel = QtWidgets.QLabel(self.gridLayoutWidget_3) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoR00") + font.setPointSize(10) + self.httpslabel.setFont(font) + self.httpslabel.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.httpslabel.setObjectName("httpslabel") + self.TopGrid.addWidget(self.httpslabel, 3, 4, 1, 1) + self.URLlabel = QtWidgets.QLabel(self.gridLayoutWidget_3) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoSB00") + font.setPointSize(10) + self.URLlabel.setFont(font) + self.URLlabel.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.URLlabel.setObjectName("URLlabel") + self.TopGrid.addWidget(self.URLlabel, 3, 3, 1, 1) + self.URLinput = QtWidgets.QLineEdit(self.gridLayoutWidget_3) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.URLinput.sizePolicy().hasHeightForWidth()) + self.URLinput.setSizePolicy(sizePolicy) + self.URLinput.setClearButtonEnabled(True) + self.URLinput.setObjectName("URLinput") + self.TopGrid.addWidget(self.URLinput, 3, 5, 1, 1) + self.SigninButton = QtWidgets.QPushButton(self.gridLayoutWidget_3) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.SigninButton.sizePolicy().hasHeightForWidth()) + self.SigninButton.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoSB00") + font.setPointSize(10) + self.SigninButton.setFont(font) + self.SigninButton.setObjectName("SigninButton") + self.TopGrid.addWidget(self.SigninButton, 0, 6, 2, 1) + self.PWinput = QtWidgets.QLineEdit(self.gridLayoutWidget_3) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.PWinput.sizePolicy().hasHeightForWidth()) + self.PWinput.setSizePolicy(sizePolicy) + self.PWinput.setEchoMode(QtWidgets.QLineEdit.Password) + self.PWinput.setClearButtonEnabled(True) + self.PWinput.setObjectName("PWinput") + self.TopGrid.addWidget(self.PWinput, 1, 4, 1, 1) + self.line_10 = QtWidgets.QFrame(self.gridLayoutWidget_3) + self.line_10.setFrameShape(QtWidgets.QFrame.HLine) + self.line_10.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_10.setObjectName("line_10") + self.TopGrid.addWidget(self.line_10, 2, 2, 1, 5) + self.line_12 = QtWidgets.QFrame(self.gridLayoutWidget_3) + self.line_12.setFrameShape(QtWidgets.QFrame.HLine) + self.line_12.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_12.setObjectName("line_12") + self.TopGrid.addWidget(self.line_12, 2, 0, 1, 1) + self.HelpButton = QtWidgets.QPushButton(self.gridLayoutWidget_3) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoSB00") + font.setPointSize(10) + self.HelpButton.setFont(font) + self.HelpButton.setObjectName("HelpButton") + self.TopGrid.addWidget(self.HelpButton, 3, 0, 1, 1) + self.UseEverytimeButton = QtWidgets.QRadioButton(self.gridLayoutWidget_3) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoR00") + font.setPointSize(10) + self.UseEverytimeButton.setFont(font) + self.UseEverytimeButton.setObjectName("UseEverytimeButton") + self.TopGrid.addWidget(self.UseEverytimeButton, 0, 2, 2, 1) + spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.TopGrid.addItem(spacerItem1, 0, 5, 1, 1) + self.IDlabel = QtWidgets.QLabel(self.gridLayoutWidget_3) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoSB00") + font.setPointSize(10) + self.IDlabel.setFont(font) + self.IDlabel.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.IDlabel.setObjectName("IDlabel") + self.TopGrid.addWidget(self.IDlabel, 0, 3, 1, 1) + self.gridLayoutWidget = QtWidgets.QWidget(self.centralwidget) + self.gridLayoutWidget.setGeometry(QtCore.QRect(10, 300, 421, 80)) + self.gridLayoutWidget.setObjectName("gridLayoutWidget") + self.speedgrid = QtWidgets.QGridLayout(self.gridLayoutWidget) + self.speedgrid.setContentsMargins(0, 0, 0, 0) + self.speedgrid.setObjectName("speedgrid") + self.Speed = QtWidgets.QSlider(self.gridLayoutWidget) + self.Speed.setCursor(QtGui.QCursor(QtCore.Qt.SizeHorCursor)) + self.Speed.setAcceptDrops(False) + self.Speed.setAutoFillBackground(False) + self.Speed.setMaximum(10) + self.Speed.setPageStep(3) + self.Speed.setOrientation(QtCore.Qt.Horizontal) + self.Speed.setInvertedAppearance(False) + self.Speed.setInvertedControls(False) + self.Speed.setTickPosition(QtWidgets.QSlider.TicksBelow) + self.Speed.setObjectName("Speed") + self.speedgrid.addWidget(self.Speed, 2, 0, 1, 2) + self.Runninglabel = QtWidgets.QLabel(self.gridLayoutWidget) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoL00") + font.setPointSize(10) + self.Runninglabel.setFont(font) + self.Runninglabel.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.Runninglabel.setObjectName("Runninglabel") + self.speedgrid.addWidget(self.Runninglabel, 3, 1, 1, 1) + self.Walkinglabel = QtWidgets.QLabel(self.gridLayoutWidget) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoL00") + font.setPointSize(10) + self.Walkinglabel.setFont(font) + self.Walkinglabel.setObjectName("Walkinglabel") + self.speedgrid.addWidget(self.Walkinglabel, 3, 0, 1, 1) + self.line_6 = QtWidgets.QFrame(self.gridLayoutWidget) + self.line_6.setFrameShape(QtWidgets.QFrame.HLine) + self.line_6.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_6.setObjectName("line_6") + self.speedgrid.addWidget(self.line_6, 1, 0, 1, 2) + self.Speedlabel = QtWidgets.QLabel(self.gridLayoutWidget) + font = QtGui.QFont() + font.setFamily("AppleSDGothicNeoB00") + font.setPointSize(10) + self.Speedlabel.setFont(font) + self.Speedlabel.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.Speedlabel.setObjectName("Speedlabel") + self.speedgrid.addWidget(self.Speedlabel, 0, 0, 1, 2) + SPY.setCentralWidget(self.centralwidget) + self.actionchodjlf = QtWidgets.QAction(SPY) + self.actionchodjlf.setObjectName("actionchodjlf") + self.Destination.setBuddy(self.DestinationInput) + self.Origin.setBuddy(self.OriginInput) + self.Passwordlabel.setBuddy(self.PWinput) + self.URLlabel.setBuddy(self.URLinput) + self.IDlabel.setBuddy(self.IDinput) + + self.retranslateUi(SPY) + QtCore.QMetaObject.connectSlotsByName(SPY) + SPY.setTabOrder(self.UseEverytimeButton, self.IDinput) + SPY.setTabOrder(self.IDinput, self.PWinput) + SPY.setTabOrder(self.PWinput, self.SigninButton) + SPY.setTabOrder(self.SigninButton, self.UseUrlButton) + SPY.setTabOrder(self.UseUrlButton, self.URLinput) + SPY.setTabOrder(self.URLinput, self.GetTimeTableButton) + SPY.setTabOrder(self.GetTimeTableButton, self.SinchonCampus) + SPY.setTabOrder(self.SinchonCampus, self.SongdoCampus) + SPY.setTabOrder(self.SongdoCampus, self.OriginInput) + SPY.setTabOrder(self.OriginInput, self.DestinationInput) + SPY.setTabOrder(self.DestinationInput, self.ConfirmButton) + SPY.setTabOrder(self.ConfirmButton, self.ProcessViewer) + SPY.setTabOrder(self.ProcessViewer, self.ShowMetre) + SPY.setTabOrder(self.ShowMetre, self.ShowMinute) + SPY.setTabOrder(self.ShowMinute, self.ToUMaintext) + SPY.setTabOrder(self.ToUMaintext, self.HelpButton) + SPY.setTabOrder(self.HelpButton, self.ShowPassword) + + def retranslateUi(self, SPY): + _translate = QtCore.QCoreApplication.translate + SPY.setWindowTitle(_translate("SPY", "MainWindow")) + self.ToUMaintext.setHtml(_translate("SPY", "\n" +"\n" +"

====================================================

\n" +"

Shortest Path for Yonsei(SPY)

\n" +"

====================================================

\n" +"

Copyright (c) 2022 APTP2022-1

\n" +"


\n" +"

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

\n" +"


\n" +"

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

\n" +"


\n" +"

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

\n" +"


")) + self.ToU_copyriightlabel.setText(_translate("SPY", "Copyright")) + self.SongdoCampus.setText(_translate("SPY", "국제캠퍼스")) + self.DestinationInput.setPlaceholderText(_translate("SPY", "도착지")) + self.pushButton.setText(_translate("SPY", "Sinchon")) + self.SinchonCampus.setText(_translate("SPY", "신촌캠퍼스")) + self.OriginInput.setPlaceholderText(_translate("SPY", "출발지")) + self.Designator.setText(_translate("SPY", "Designator")) + self.pushButton_2.setText(_translate("SPY", "Songdo")) + self.Destination.setText(_translate("SPY", "Destination")) + self.Campus.setText(_translate("SPY", "Campus")) + self.ConfirmButton.setText(_translate("SPY", "Confirm")) + self.Origin.setText(_translate("SPY", "Origin")) + self.label_11.setText(_translate("SPY", "분 걸립니다.")) + self.label_10.setText(_translate("SPY", "선택된 속도로 걸어가면")) + self.label_9.setText(_translate("SPY", "m 이고, ")) + self.label_8.setText(_translate("SPY", " 두 지점 사이의 최단거리는")) + self.label_6.setText(_translate("SPY", "Output")) + self.Processlabel.setText(_translate("SPY", "Process")) + self.GetTimeTableButton.setText(_translate("SPY", "Get")) + self.SPYlabel.setText(_translate("SPY", "SPY - Shortest Path for Yonsei")) + self.IDinput.setPlaceholderText(_translate("SPY", "Everytime ID")) + self.Passwordlabel.setText(_translate("SPY", "Password")) + self.UseUrlButton.setText(_translate("SPY", "Use url")) + self.byUslabel.setText(_translate("SPY", "by APTP2022-1")) + self.ShowPassword.setText(_translate("SPY", "Show Password")) + self.httpslabel.setText(_translate("SPY", "https://everytime.kr/")) + self.URLlabel.setText(_translate("SPY", "URL")) + self.URLinput.setPlaceholderText(_translate("SPY", "대소문자 구분")) + self.SigninButton.setText(_translate("SPY", "Sign in")) + self.PWinput.setPlaceholderText(_translate("SPY", "Everytime PW")) + self.HelpButton.setText(_translate("SPY", "Help / Precautions")) + self.UseEverytimeButton.setText(_translate("SPY", "Use Everytime")) + self.IDlabel.setText(_translate("SPY", "ID")) + self.Runninglabel.setText(_translate("SPY", "Running")) + self.Walkinglabel.setText(_translate("SPY", "Walking")) + self.Speedlabel.setText(_translate("SPY", "Speed Selector")) + self.actionchodjlf.setText(_translate("SPY", "chodjlf")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + SPY = QtWidgets.QMainWindow() + ui = Ui_SPY() + ui.setupUi(SPY) + SPY.show() + sys.exit(app.exec_()) diff --git a/SPY.ui b/SPY.ui new file mode 100644 index 0000000..396baaa --- /dev/null +++ b/SPY.ui @@ -0,0 +1,926 @@ + + + SPY + + + + 0 + 0 + 800 + 600 + + + + + 800 + 600 + + + + + 800 + 600 + + + + + AppleSDGothicNeoR00 + 10 + + + + MainWindow + + + + + + 440 + 220 + 351 + 370 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + AppleSDGothicNeoL00 + 10 + + + + true + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'AppleSDGothicNeoL00','Pretendard Variable','AppleSDGothicNeoR00'; font-size:10pt; font-weight:400; font-style:normal;"> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'AppleSDGothicNeoR00'; font-size:9pt;">====================================================</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'AppleSDGothicNeoL00','AppleSDGothicNeoR00'; font-size:9pt;">Shortest Path for Yonsei(SPY)</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'AppleSDGothicNeoR00'; font-size:9pt;">====================================================</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'AppleSDGothicNeoR00'; font-size:9pt;">Copyright (c) 2022 APTP2022-1</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'AppleSDGothicNeoR00'; font-size:9pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'AppleSDGothicNeoR00'; font-size:9pt;">Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the &quot;Software&quot;), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'AppleSDGothicNeoR00'; font-size:9pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'AppleSDGothicNeoR00'; font-size:9pt;">The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. </span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'AppleSDGothicNeoR00'; font-size:9pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'AppleSDGothicNeoR00'; font-size:9pt;">THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'AppleSDGothicNeoR00'; font-size:9pt;"><br /></p></body></html> + + + + + + + + AppleSDGothicNeoSB00 + 10 + + + + QDialogButtonBox::Close + + + + + + + Qt::Horizontal + + + + + + + + 0 + 0 + + + + + AppleSDGothicNeoB00 + 10 + + + + Copyright + + + + + + + + + 10 + 120 + 421 + 170 + + + + + + + + AppleSDGothicNeoR00 + 10 + + + + 국제캠퍼스 + + + + + + + + AppleSDGothicNeoR00 + 10 + + + + 도착지 + + + + + + + + AppleSDGothicNeoSB00 + 10 + + + + Sinchon + + + + + + + + AppleSDGothicNeoR00 + 10 + + + + 신촌캠퍼스 + + + + + + + Qt::Vertical + + + + + + + + AppleSDGothicNeoR00 + 10 + + + + 출발지 + + + + + + + + 0 + 0 + + + + + AppleSDGothicNeoEB00 + 10 + + + + Designator + + + + + + + + AppleSDGothicNeoSB00 + 10 + + + + Songdo + + + + + + + Qt::Horizontal + + + + + + + + AppleSDGothicNeoSB00 + 10 + + + + Destination + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + DestinationInput + + + + + + + + AppleSDGothicNeoSB00 + 10 + + + + Campus + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Qt::Horizontal + + + + + + + + 0 + 0 + + + + + AppleSDGothicNeoSB00 + 10 + + + + Confirm + + + + + + + + AppleSDGothicNeoSB00 + 10 + + + + Origin + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + OriginInput + + + + + + + Qt::Horizontal + + + + + + + + + 440 + 120 + 350 + 90 + + + + + + + + AppleSDGothicNeoR00 + 10 + + + + 분 걸립니다. + + + Qt::AlignCenter + + + + + + + + AppleSDGothicNeoR00 + 10 + + + + 선택된 속도로 걸어가면 + + + Qt::AlignCenter + + + + + + + + AppleSDGothicNeoR00 + 10 + + + + m 이고, + + + Qt::AlignCenter + + + + + + + false + + + true + + + + + + + true + + + + + + + + AppleSDGothicNeoR00 + 10 + + + + 두 지점 사이의 최단거리는 + + + Qt::AlignCenter + + + + + + + Qt::Horizontal + + + + + + + + 0 + 0 + + + + + AppleSDGothicNeoB00 + 10 + + + + Output + + + + + + + + + 10 + 390 + 421 + 200 + + + + + + + + AppleSDGothicNeoR00 + 10 + + + + 0 + + + false + + + + + + + Qt::Horizontal + + + + + + + + 0 + 0 + + + + + AppleSDGothicNeoEB00 + 10 + + + + Process + + + + + + + true + + + + + + + + + 10 + 10 + 780 + 100 + + + + + + + + AppleSDGothicNeoSB00 + 10 + + + + Get + + + + + + + + AppleSDGothicNeoH00 + 10 + + + + SPY - Shortest Path for Yonsei + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + Everytime ID + + + true + + + + + + + + AppleSDGothicNeoSB00 + 10 + + + + Password + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + PWinput + + + + + + + Qt::Vertical + + + + + + + + AppleSDGothicNeoR00 + 10 + + + + Use url + + + + + + + + AppleSDGothicNeoR00 + 10 + + + + by APTP2022-1 + + + + + + + + AppleSDGothicNeoR00 + 10 + + + + Show Password + + + + + + + + AppleSDGothicNeoR00 + 10 + + + + https://everytime.kr/ + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + AppleSDGothicNeoSB00 + 10 + + + + URL + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + URLinput + + + + + + + + 0 + 0 + + + + 대소문자 구분 + + + true + + + + + + + + 0 + 0 + + + + + AppleSDGothicNeoSB00 + 10 + + + + Sign in + + + + + + + + 0 + 0 + + + + QLineEdit::Password + + + Everytime PW + + + true + + + + + + + Qt::Horizontal + + + + + + + Qt::Horizontal + + + + + + + + AppleSDGothicNeoSB00 + 10 + + + + Help / Precautions + + + + + + + + AppleSDGothicNeoR00 + 10 + + + + Use Everytime + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + AppleSDGothicNeoSB00 + 10 + + + + ID + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + IDinput + + + + + + + + + 10 + 300 + 421 + 80 + + + + + + + SizeHorCursor + + + false + + + false + + + 10 + + + 3 + + + Qt::Horizontal + + + false + + + false + + + QSlider::TicksBelow + + + + + + + + AppleSDGothicNeoL00 + 10 + + + + Running + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + AppleSDGothicNeoL00 + 10 + + + + Walking + + + + + + + Qt::Horizontal + + + + + + + + AppleSDGothicNeoB00 + 10 + + + + Speed Selector + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + + + chodjlf + + + + + UseEverytimeButton + IDinput + PWinput + SigninButton + UseUrlButton + URLinput + GetTimeTableButton + SinchonCampus + SongdoCampus + OriginInput + DestinationInput + ConfirmButton + ProcessViewer + ShowMetre + ShowMinute + ToUMaintext + HelpButton + ShowPassword + + + + diff --git a/SPYHelp.ui b/SPYHelp.ui new file mode 100644 index 0000000..63010fa --- /dev/null +++ b/SPYHelp.ui @@ -0,0 +1,69 @@ + + + Dialog + + + Qt::ApplicationModal + + + + 0 + 0 + 412 + 517 + + + + + AppleSDGothicNeoB00 + + + + Dialog + + + + + 10 + 10 + 395 + 501 + + + + + + + + AppleSDGothicNeoSB00 + + + + QDialogButtonBox::Close|QDialogButtonBox::Help|QDialogButtonBox::Ignore|QDialogButtonBox::Ok + + + + + + + + AppleSDGothicNeoR00 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'AppleSDGothicNeoR00','AppleSDGothicNeoB00'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">1. Everytime에 직접 접속하는 방법</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 이 방법으로는 Everytime을 이용해 만든 사용자의 시간표를 직접 분석해 사용자의 시간표가 선택된 속도로 </p></body></html> + + + + + + + + + diff --git a/SPY_main.py b/SPY_main.py new file mode 100644 index 0000000..df219d0 --- /dev/null +++ b/SPY_main.py @@ -0,0 +1,1180 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'SPY_new.ui' +# +# Created by: PyQt5 UI code generator 5.15.6 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.setWindowIcon(QtGui.QIcon('src/icons/SPYIcon.PNG')) + MainWindow.resize(600, 800) + MainWindow.setMinimumSize(QtCore.QSize(600, 800)) + MainWindow.setMaximumSize(QtCore.QSize(1080, 1920)) + fontDB = QtGui.QFontDatabase() + fontDB.addApplicationFont('src/fonts/Pretendard/Pretendard-Black.ttf') + fontDB.addApplicationFont('src/fonts/Pretendard/Pretendard-Semibold.ttf') + fontDB.addApplicationFont('src/fonts/Pretendard/Pretendard-Light.ttf') + fontDB.addApplicationFont('src/fonts/Pretendard/Pretendard-Medium.ttf') + fontDB.addApplicationFont('src/fonts/TitilliumWeb/TitilliumWeb-SemiBold.ttf') + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + MainWindow.setFont(font) + MainWindow.setIconSize(QtCore.QSize(507, 334)) + MainWindow.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly) + MainWindow.setTabShape(QtWidgets.QTabWidget.Rounded) + MainWindow.setUnifiedTitleAndToolBarOnMac(True) + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.gridLayout_5 = QtWidgets.QGridLayout(self.centralwidget) + self.gridLayout_5.setObjectName("gridLayout_5") + self.ProgressStartGrid = QtWidgets.QGridLayout() + self.ProgressStartGrid.setObjectName("ProgressStartGrid") + self.WarningText_ODnCustomspeed = QtWidgets.QLabel(self.centralwidget) + self.WarningText_ODnCustomspeed.setText("") + self.WarningText_ODnCustomspeed.setObjectName("WarningText_ODnCustomspeed") + self.WarningText_ODnCustomspeed.setText('장소를 입력한 뒤 Confirm 버튼을 눌러주세요.') + self.ProgressStartGrid.addWidget(self.WarningText_ODnCustomspeed, 0, 0, 1, 1) + spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.ProgressStartGrid.addItem(spacerItem, 0, 1, 1, 1) + self.pushButton_7 = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_7.setObjectName("pushButton_7") + self.ProgressStartGrid.addWidget(self.pushButton_7, 0, 2, 1, 1) + self.pushButton_7.clicked.connect(self.DijkstraStart) + self.gridLayout_5.addLayout(self.ProgressStartGrid, 4, 0, 1, 2) + self.BottomGrid = QtWidgets.QGridLayout() + self.BottomGrid.setObjectName("BottomGrid") + self.gridLayout_5.addLayout(self.BottomGrid, 10, 0, 1, 2) + self.DesignatorGrid = QtWidgets.QGridLayout() + self.DesignatorGrid.setObjectName("DesignatorGrid") + self.RunSpeed = QtWidgets.QRadioButton(self.centralwidget) + self.RunSpeed.setObjectName("RunSpeed") + self.SpeedbuttonGroup = QtWidgets.QButtonGroup(MainWindow) + self.SpeedbuttonGroup.setObjectName("SpeedbuttonGroup") + self.SpeedbuttonGroup.addButton(self.RunSpeed) + self.DesignatorGrid.addWidget(self.RunSpeed, 4, 6, 1, 1) + self.line_5 = QtWidgets.QFrame(self.centralwidget) + self.line_5.setFrameShape(QtWidgets.QFrame.HLine) + self.line_5.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_5.setObjectName("line_5") + self.DesignatorGrid.addWidget(self.line_5, 1, 6, 1, 3) + self.label_11 = QtWidgets.QLabel(self.centralwidget) + self.label_11.setObjectName("label_11") + self.DesignatorGrid.addWidget(self.label_11, 3, 7, 1, 1) + self.label_15 = QtWidgets.QLabel(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard SemiBold") + font.setPointSize(9) + self.label_15.setFont(font) + self.label_15.setObjectName("label_15") + self.DesignatorGrid.addWidget(self.label_15, 0, 6, 1, 1) + self.DestinationInput = QtWidgets.QLineEdit(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Light") + font.setPointSize(9) + self.DestinationInput.setFont(font) + self.DestinationInput.setEnabled(False) + self.DestinationInput.setObjectName("DestinationInput") + self.DesignatorGrid.addWidget(self.DestinationInput, 8, 2, 1, 2) + self.DestinationInput.textChanged.connect(self.ConfirmEnabler) + self.CommonSpeed = QtWidgets.QRadioButton(self.centralwidget) + self.CommonSpeed.setChecked(True) + self.CommonSpeed.setObjectName("CommonSpeed") + self.SpeedbuttonGroup.addButton(self.CommonSpeed) + self.DesignatorGrid.addWidget(self.CommonSpeed, 3, 6, 1, 1) + self.radioButton_4 = QtWidgets.QRadioButton(self.centralwidget) + self.radioButton_4.setObjectName("radioButton_4") + self.TimelimitbuttonGroup = QtWidgets.QButtonGroup(MainWindow) + self.TimelimitbuttonGroup.setObjectName("TimelimitbuttonGroup") + self.TimelimitbuttonGroup.addButton(self.radioButton_4) + self.DesignatorGrid.addWidget(self.radioButton_4, 2, 2, 1, 1) + self.label_13 = QtWidgets.QLabel(self.centralwidget) + self.label_13.setObjectName("label_13") + self.DesignatorGrid.addWidget(self.label_13, 4, 7, 1, 1) + self.pushButton = QtWidgets.QPushButton(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + self.pushButton.setFont(font) + self.pushButton.setObjectName("pushButton") + self.pushButton.setEnabled(False) + self.DesignatorGrid.addWidget(self.pushButton, 4, 4, 1, 1) + self.pushButton.clicked.connect(self.SC_DialogOpen) + self.Campus = QtWidgets.QLabel(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + self.Campus.setFont(font) + self.Campus.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.Campus.setObjectName("Campus") + self.DesignatorGrid.addWidget(self.Campus, 4, 0, 2, 1) + self.Designator = QtWidgets.QLabel(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.Designator.sizePolicy().hasHeightForWidth()) + self.Designator.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("Pretendard SemiBold") + font.setPointSize(9) + self.Designator.setFont(font) + self.Designator.setObjectName("Designator") + self.DesignatorGrid.addWidget(self.Designator, 0, 0, 1, 5) + self.line_12 = QtWidgets.QFrame(self.centralwidget) + self.line_12.setFrameShape(QtWidgets.QFrame.VLine) + self.line_12.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_12.setObjectName("line_12") + self.DesignatorGrid.addWidget(self.line_12, 0, 5, 9, 1) + self.Destination = QtWidgets.QLabel(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + self.Destination.setFont(font) + self.Destination.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.Destination.setObjectName("Destination") + self.DesignatorGrid.addWidget(self.Destination, 8, 0, 1, 2) + self.line_2 = QtWidgets.QFrame(self.centralwidget) + self.line_2.setFrameShape(QtWidgets.QFrame.VLine) + self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_2.setObjectName("line_2") + self.DesignatorGrid.addWidget(self.line_2, 4, 1, 2, 1) + self.SlowSpeed = QtWidgets.QRadioButton(self.centralwidget) + self.SlowSpeed.setObjectName("SlowSpeed") + self.SpeedbuttonGroup.addButton(self.SlowSpeed) + self.DesignatorGrid.addWidget(self.SlowSpeed, 2, 6, 1, 1) + self.line_6 = QtWidgets.QFrame(self.centralwidget) + self.line_6.setFrameShape(QtWidgets.QFrame.HLine) + self.line_6.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_6.setObjectName("line_6") + self.DesignatorGrid.addWidget(self.line_6, 1, 0, 1, 5) + self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + self.pushButton_3.setFont(font) + self.pushButton_3.setObjectName("pushButton_3") + self.pushButton_3.setEnabled(False) + self.DesignatorGrid.addWidget(self.pushButton_3, 5, 4, 1, 1) + self.pushButton_3.clicked.connect(self.SD_DialogOpen) + self.label_10 = QtWidgets.QLabel(self.centralwidget) + self.label_10.setObjectName("label_10") + self.DesignatorGrid.addWidget(self.label_10, 2, 7, 1, 1) + self.SinchonCampus = QtWidgets.QRadioButton(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + self.SinchonCampus.setFont(font) + self.SinchonCampus.setObjectName("SinchonCampus") + self.CampusbuttonGroup = QtWidgets.QButtonGroup(MainWindow) + self.CampusbuttonGroup.setObjectName("CampusbuttonGroup") + self.CampusbuttonGroup.addButton(self.SinchonCampus) + self.DesignatorGrid.addWidget(self.SinchonCampus, 4, 2, 1, 2) + self.SinchonCampus.toggled.connect(self.SC_CampusEnabler) + self.OriginInput = QtWidgets.QLineEdit(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Light") + font.setPointSize(9) + self.OriginInput.setFont(font) + self.OriginInput.setEnabled(False) + self.OriginInput.setObjectName("OriginInput") + self.DesignatorGrid.addWidget(self.OriginInput, 7, 2, 1, 2) + self.OriginInput.textChanged.connect(self.ConfirmEnabler) + self.lineEdit = QtWidgets.QLineEdit(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.lineEdit.sizePolicy().hasHeightForWidth()) + self.lineEdit.setSizePolicy(sizePolicy) + self.lineEdit.setEnabled(False) + self.lineEdit.setObjectName("lineEdit") + self.DesignatorGrid.addWidget(self.lineEdit, 3, 3, 1, 1) + spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.DesignatorGrid.addItem(spacerItem1, 2, 8, 3, 1) + spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.DesignatorGrid.addItem(spacerItem2, 8, 6, 1, 3) + self.label_8 = QtWidgets.QLabel(self.centralwidget) + self.label_8.setObjectName("label_8") + self.DesignatorGrid.addWidget(self.label_8, 3, 4, 1, 1) + self.CustomSpeedSelector = QtWidgets.QRadioButton(self.centralwidget) + self.CustomSpeedSelector.setObjectName("CustomSpeedSelector") + self.SpeedbuttonGroup.addButton(self.CustomSpeedSelector) + self.DesignatorGrid.addWidget(self.CustomSpeedSelector, 7, 6, 1, 1) + self.CustomSpeedSelector.toggled.connect(self.fCustomSpeed) + self.label_3 = QtWidgets.QLabel(self.centralwidget) + self.label_3.setObjectName("label_3") + self.DesignatorGrid.addWidget(self.label_3, 7, 8, 1, 1) + self.line_14 = QtWidgets.QFrame(self.centralwidget) + self.line_14.setFrameShape(QtWidgets.QFrame.VLine) + self.line_14.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_14.setObjectName("line_14") + self.DesignatorGrid.addWidget(self.line_14, 2, 1, 2, 1) + self.line_3 = QtWidgets.QFrame(self.centralwidget) + self.line_3.setFrameShape(QtWidgets.QFrame.HLine) + self.line_3.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_3.setObjectName("line_3") + self.DesignatorGrid.addWidget(self.line_3, 6, 0, 1, 5) + self.radioButton_5 = QtWidgets.QRadioButton(self.centralwidget) + self.radioButton_5.setObjectName("radioButton_5") + self.TimelimitbuttonGroup.addButton(self.radioButton_5) + self.DesignatorGrid.addWidget(self.radioButton_5, 2, 3, 1, 1) + self.label_7 = QtWidgets.QLabel(self.centralwidget) + self.label_7.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_7.setObjectName("label_7") + self.DesignatorGrid.addWidget(self.label_7, 2, 0, 2, 1) + self.label_14 = QtWidgets.QLabel(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + self.label_14.setFont(font) + self.label_14.setStyleSheet("Color: Red") + self.label_14.setTextFormat(QtCore.Qt.AutoText) + self.label_14.setObjectName("label_14") + self.DesignatorGrid.addWidget(self.label_14, 5, 7, 1, 2) + self.line_9 = QtWidgets.QFrame(self.centralwidget) + self.line_9.setFrameShape(QtWidgets.QFrame.HLine) + self.line_9.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_9.setObjectName("line_9") + self.DesignatorGrid.addWidget(self.line_9, 6, 6, 1, 3) + spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.DesignatorGrid.addItem(spacerItem3, 0, 7, 1, 2) + self.Usain = QtWidgets.QRadioButton(self.centralwidget) + self.Usain.setObjectName("Usain") + self.SpeedbuttonGroup.addButton(self.Usain) + self.DesignatorGrid.addWidget(self.Usain, 5, 6, 1, 1) + self.Usain.toggled.connect(self.UsainBolt) + self.radioButton_2 = QtWidgets.QRadioButton(self.centralwidget) + self.radioButton_2.setObjectName("radioButton_2") + self.TimelimitbuttonGroup.addButton(self.radioButton_2) + self.DesignatorGrid.addWidget(self.radioButton_2, 3, 2, 1, 1) + self.radioButton_2.toggled.connect(self.fCustomTimeLimit) + self.ConfirmButton = QtWidgets.QPushButton(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ConfirmButton.sizePolicy().hasHeightForWidth()) + self.ConfirmButton.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + self.ConfirmButton.setFont(font) + self.ConfirmButton.setEnabled(False) + self.ConfirmButton.setObjectName("ConfirmButton") + self.DesignatorGrid.addWidget(self.ConfirmButton, 7, 4, 2, 1) + self.ConfirmButton.clicked.connect(self.DirectionConfirm) + self.CustomSpeed = QtWidgets.QLineEdit(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.CustomSpeed.sizePolicy().hasHeightForWidth()) + self.CustomSpeed.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("Pretendard Light") + font.setPointSize(9) + self.CustomSpeed.setFont(font) + self.CustomSpeed.setObjectName("CustomSpeed") + self.CustomSpeed.setEnabled(False) + self.DesignatorGrid.addWidget(self.CustomSpeed, 7, 7, 1, 1) + self.Origin = QtWidgets.QLabel(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + self.Origin.setFont(font) + self.Origin.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.Origin.setObjectName("Origin") + self.DesignatorGrid.addWidget(self.Origin, 7, 0, 1, 2) + self.SongdoCampus = QtWidgets.QRadioButton(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + self.SongdoCampus.setFont(font) + self.SongdoCampus.setObjectName("SongdoCampus") + self.CampusbuttonGroup.addButton(self.SongdoCampus) + self.DesignatorGrid.addWidget(self.SongdoCampus, 5, 2, 1, 2) + self.SongdoCampus.toggled.connect(self.SD_campusEnabler) + self.radioButton_3 = QtWidgets.QRadioButton(self.centralwidget) + self.radioButton_3.setObjectName("radioButton_3") + self.TimelimitbuttonGroup.addButton(self.radioButton_3) + self.DesignatorGrid.addWidget(self.radioButton_3, 2, 4, 1, 1) + self.gridLayout_5.addLayout(self.DesignatorGrid, 3, 0, 1, 2) + self.OutputGrid = QtWidgets.QGridLayout() + self.OutputGrid.setObjectName("OutputGrid") + self.line_8 = QtWidgets.QFrame(self.centralwidget) + self.line_8.setFrameShape(QtWidgets.QFrame.HLine) + self.line_8.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_8.setObjectName("line_8") + self.OutputGrid.addWidget(self.line_8, 1, 0, 1, 1) + self.label_2 = QtWidgets.QLabel(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard SemiBold") + font.setPointSize(9) + self.label_2.setFont(font) + self.label_2.setObjectName("label_2") + self.OutputGrid.addWidget(self.label_2, 0, 0, 1, 1) + self.OutputText = QtWidgets.QTextEdit(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Light") + font.setPointSize(9) + self.OutputText.setFont(font) + self.OutputText.setReadOnly(True) + self.OutputText.setObjectName("OutputText") + self.OutputGrid.addWidget(self.OutputText, 2, 0, 1, 1) + self.gridLayout_5.addLayout(self.OutputGrid, 9, 0, 1, 2) + self.line_13 = QtWidgets.QFrame(self.centralwidget) + self.line_13.setFrameShape(QtWidgets.QFrame.HLine) + self.line_13.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_13.setObjectName("line_13") + self.gridLayout_5.addWidget(self.line_13, 2, 0, 1, 2) + self.ProcessGrid = QtWidgets.QGridLayout() + self.ProcessGrid.setObjectName("ProcessGrid") + self.ProcessViewer = QtWidgets.QPlainTextEdit(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Light") + font.setPointSize(9) + self.ProcessViewer.setFont(font) + self.ProcessViewer.setReadOnly(True) + self.ProcessViewer.setPlainText("") + self.ProcessViewer.setObjectName("ProcessViewer") + self.ProcessGrid.addWidget(self.ProcessViewer, 3, 0, 1, 1) + self.progressBar = QtWidgets.QProgressBar(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + self.progressBar.setFont(font) + self.progressBar.setProperty("value", 0) + self.progressBar.setInvertedAppearance(False) + self.progressBar.setObjectName("progressBar") + self.ProcessGrid.addWidget(self.progressBar, 2, 0, 1, 1) + self.label = QtWidgets.QLabel(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard SemiBold") + font.setPointSize(9) + self.label.setFont(font) + self.label.setObjectName("label") + self.ProcessGrid.addWidget(self.label, 0, 0, 1, 1) + self.line_4 = QtWidgets.QFrame(self.centralwidget) + self.line_4.setFrameShape(QtWidgets.QFrame.HLine) + self.line_4.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_4.setObjectName("line_4") + self.ProcessGrid.addWidget(self.line_4, 1, 0, 1, 1) + self.gridLayout_5.addLayout(self.ProcessGrid, 8, 0, 1, 2) + self.topgrid = QtWidgets.QGridLayout() + self.topgrid.setObjectName("topgrid") + self.https = QtWidgets.QLabel(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.https.sizePolicy().hasHeightForWidth()) + self.https.setSizePolicy(sizePolicy) + self.https.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.https.setObjectName("https") + self.topgrid.addWidget(self.https, 6, 2, 1, 1) + self.line_7 = QtWidgets.QFrame(self.centralwidget) + self.line_7.setFrameShape(QtWidgets.QFrame.HLine) + self.line_7.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_7.setObjectName("line_7") + self.topgrid.addWidget(self.line_7, 2, 0, 1, 5) + self.URL = QtWidgets.QLabel(self.centralwidget) + self.URL.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.URL.setObjectName("URL") + self.topgrid.addWidget(self.URL, 6, 1, 1, 1) + self.GetTimeTableButton = QtWidgets.QPushButton(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.GetTimeTableButton.sizePolicy().hasHeightForWidth()) + self.GetTimeTableButton.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + self.GetTimeTableButton.setEnabled(False) + self.GetTimeTableButton.setFont(font) + self.GetTimeTableButton.setObjectName("GetTimeTableButton") + self.topgrid.addWidget(self.GetTimeTableButton, 6, 4, 1, 1) + self.URLinput = QtWidgets.QLineEdit(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.URLinput.sizePolicy().hasHeightForWidth()) + self.URLinput.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("Pretendard Light") + font.setPointSize(10) + self.URLinput.setFont(font) + self.URLinput.setClearButtonEnabled(True) + self.URLinput.setEnabled(False) + self.URLinput.setObjectName("URLinput") + self.topgrid.addWidget(self.URLinput, 6, 3, 1, 1) + spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.topgrid.addItem(spacerItem4, 1, 1, 1, 4) + self.ShowPassword = QtWidgets.QCheckBox(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ShowPassword.sizePolicy().hasHeightForWidth()) + self.ShowPassword.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("Pretendard") + font.setPointSize(9) + self.ShowPassword.setFont(font) + self.ShowPassword.setEnabled(False) + self.ShowPassword.setObjectName("ShowPassword") + self.ShowPassword.stateChanged.connect(self.PasswordVisible) + self.topgrid.addWidget(self.ShowPassword, 4, 3, 1, 1) + self.UseEvUrl = QtWidgets.QRadioButton(self.centralwidget) + self.UseEvUrl.setObjectName("UseEvUrl") + self.UseMethodbuttonGroup = QtWidgets.QButtonGroup(MainWindow) + self.UseMethodbuttonGroup.setObjectName("UseMethodbuttonGroup") + self.UseMethodbuttonGroup.addButton(self.UseEvUrl) + self.topgrid.addWidget(self.UseEvUrl, 6, 0, 1, 1) + self.UseEvUrl.toggled.connect(self.UrlEnabler) + self.IDinput = QtWidgets.QLineEdit(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.IDinput.sizePolicy().hasHeightForWidth()) + self.IDinput.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("Pretendard Light") + font.setPointSize(9) + self.IDinput.setFont(font) + self.IDinput.setClearButtonEnabled(True) + self.IDinput.setEnabled(False) + self.IDinput.setObjectName("IDinput") + self.topgrid.addWidget(self.IDinput, 3, 2, 1, 1) + self.line = QtWidgets.QFrame(self.centralwidget) + self.line.setFrameShape(QtWidgets.QFrame.HLine) + self.line.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line.setObjectName("line") + self.topgrid.addWidget(self.line, 5, 0, 1, 5) + self.SigninButton = QtWidgets.QPushButton(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.SigninButton.sizePolicy().hasHeightForWidth()) + self.SigninButton.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + self.SigninButton.setFont(font) + self.SigninButton.setEnabled(False) + self.SigninButton.setObjectName("SigninButton") + self.topgrid.addWidget(self.SigninButton, 3, 4, 2, 1) + self.showResult = QtWidgets.QLabel(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.showResult.sizePolicy().hasHeightForWidth()) + self.showResult.setSizePolicy(sizePolicy) + self.showResult.setText("") + self.showResult.setObjectName("showResult") + self.topgrid.addWidget(self.showResult, 3, 3, 1, 1) + self.ID = QtWidgets.QLabel(self.centralwidget) + self.ID.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.ID.setObjectName("ID") + self.topgrid.addWidget(self.ID, 3, 1, 1, 1) + self.UseEv = QtWidgets.QRadioButton(self.centralwidget) + self.UseEv.setObjectName("UseEv") + self.UseMethodbuttonGroup.addButton(self.UseEv) + self.topgrid.addWidget(self.UseEv, 3, 0, 2, 1) + self.UseEv.toggled.connect(self.EverytimeIDEnabler) + self.radioButton = QtWidgets.QRadioButton(self.centralwidget) + self.radioButton.setChecked(True) + self.radioButton.setObjectName("radioButton") + self.UseMethodbuttonGroup.addButton(self.radioButton) + self.topgrid.addWidget(self.radioButton, 1, 0, 1, 1) + self.radioButton.toggled.connect(self.DesignatorInitialization) + self.PW = QtWidgets.QLabel(self.centralwidget) + self.PW.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.PW.setObjectName("PW") + self.topgrid.addWidget(self.PW, 4, 1, 1, 1) + self.line_10 = QtWidgets.QFrame(self.centralwidget) + self.line_10.setFrameShape(QtWidgets.QFrame.HLine) + self.line_10.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_10.setObjectName("line_10") + self.topgrid.addWidget(self.line_10, 0, 0, 1, 5) + self.PWinput = QtWidgets.QLineEdit(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.PWinput.sizePolicy().hasHeightForWidth()) + self.PWinput.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("Pretendard Light") + font.setPointSize(9) + self.PWinput.setFont(font) + self.PWinput.setEchoMode(QtWidgets.QLineEdit.Password) + self.PWinput.setClearButtonEnabled(True) + self.PWinput.setEnabled(False) + self.PWinput.setObjectName("PWinput") + self.topgrid.addWidget(self.PWinput, 4, 2, 1, 1) + self.gridLayout_5.addLayout(self.topgrid, 1, 0, 1, 2) + self.line_11 = QtWidgets.QFrame(self.centralwidget) + self.line_11.setFrameShape(QtWidgets.QFrame.HLine) + self.line_11.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_11.setObjectName("line_11") + self.gridLayout_5.addWidget(self.line_11, 5, 0, 1, 2) + self.gridLayout = QtWidgets.QGridLayout() + self.gridLayout.setObjectName("gridLayout") + self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_5.sizePolicy().hasHeightForWidth()) + self.pushButton_5.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("Pretendard SemiBold") + font.setPointSize(9) + self.pushButton_5.setFont(font) + self.pushButton_5.setObjectName("pushButton_5") + self.gridLayout.addWidget(self.pushButton_5, 0, 2, 1, 1) + self.label_5 = QtWidgets.QLabel(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Titillium Web SemiBold") + font.setPointSize(9) + font.setBold(False) + font.setWeight(50) + self.label_5.setFont(font) + self.label_5.setStyleSheet("Color: #99af80") + self.label_5.setObjectName("label_5") + self.gridLayout.addWidget(self.label_5, 0, 1, 1, 1) + self.pushButton_6 = QtWidgets.QPushButton(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_6.sizePolicy().hasHeightForWidth()) + self.pushButton_6.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("Pretendard SemiBold") + font.setPointSize(9) + self.pushButton_6.setFont(font) + self.pushButton_6.setObjectName("pushButton_6") + self.gridLayout.addWidget(self.pushButton_6, 0, 3, 1, 1) + self.label_4 = QtWidgets.QLabel(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Titillium Web SemiBold") + font.setPointSize(9) + font.setBold(False) + font.setWeight(50) + self.label_4.setFont(font) + self.label_4.setStyleSheet("Color: #99af80") + self.label_4.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_4.setObjectName("label_4") + self.gridLayout.addWidget(self.label_4, 0, 0, 1, 1) + self.gridLayout_5.addLayout(self.gridLayout, 0, 0, 1, 2) + MainWindow.setCentralWidget(self.centralwidget) + + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "SPY - Shortest Pathfinder for Yonsei")) + self.pushButton_7.setText(_translate("MainWindow", "Start")) + self.RunSpeed.setText(_translate("MainWindow", "빠르게")) + self.label_11.setText(_translate("MainWindow", "걷는 속도 4.5km/h")) + self.label_15.setText(_translate("MainWindow", "Speed")) + self.DestinationInput.setPlaceholderText(_translate("MainWindow", "도착지")) + self.CommonSpeed.setText(_translate("MainWindow", "느리게")) + self.radioButton_4.setText(_translate("MainWindow", "3분")) + self.label_13.setText(_translate("MainWindow", "뛰는 속도 7.5km/h")) + self.pushButton.setText(_translate("MainWindow", "Sinchon")) + self.Campus.setText(_translate("MainWindow", "Campus")) + self.Designator.setText(_translate("MainWindow", "Designator")) + self.Destination.setText(_translate("MainWindow", "Destination")) + self.SlowSpeed.setText(_translate("MainWindow", "천천히")) + self.pushButton_3.setText(_translate("MainWindow", "Songdo")) + self.label_10.setText(_translate("MainWindow", "걷는 속도 2.5km/h")) + self.SinchonCampus.setText(_translate("MainWindow", "신촌캠퍼스")) + self.OriginInput.setPlaceholderText(_translate("MainWindow", "출발지")) + self.lineEdit.setPlaceholderText(_translate("MainWindow", "Minute")) + self.label_8.setText(_translate("MainWindow", "분")) + self.CustomSpeedSelector.setText(_translate("MainWindow", "Custom")) + self.label_3.setText(_translate("MainWindow", "km/h")) + self.radioButton_5.setText(_translate("MainWindow", "5분")) + self.label_7.setText(_translate("MainWindow", "Timelimit")) + self.label_14.setText(_translate("MainWindow", "(가능하지 않을 수도 있습니다.)")) + self.Usain.setText(_translate("MainWindow", "물리적 가능성")) + self.radioButton_2.setText(_translate("MainWindow", "Custom")) + self.ConfirmButton.setText(_translate("MainWindow", "Confirm")) + self.CustomSpeed.setPlaceholderText(_translate("MainWindow", "Speed")) + self.Origin.setText(_translate("MainWindow", "Origin")) + self.SongdoCampus.setText(_translate("MainWindow", "국제캠퍼스")) + self.radioButton_3.setText(_translate("MainWindow", "10분")) + self.label_2.setText(_translate("MainWindow", "Output")) + self.label.setText(_translate("MainWindow", "Process")) + self.https.setText(_translate("MainWindow", "https://everytime.kr/")) + self.URL.setText(_translate("MainWindow", "URL")) + self.GetTimeTableButton.setText(_translate("MainWindow", "Get")) + self.URLinput.setPlaceholderText(_translate("MainWindow", "대소문자 구분")) + self.ShowPassword.setText(_translate("MainWindow", "Show Password")) + self.UseEvUrl.setText(_translate("MainWindow", "Use url")) + self.IDinput.setPlaceholderText(_translate("MainWindow", "Everytime ID")) + self.SigninButton.setText(_translate("MainWindow", "Sign in")) + self.ID.setText(_translate("MainWindow", "ID")) + self.UseEv.setText(_translate("MainWindow", "Use Everytime")) + self.radioButton.setText(_translate("MainWindow", "Use Designator")) + self.PW.setText(_translate("MainWindow", "Password")) + self.PWinput.setPlaceholderText(_translate("MainWindow", "Everytime PW")) + self.pushButton_5.setText(_translate("MainWindow", "Help")) + self.label_5.setText(_translate("MainWindow", "by APTP2022-1")) + self.pushButton_6.setText(_translate("MainWindow", "Github")) + self.label_4.setText(_translate("MainWindow", "SPY - Time 2 SV")) + + def EverytimeIDEnabler(self): + if self.UseEv.isChecked() == True: + self.IDinput.setEnabled(True) + self.PWinput.setEnabled(True) + self.ShowPassword.setEnabled(True) + self.SigninButton.setEnabled(True) + self.radioButton_2.setEnabled(False) + self.radioButton_4.setEnabled(False) + self.radioButton_5.setEnabled(False) + self.SinchonCampus.setEnabled(False) + self.SongdoCampus.setEnabled(False) + self.pushButton.setEnabled(False) + self.pushButton_3.setEnabled(False) + self.ConfirmButton.setEnabled(False) + self.radioButton_3.setChecked(True) + self.URLinput.setEnabled(False) + self.GetTimeTableButton.setEnabled(False) + self.OriginInput.setEnabled(False) + self.DestinationInput.setEnabled(False) + + def PasswordVisible(self): + if self.ShowPassword.isChecked() == True: + self.PWinput.setEchoMode(QtWidgets.QLineEdit.Normal) + else: + self.PWinput.setEchoMode(QtWidgets.QLineEdit.Password) + + def DesignatorInitialization(self): + if self.radioButton.isChecked() == True: + self.URLinput.setEnabled(False) + self.radioButton_2.setEnabled(True) + self.radioButton_4.setEnabled(True) + self.radioButton_5.setEnabled(True) + self.SinchonCampus.setEnabled(True) + self.SongdoCampus.setEnabled(True) + self.ConfirmButton.setEnabled(True) + self.IDinput.setEnabled(False) + self.PWinput.setEnabled(False) + self.ShowPassword.setEnabled(False) + self.SigninButton.setEnabled(False) + self.OriginInput.setEnabled(True) + self.DestinationInput.setEnabled(True) + self.URLinput.setEnabled(False) + self.GetTimeTableButton.setEnabled(False) + + def UrlEnabler(self): + if self.UseEvUrl.isChecked() == True: + self.URLinput.setEnabled(True) + self.GetTimeTableButton.setEnabled(True) + self.radioButton_2.setEnabled(False) + self.radioButton_4.setEnabled(False) + self.radioButton_5.setEnabled(False) + self.SinchonCampus.setEnabled(False) + self.SongdoCampus.setEnabled(False) + self.pushButton.setEnabled(False) + self.pushButton_3.setEnabled(False) + self.ConfirmButton.setEnabled(False) + self.radioButton_3.setChecked(True) + self.IDinput.setEnabled(False) + self.PWinput.setEnabled(False) + self.ShowPassword.setEnabled(False) + self.SigninButton.setEnabled(False) + self.OriginInput.setEnabled(False) + self.DestinationInput.setEnabled(False) + + def Timelimit(self): + if self.radioButton_2.isChecked() == True: + return self.radioButton_2.text().toDouble() + if self.radioButton_3.isChecked() == True: + return 10.0 + if self.radioButton_4.isChecked() == True: + return 3.0 + if self.radioButton_5.isChecked() == True: + return 5.0 + + def fCustomTimeLimit(self): + if self.radioButton_2.isChecked() == True: + self.lineEdit.setEnabled(True) + self.lineEdit.setValidator(QtGui.QIntValidator(0,100,self.lineEdit)) + else: + self.lineEdit.setEnabled(False) + + def HowSpeed(self): + if self.SlowSpeed.isChecked() == True: + return 0.024 + if self.CommonSpeed.isChecked() == True: + return 0.013 + if self.RunSpeed.isChecked() == True: + return 0.008 + if self.Usain.isChecked() == True: + return 0.0016 + if self.CustomSpeedSelector.isChecked() == True: + inputspeed = self.CustomSpeed.text().toDouble() + convertedspeed = 60 / (inputspeed * 1000) + return convertedspeed + + def fCustomSpeed(self): + if self.CustomSpeedSelector.isChecked() == True: + self.CustomSpeed.setEnabled(True) + self.CustomSpeed.setValidator(QtGui.QDoubleValidator(0.,10.0,1,self.CustomSpeed)) + else: + self.CustomSpeed.setEnabled(False) + + def SC_CampusEnabler(self): + if self.SinchonCampus.isChecked() == True: + self.pushButton.setEnabled(True) + self.pushButton_3.setEnabled(False) + self.OriginInput.setEnabled(True) + self.DestinationInput.setEnabled(True) + else: + self.pushButton.setEnabled(False) + self.OriginInput.setEnabled(False) + self.DestinationInput.setEnabled(False) + + def SD_campusEnabler(self): + if self.SongdoCampus.isChecked() == True: + self.pushButton_3.setEnabled(True) + self.pushButton.setEnabled(False) + self.OriginInput.setEnabled(True) + self.DestinationInput.setEnabled(True) + else: + self.pushButton_3.setEnabled(False) + self.OriginInput.setEnabled(False) + self.DestinationInput.setEnabled(False) + + def SC_DialogOpen(self): + Dialog = QtWidgets.QDialog() + Dialog.setObjectName("Dialog") + Dialog.setWindowIcon(QtGui.QIcon('src/icons/sinchonIcon.PNG')) + Dialog.setWindowTitle("SPY @ Sinchon") + Dialog.resize(400, 600) + Dialog.setMinimumSize(QtCore.QSize(400, 600)) + Dialog.setMaximumSize(QtCore.QSize(400, 600)) + fontDB = QtGui.QFontDatabase() + fontDB.addApplicationFont('src/fonts/Pretendard/Pretendard-Medium.ttf') + self.tableWidget = QtWidgets.QTableWidget(Dialog) + self.tableWidget.setGeometry(QtCore.QRect(10, 10, 381, 581)) + self.tableWidget.setObjectName("tableWidget") + self.tableWidget.setColumnCount(2) + self.tableWidget.setRowCount(116) + self.tableWidget.setColumnWidth(0, int(self.tableWidget.width()*2/5)) + self.tableWidget.setColumnWidth(1, int(self.tableWidget.width()*3/5)) + self.tableWidget.setHorizontalHeaderLabels(['Node', '건물 이름']) + self.tableWidget.setItem(0, 0, QtWidgets.QTableWidgetItem('간호대학')) + self.tableWidget.setItem(0, 1, QtWidgets.QTableWidgetItem('간호대학')) + self.tableWidget.setItem(1, 0, QtWidgets.QTableWidgetItem('광혜관')) + self.tableWidget.setItem(1, 1, QtWidgets.QTableWidgetItem('광혜관')) + self.tableWidget.setItem(2, 0, QtWidgets.QTableWidgetItem('동문회관')) + self.tableWidget.setItem(2, 1, QtWidgets.QTableWidgetItem('동문회관')) + self.tableWidget.setItem(3, 0, QtWidgets.QTableWidgetItem('러들로교수동')) + self.tableWidget.setItem(3, 1, QtWidgets.QTableWidgetItem('러들로교수동')) + self.tableWidget.setItem(4, 0, QtWidgets.QTableWidgetItem('병원출입구')) + self.tableWidget.setItem(4, 1, QtWidgets.QTableWidgetItem('병원출입구')) + self.tableWidget.setItem(5, 0, QtWidgets.QTableWidgetItem('세브란스병원 본관')) + self.tableWidget.setItem(5, 1, QtWidgets.QTableWidgetItem('세브란스병원 본관')) + self.tableWidget.setItem(6, 0, QtWidgets.QTableWidgetItem('심장혈관병원')) + self.tableWidget.setItem(6, 1, QtWidgets.QTableWidgetItem('심장혈관병원')) + self.tableWidget.setItem(7, 0, QtWidgets.QTableWidgetItem('안이비인후과병원')) + self.tableWidget.setItem(7, 1, QtWidgets.QTableWidgetItem('안이비인후과병원')) + self.tableWidget.setItem(8, 0, QtWidgets.QTableWidgetItem('어린이병원')) + self.tableWidget.setItem(8, 1, QtWidgets.QTableWidgetItem('어린이병원')) + self.tableWidget.setItem(9, 0, QtWidgets.QTableWidgetItem('에비슨의생명연구센터1')) + self.tableWidget.setItem(9, 1, QtWidgets.QTableWidgetItem('에비슨의생명연구센터1')) + self.tableWidget.setItem(10, 0, QtWidgets.QTableWidgetItem('에비슨의생명연구센터2')) + self.tableWidget.setItem(10, 1, QtWidgets.QTableWidgetItem('에비슨의생명연구센터2')) + self.tableWidget.setItem(11, 0, QtWidgets.QTableWidgetItem('에비슨의생명연구센터 옆길')) + self.tableWidget.setItem(11, 1, QtWidgets.QTableWidgetItem('에비슨의생명연구센터 옆길')) + self.tableWidget.setItem(12, 0, QtWidgets.QTableWidgetItem('연세암병원1')) + self.tableWidget.setItem(12, 1, QtWidgets.QTableWidgetItem('연세암병원1')) + self.tableWidget.setItem(13, 0, QtWidgets.QTableWidgetItem('연세암병원2')) + self.tableWidget.setItem(13, 1, QtWidgets.QTableWidgetItem('연세암병원2')) + self.tableWidget.setItem(14, 0, QtWidgets.QTableWidgetItem('의과대학')) + self.tableWidget.setItem(14, 1, QtWidgets.QTableWidgetItem('의과대학')) + self.tableWidget.setItem(15, 0, QtWidgets.QTableWidgetItem('의료원정문')) + self.tableWidget.setItem(15, 1, QtWidgets.QTableWidgetItem('의료원정문')) + self.tableWidget.setItem(16, 0, QtWidgets.QTableWidgetItem('임상의학연구센터')) + self.tableWidget.setItem(16, 1, QtWidgets.QTableWidgetItem('임상의학연 구센터')) + self.tableWidget.setItem(17, 0, QtWidgets.QTableWidgetItem('재활병원')) + self.tableWidget.setItem(17, 1, QtWidgets.QTableWidgetItem('재활병원')) + self.tableWidget.setItem(18, 0, QtWidgets.QTableWidgetItem('제중관')) + self.tableWidget.setItem(18, 1, QtWidgets.QTableWidgetItem('제중관')) + self.tableWidget.setItem(19, 0, QtWidgets.QTableWidgetItem('치과대학')) + self.tableWidget.setItem(19, 1, QtWidgets.QTableWidgetItem('치과대학')) + self.tableWidget.setItem(20, 0, QtWidgets.QTableWidgetItem('치과대학병원')) + self.tableWidget.setItem(20, 1, QtWidgets.QTableWidgetItem('치과대학병원')) + self.tableWidget.setItem(21, 0, QtWidgets.QTableWidgetItem('공학원')) + self.tableWidget.setItem(21, 1, QtWidgets.QTableWidgetItem('공학원')) + self.tableWidget.setItem(22, 0, QtWidgets.QTableWidgetItem('남문')) + self.tableWidget.setItem(22, 1, QtWidgets.QTableWidgetItem('남문')) + self.tableWidget.setItem(23, 0, QtWidgets.QTableWidgetItem('대운동장 입구')) + self.tableWidget.setItem(23, 1, QtWidgets.QTableWidgetItem('대운동장 입구')) + self.tableWidget.setItem(24, 0, QtWidgets.QTableWidgetItem('백양누리')) + self.tableWidget.setItem(24, 1, QtWidgets.QTableWidgetItem('백양누리')) + self.tableWidget.setItem(25, 0, QtWidgets.QTableWidgetItem('별동 연구동')) + self.tableWidget.setItem(25, 1, QtWidgets.QTableWidgetItem('별동 연구동')) + self.tableWidget.setItem(26, 0, QtWidgets.QTableWidgetItem('산학협동관')) + self.tableWidget.setItem(26, 1, QtWidgets.QTableWidgetItem('산학협동관')) + self.tableWidget.setItem(27, 0, QtWidgets.QTableWidgetItem('야구장 입구1')) + self.tableWidget.setItem(27, 1, QtWidgets.QTableWidgetItem('야구장 입구1')) + self.tableWidget.setItem(28, 0, QtWidgets.QTableWidgetItem('야구장 입구2')) + self.tableWidget.setItem(28, 1, QtWidgets.QTableWidgetItem('야구장 입구2')) + self.tableWidget.setItem(29, 0, QtWidgets.QTableWidgetItem('재활학교')) + self.tableWidget.setItem(29, 1, QtWidgets.QTableWidgetItem('재활학교')) + self.tableWidget.setItem(30, 0, QtWidgets.QTableWidgetItem('정문')) + self.tableWidget.setItem(30, 1, QtWidgets.QTableWidgetItem('정문')) + self.tableWidget.setItem(31, 0, QtWidgets.QTableWidgetItem('제1공학관')) + self.tableWidget.setItem(31, 1, QtWidgets.QTableWidgetItem('제1공학관')) + self.tableWidget.setItem(32, 0, QtWidgets.QTableWidgetItem('제2공학관 안쪽')) + self.tableWidget.setItem(32, 1, QtWidgets.QTableWidgetItem('제2공학관 안쪽')) + self.tableWidget.setItem(33, 0, QtWidgets.QTableWidgetItem('제3공학관 안쪽')) + self.tableWidget.setItem(33, 1, QtWidgets.QTableWidgetItem('제3공학관 안쪽')) + self.tableWidget.setItem(34, 0, QtWidgets.QTableWidgetItem('제3공학관 바깥쪽')) + self.tableWidget.setItem(34, 1, QtWidgets.QTableWidgetItem('제3공학관 바깥쪽')) + self.tableWidget.setItem(35, 0, QtWidgets.QTableWidgetItem('제4공학관')) + self.tableWidget.setItem(35, 1, QtWidgets.QTableWidgetItem('제4공학관')) + self.tableWidget.setItem(36, 0, QtWidgets.QTableWidgetItem('첨단과학기술연구관')) + self.tableWidget.setItem(36, 1, QtWidgets.QTableWidgetItem('첨단과학기술연구관')) + self.tableWidget.setItem(37, 0, QtWidgets.QTableWidgetItem('학군단')) + self.tableWidget.setItem(37, 1, QtWidgets.QTableWidgetItem('학군단')) + self.tableWidget.setItem(38, 0, QtWidgets.QTableWidgetItem('GS칼텍스산학협력관')) + self.tableWidget.setItem(38, 1, QtWidgets.QTableWidgetItem('GS칼텍스산학협력관')) + self.tableWidget.setItem(39, 0, QtWidgets.QTableWidgetItem('IBS관')) + self.tableWidget.setItem(39, 1, QtWidgets.QTableWidgetItem('IBS관')) + self.tableWidget.setItem(40, 0, QtWidgets.QTableWidgetItem('경영관')) + self.tableWidget.setItem(40, 1, QtWidgets.QTableWidgetItem('경영관')) + self.tableWidget.setItem(41, 0, QtWidgets.QTableWidgetItem('광혜원')) + self.tableWidget.setItem(41, 1, QtWidgets.QTableWidgetItem('광혜원')) + self.tableWidget.setItem(42, 0, QtWidgets.QTableWidgetItem('대강당')) + self.tableWidget.setItem(42, 1, QtWidgets.QTableWidgetItem('대강당')) + self.tableWidget.setItem(43, 0, QtWidgets.QTableWidgetItem('루스채플')) + self.tableWidget.setItem(43, 1, QtWidgets.QTableWidgetItem('루스채플')) + self.tableWidget.setItem(44, 0, QtWidgets.QTableWidgetItem('백주년기념관/박물관')) + self.tableWidget.setItem(44, 1, QtWidgets.QTableWidgetItem('백주년기념관/박물관')) + self.tableWidget.setItem(45, 0, QtWidgets.QTableWidgetItem('음악관 A 1')) + self.tableWidget.setItem(45, 1, QtWidgets.QTableWidgetItem('음악관 A 1')) + self.tableWidget.setItem(46, 0, QtWidgets.QTableWidgetItem('음악관 A 2')) + self.tableWidget.setItem(46, 1, QtWidgets.QTableWidgetItem('음악관 A 2')) + self.tableWidget.setItem(47, 0, QtWidgets.QTableWidgetItem('음악관 B')) + self.tableWidget.setItem(47, 1, QtWidgets.QTableWidgetItem('음악관 B')) + self.tableWidget.setItem(48, 0, QtWidgets.QTableWidgetItem('학생회관')) + self.tableWidget.setItem(48, 1, QtWidgets.QTableWidgetItem('학생회관')) + self.tableWidget.setItem(49, 0, QtWidgets.QTableWidgetItem('과학관')) + self.tableWidget.setItem(49, 1, QtWidgets.QTableWidgetItem('과학관')) + self.tableWidget.setItem(50, 0, QtWidgets.QTableWidgetItem('과학원')) + self.tableWidget.setItem(50, 1, QtWidgets.QTableWidgetItem('과학원')) + self.tableWidget.setItem(51, 0, QtWidgets.QTableWidgetItem('광복관')) + self.tableWidget.setItem(51, 1, QtWidgets.QTableWidgetItem('광복관')) + self.tableWidget.setItem(52, 0, QtWidgets.QTableWidgetItem('광복관 별관')) + self.tableWidget.setItem(52, 1, QtWidgets.QTableWidgetItem('광복관 별관')) + self.tableWidget.setItem(53, 0, QtWidgets.QTableWidgetItem('백양관1')) + self.tableWidget.setItem(53, 1, QtWidgets.QTableWidgetItem('백양관1')) + self.tableWidget.setItem(54, 0, QtWidgets.QTableWidgetItem('백양관2')) + self.tableWidget.setItem(54, 1, QtWidgets.QTableWidgetItem('백양관2')) + self.tableWidget.setItem(55, 0, QtWidgets.QTableWidgetItem('삼성관')) + self.tableWidget.setItem(55, 1, QtWidgets.QTableWidgetItem('삼성관')) + self.tableWidget.setItem(56, 0, QtWidgets.QTableWidgetItem('서문')) + self.tableWidget.setItem(56, 1, QtWidgets.QTableWidgetItem('서문')) + self.tableWidget.setItem(57, 0, QtWidgets.QTableWidgetItem('스포츠과학관')) + self.tableWidget.setItem(57, 1, QtWidgets.QTableWidgetItem('스포츠과학관')) + self.tableWidget.setItem(58, 0, QtWidgets.QTableWidgetItem('언더우드가 기념관')) + self.tableWidget.setItem(58, 1, QtWidgets.QTableWidgetItem('언더우드가 기념관')) + self.tableWidget.setItem(59, 0, QtWidgets.QTableWidgetItem('연세삼성학술정보관1')) + self.tableWidget.setItem(59, 1, QtWidgets.QTableWidgetItem('연세삼성학술정보관1')) + self.tableWidget.setItem(60, 0, QtWidgets.QTableWidgetItem('연세삼성학술정보관2')) + self.tableWidget.setItem(60, 1, QtWidgets.QTableWidgetItem('연세삼성학술정보관2')) + self.tableWidget.setItem(61, 0, QtWidgets.QTableWidgetItem('중앙도서관1')) + self.tableWidget.setItem(61, 1, QtWidgets.QTableWidgetItem('중앙도서관1')) + self.tableWidget.setItem(62, 0, QtWidgets.QTableWidgetItem('중앙도서관2')) + self.tableWidget.setItem(62, 1, QtWidgets.QTableWidgetItem('중앙도서관2')) + self.tableWidget.setItem(63, 0, QtWidgets.QTableWidgetItem('체육관')) + self.tableWidget.setItem(63, 1, QtWidgets.QTableWidgetItem('체육관')) + self.tableWidget.setItem(64, 0, QtWidgets.QTableWidgetItem('체육교육관')) + self.tableWidget.setItem(64, 1, QtWidgets.QTableWidgetItem('체육교육관')) + self.tableWidget.setItem(65, 0, QtWidgets.QTableWidgetItem('노천극장')) + self.tableWidget.setItem(65, 1, QtWidgets.QTableWidgetItem('노천극장')) + self.tableWidget.setItem(66, 0, QtWidgets.QTableWidgetItem('상남경영관')) + self.tableWidget.setItem(66, 1, QtWidgets.QTableWidgetItem('상남경영관')) + self.tableWidget.setItem(67, 0, QtWidgets.QTableWidgetItem('알렌관')) + self.tableWidget.setItem(67, 1, QtWidgets.QTableWidgetItem('알렌관')) + self.tableWidget.setItem(68, 0, QtWidgets.QTableWidgetItem('어린이생활지도연구원')) + self.tableWidget.setItem(68, 1, QtWidgets.QTableWidgetItem('어린이생활지도연구원')) + self.tableWidget.setItem(69, 0, QtWidgets.QTableWidgetItem('대학사택')) + self.tableWidget.setItem(69, 1, QtWidgets.QTableWidgetItem('대학사택')) + self.tableWidget.setItem(70, 0, QtWidgets.QTableWidgetItem('유진어린이집')) + self.tableWidget.setItem(70, 1, QtWidgets.QTableWidgetItem('유진어린이집')) + self.tableWidget.setItem(71, 0, QtWidgets.QTableWidgetItem('전파천문대')) + self.tableWidget.setItem(71, 1, QtWidgets.QTableWidgetItem('전파천문대')) + self.tableWidget.setItem(72, 0, QtWidgets.QTableWidgetItem('청송대')) + self.tableWidget.setItem(72, 1, QtWidgets.QTableWidgetItem('청송대')) + self.tableWidget.setItem(73, 0, QtWidgets.QTableWidgetItem('교육과학관')) + self.tableWidget.setItem(73, 1, QtWidgets.QTableWidgetItem('교육과학관')) + self.tableWidget.setItem(74, 0, QtWidgets.QTableWidgetItem('논지당')) + self.tableWidget.setItem(74, 1, QtWidgets.QTableWidgetItem('논지당')) + self.tableWidget.setItem(75, 0, QtWidgets.QTableWidgetItem('대우관 별관 동쪽')) + self.tableWidget.setItem(75, 1, QtWidgets.QTableWidgetItem('대우관 별관 동쪽')) + self.tableWidget.setItem(76, 0, QtWidgets.QTableWidgetItem('대우관 별관 서쪽')) + self.tableWidget.setItem(76, 1, QtWidgets.QTableWidgetItem('대우관 별관 서쪽')) + self.tableWidget.setItem(77, 0, QtWidgets.QTableWidgetItem('대우관 본관 앞')) + self.tableWidget.setItem(77, 1, QtWidgets.QTableWidgetItem('대우관 본관 앞')) + self.tableWidget.setItem(78, 0, QtWidgets.QTableWidgetItem('대우관 본관 뒤')) + self.tableWidget.setItem(78, 1, QtWidgets.QTableWidgetItem('대우관 본관 뒤')) + self.tableWidget.setItem(79, 0, QtWidgets.QTableWidgetItem('빌링슬리관')) + self.tableWidget.setItem(79, 1, QtWidgets.QTableWidgetItem('빌링슬리관')) + self.tableWidget.setItem(80, 0, QtWidgets.QTableWidgetItem('성암관')) + self.tableWidget.setItem(80, 1, QtWidgets.QTableWidgetItem('성암관')) + self.tableWidget.setItem(81, 0, QtWidgets.QTableWidgetItem('스팀슨관')) + self.tableWidget.setItem(81, 1, QtWidgets.QTableWidgetItem('스팀슨관')) + self.tableWidget.setItem(82, 0, QtWidgets.QTableWidgetItem('신학관')) + self.tableWidget.setItem(82, 1, QtWidgets.QTableWidgetItem('신학관')) + self.tableWidget.setItem(83, 0, QtWidgets.QTableWidgetItem('아펜젤러관')) + self.tableWidget.setItem(83, 1, QtWidgets.QTableWidgetItem('아펜젤러관')) + self.tableWidget.setItem(84, 0, QtWidgets.QTableWidgetItem('언더우드관 앞')) + self.tableWidget.setItem(84, 1, QtWidgets.QTableWidgetItem('언더우드관 앞')) + self.tableWidget.setItem(85, 0, QtWidgets.QTableWidgetItem('언더우드관 뒤')) + self.tableWidget.setItem(85, 1, QtWidgets.QTableWidgetItem('언더우드관 뒤')) + self.tableWidget.setItem(86, 0, QtWidgets.QTableWidgetItem('연희관')) + self.tableWidget.setItem(86, 1, QtWidgets.QTableWidgetItem('연희관')) + self.tableWidget.setItem(87, 0, QtWidgets.QTableWidgetItem('외솔관')) + self.tableWidget.setItem(87, 1, QtWidgets.QTableWidgetItem('외솔관')) + self.tableWidget.setItem(88, 0, QtWidgets.QTableWidgetItem('위당관')) + self.tableWidget.setItem(88, 1, QtWidgets.QTableWidgetItem('위당관')) + self.tableWidget.setItem(89, 0, QtWidgets.QTableWidgetItem('유억겸기념관')) + self.tableWidget.setItem(89, 1, QtWidgets.QTableWidgetItem('유억겸기념관')) + self.tableWidget.setItem(90, 0, QtWidgets.QTableWidgetItem('핀슨관')) + self.tableWidget.setItem(90, 1, QtWidgets.QTableWidgetItem('핀슨관')) + self.tableWidget.setItem(91, 0, QtWidgets.QTableWidgetItem('한경관')) + self.tableWidget.setItem(91, 1, QtWidgets.QTableWidgetItem('한경관')) + self.tableWidget.setItem(92, 0, QtWidgets.QTableWidgetItem('국제학사')) + self.tableWidget.setItem(92, 1, QtWidgets.QTableWidgetItem('국제학사')) + self.tableWidget.setItem(93, 0, QtWidgets.QTableWidgetItem('동문')) + self.tableWidget.setItem(93, 1, QtWidgets.QTableWidgetItem('동문')) + self.tableWidget.setItem(94, 0, QtWidgets.QTableWidgetItem('미우관')) + self.tableWidget.setItem(94, 1, QtWidgets.QTableWidgetItem('미우관')) + self.tableWidget.setItem(95, 0, QtWidgets.QTableWidgetItem('법현학사')) + self.tableWidget.setItem(95, 1, QtWidgets.QTableWidgetItem('법현학사')) + self.tableWidget.setItem(96, 0, QtWidgets.QTableWidgetItem('새천년관 앞')) + self.tableWidget.setItem(96, 1, QtWidgets.QTableWidgetItem('새천년관 앞')) + self.tableWidget.setItem(97, 0, QtWidgets.QTableWidgetItem('새천년관 뒤')) + self.tableWidget.setItem(97, 1, QtWidgets.QTableWidgetItem('새천년관 뒤')) + self.tableWidget.setItem(98, 0, QtWidgets.QTableWidgetItem('한국어학당')) + self.tableWidget.setItem(98, 1, QtWidgets.QTableWidgetItem('한국어학당')) + self.tableWidget.setItem(99, 0, QtWidgets.QTableWidgetItem('언어연구교육원')) + self.tableWidget.setItem(99, 1, QtWidgets.QTableWidgetItem('언어연구교육원')) + self.tableWidget.setItem(100, 0, QtWidgets.QTableWidgetItem('제중학사')) + self.tableWidget.setItem(100, 1, QtWidgets.QTableWidgetItem('제중학사')) + self.tableWidget.setItem(101, 0, QtWidgets.QTableWidgetItem('차량실')) + self.tableWidget.setItem(101, 1, QtWidgets.QTableWidgetItem('차량실')) + self.tableWidget.setItem(102, 0, QtWidgets.QTableWidgetItem('총장공관')) + self.tableWidget.setItem(102, 1, QtWidgets.QTableWidgetItem('총장공관')) + self.tableWidget.setItem(103, 0, QtWidgets.QTableWidgetItem('한국어학당 옆길')) + self.tableWidget.setItem(103, 1, QtWidgets.QTableWidgetItem('한국어학당 옆길')) + self.tableWidget.setItem(104, 0, QtWidgets.QTableWidgetItem('SK국제학사')) + self.tableWidget.setItem(104, 1, QtWidgets.QTableWidgetItem('SK국제학사')) + self.tableWidget.setItem(105, 0, QtWidgets.QTableWidgetItem('농업개발원')) + self.tableWidget.setItem(105, 1, QtWidgets.QTableWidgetItem('농업개발원')) + self.tableWidget.setItem(106, 0, QtWidgets.QTableWidgetItem('대창고')) + self.tableWidget.setItem(106, 1, QtWidgets.QTableWidgetItem('대창고')) + self.tableWidget.setItem(107, 0, QtWidgets.QTableWidgetItem('무악 1학사')) + self.tableWidget.setItem(107, 1, QtWidgets.QTableWidgetItem('무악 1학사')) + self.tableWidget.setItem(108, 0, QtWidgets.QTableWidgetItem('무악 2학사')) + self.tableWidget.setItem(108, 1, QtWidgets.QTableWidgetItem('무악 2학사')) + self.tableWidget.setItem(109, 0, QtWidgets.QTableWidgetItem('무악 3학사')) + self.tableWidget.setItem(109, 1, QtWidgets.QTableWidgetItem('무악 3학사')) + self.tableWidget.setItem(110, 0, QtWidgets.QTableWidgetItem('무악 4학사')) + self.tableWidget.setItem(110, 1, QtWidgets.QTableWidgetItem('무악 4학사')) + self.tableWidget.setItem(111, 0, QtWidgets.QTableWidgetItem('북문')) + self.tableWidget.setItem(111, 1, QtWidgets.QTableWidgetItem('북문')) + self.tableWidget.setItem(112, 0, QtWidgets.QTableWidgetItem('연세우유')) + self.tableWidget.setItem(112, 1, QtWidgets.QTableWidgetItem('연세우유')) + self.tableWidget.setItem(113, 0, QtWidgets.QTableWidgetItem('온실')) + self.tableWidget.setItem(113, 1, QtWidgets.QTableWidgetItem('온실')) + self.tableWidget.setItem(114, 0, QtWidgets.QTableWidgetItem('우정원')) + self.tableWidget.setItem(114, 1, QtWidgets.QTableWidgetItem('우정원')) + self.tableWidget.setItem(115, 0, QtWidgets.QTableWidgetItem('운동선수기숙사')) + self.tableWidget.setItem(115, 1, QtWidgets.QTableWidgetItem('운동선수기숙사')) + + Dialog.show() + Dialog.exec() + + + def SD_DialogOpen(self): + Dialog = QtWidgets.QDialog() + Dialog.setObjectName("Dialog") + Dialog.setWindowIcon(QtGui.QIcon('src/icons/songdoIcon.PNG')) + Dialog.resize(400, 600) + Dialog.setWindowTitle("SPY @ Songdo") + Dialog.setMinimumSize(QtCore.QSize(400, 600)) + Dialog.setMaximumSize(QtCore.QSize(400, 600)) + fontDB = QtGui.QFontDatabase() + fontDB.addApplicationFont('src/fonts/Pretendard/Pretendard-Medium.ttf') + self.tableWidget = QtWidgets.QTableWidget(Dialog) + self.tableWidget.setGeometry(QtCore.QRect(10, 10, 381, 581)) + self.tableWidget.setObjectName("tableWidget") + self.tableWidget.setColumnCount(2) + self.tableWidget.setRowCount(30) + self.tableWidget.setColumnWidth(0, int(self.tableWidget.width()*1/5)) + self.tableWidget.setColumnWidth(1, int(self.tableWidget.width()*4/5)) + self.tableWidget.setHorizontalHeaderLabels(['Node', '건물 이름']) + self.tableWidget.setItem(0, 0, QtWidgets.QTableWidgetItem('gatea')) + self.tableWidget.setItem(0, 1, QtWidgets.QTableWidgetItem('연돌(임시정문)')) + self.tableWidget.setItem(1, 0, QtWidgets.QTableWidgetItem('gateb')) + self.tableWidget.setItem(1, 1, QtWidgets.QTableWidgetItem('서문(트스 방향)')) + self.tableWidget.setItem(2, 0, QtWidgets.QTableWidgetItem('UML')) + self.tableWidget.setItem(2, 1, QtWidgets.QTableWidgetItem('언더우드기념도서관(1층 출입구)')) + self.tableWidget.setItem(3, 0, QtWidgets.QTableWidgetItem('Yplaza')) + self.tableWidget.setItem(3, 1, QtWidgets.QTableWidgetItem('언더우드기념도서관(지하1층), Y-plaza')) + self.tableWidget.setItem(4, 0, QtWidgets.QTableWidgetItem('YICfield')) + self.tableWidget.setItem(4, 1, QtWidgets.QTableWidgetItem('운동장')) + self.tableWidget.setItem(5, 0, QtWidgets.QTableWidgetItem('LiberA')) + self.tableWidget.setItem(5, 1, QtWidgets.QTableWidgetItem('자유관A')) + self.tableWidget.setItem(6, 0, QtWidgets.QTableWidgetItem('LiberB')) + self.tableWidget.setItem(6, 1, QtWidgets.QTableWidgetItem('자유관B')) + self.tableWidget.setItem(7, 0, QtWidgets.QTableWidgetItem('Futsal')) + self.tableWidget.setItem(7, 1, QtWidgets.QTableWidgetItem('풋살장')) + self.tableWidget.setItem(8, 0, QtWidgets.QTableWidgetItem('WisA')) + self.tableWidget.setItem(8, 1, QtWidgets.QTableWidgetItem('지혜관A')) + self.tableWidget.setItem(9, 0, QtWidgets.QTableWidgetItem('WisB')) + self.tableWidget.setItem(9, 1, QtWidgets.QTableWidgetItem('지혜관B')) + self.tableWidget.setItem(10, 0, QtWidgets.QTableWidgetItem('WisC')) + self.tableWidget.setItem(10, 1, QtWidgets.QTableWidgetItem('지혜관C')) + self.tableWidget.setItem(11, 0, QtWidgets.QTableWidgetItem('Woori')) + self.tableWidget.setItem(11, 1, QtWidgets.QTableWidgetItem('우리은행')) + self.tableWidget.setItem(12, 0, QtWidgets.QTableWidgetItem('DormA')) + self.tableWidget.setItem(12, 1, QtWidgets.QTableWidgetItem('송도학사A')) + self.tableWidget.setItem(13, 0, QtWidgets.QTableWidgetItem('DormB')) + self.tableWidget.setItem(13, 1, QtWidgets.QTableWidgetItem('송도학사B')) + self.tableWidget.setItem(14, 0, QtWidgets.QTableWidgetItem('DormC')) + self.tableWidget.setItem(14, 1, QtWidgets.QTableWidgetItem('송도학사C')) + self.tableWidget.setItem(15, 0, QtWidgets.QTableWidgetItem('DormD')) + self.tableWidget.setItem(15, 1, QtWidgets.QTableWidgetItem('송도학사D')) + self.tableWidget.setItem(16, 0, QtWidgets.QTableWidgetItem('DormE')) + self.tableWidget.setItem(16, 1, QtWidgets.QTableWidgetItem('송도학사E')) + self.tableWidget.setItem(17, 0, QtWidgets.QTableWidgetItem('DormF')) + self.tableWidget.setItem(17, 1, QtWidgets.QTableWidgetItem('송도학사F')) + self.tableWidget.setItem(18, 0, QtWidgets.QTableWidgetItem('DormG')) + self.tableWidget.setItem(18, 1, QtWidgets.QTableWidgetItem('송도학사G')) + self.tableWidget.setItem(19, 0, QtWidgets.QTableWidgetItem('VeriA')) + self.tableWidget.setItem(19, 1, QtWidgets.QTableWidgetItem('진리관A')) + self.tableWidget.setItem(20, 0, QtWidgets.QTableWidgetItem('VeriB')) + self.tableWidget.setItem(20, 1, QtWidgets.QTableWidgetItem('진리관B')) + self.tableWidget.setItem(21, 0, QtWidgets.QTableWidgetItem('VeriC')) + self.tableWidget.setItem(21, 1, QtWidgets.QTableWidgetItem('진리관C')) + self.tableWidget.setItem(22, 0, QtWidgets.QTableWidgetItem('VeriD')) + self.tableWidget.setItem(22, 1, QtWidgets.QTableWidgetItem('진리관D')) + self.tableWidget.setItem(23, 0, QtWidgets.QTableWidgetItem('SLBigen')) + self.tableWidget.setItem(23, 1, QtWidgets.QTableWidgetItem('에스엘바이젠의학연구소')) + self.tableWidget.setItem(24, 0, QtWidgets.QTableWidgetItem('Vision')) + self.tableWidget.setItem(24, 1, QtWidgets.QTableWidgetItem('종합관')) + self.tableWidget.setItem(25, 0, QtWidgets.QTableWidgetItem('Chapl')) + self.tableWidget.setItem(25, 1, QtWidgets.QTableWidgetItem('크리스틴채플')) + self.tableWidget.setItem(26, 0, QtWidgets.QTableWidgetItem('IMCH')) + self.tableWidget.setItem(26, 1, QtWidgets.QTableWidgetItem('국제캠퍼스기념관')) + self.tableWidget.setItem(27, 0, QtWidgets.QTableWidgetItem('Mntnc')) + self.tableWidget.setItem(27, 1, QtWidgets.QTableWidgetItem('파워플랜트')) + self.tableWidget.setItem(28, 0, QtWidgets.QTableWidgetItem('Ghome')) + self.tableWidget.setItem(28, 1, QtWidgets.QTableWidgetItem('저에너지친환경실험주택')) + self.tableWidget.setItem(29, 0, QtWidgets.QTableWidgetItem('posco')) + self.tableWidget.setItem(29, 1, QtWidgets.QTableWidgetItem('포스코그린빌딩')) + + Dialog.show() + Dialog.exec() + + def DirectionConfirm(self): + if self.OriginInput.text() in (self.Sin_.keys() or self.Song_.keys()) and self.DestinationInput.text() in (self.Sin_.keys() or self.Song_.keys()): + Origin = self.OriginInput.text() + Destination = self.DestinationInput.text() + self.WarningText_ODnCustomspeed.setText('') + return Origin, Destination + if self.OriginInput.text() not in (self.Sin_.keys() or self.Song_.keys()) or self.DestinationInput.text() not in (self.Sin_.keys() or self.Song_.keys()): + self.WarningText_ODnCustomspeed.setText('적절하지 않은 장소가 입력되었습니다.') + self.WarningText_ODnCustomspeed.setStyleSheet("Color: Red") + + def ConfirmEnabler(self): + if self.OriginInput.text() != '' and self.DestinationInput.text() != '': + self.ConfirmButton.setEnabled(True) + else: + self.ConfirmButton.setEnabled(False) + + def UsainBolt(self): + if self.Usain.isChecked() == True: + self.label_14.setText('우사인 볼트의 속도 37.58km/h') + else: + self.label_14.setText('가능하신가요?') + + def DijkstraStart(self): + stops, end = self.DirectionConfirm() + self.ProcessViewer.setPlainText(self.SearchPathTime(stops, end)) + + # campus 폴더의 하위 항목인 songdo.py 파일과 sinchon.py 파일을 모듈로 임포트합니다. + from src.campus.songdo import NodeSongdo as Song_ + from src.campus.sinchon import NodeSinchon as Sin_ + + def YonseiCampus(self): + if self.SinchonCampus.isChecked() == True: + return self.Sin_ + if self.SongdoCampus.isChecked() == True: + return self.Song_ + + def SearchPathTime(stops, end, tim=0, done=[], queue=[], way={}): #전체 소요 시간을 구하는 함수 + import math + import heapq + nodes = Ui_MainWindow.YonseiCampus(Ui_MainWindow) + + if stops==end: #도착지라면 지금까지의 거리와 시간을 반환함. + dir= way[stops] + return dir, tim + + for next in nodes[stops][2]: #갈 수 있는 다음 노드들(do[stops][2])에 대해 현재 경로를 통해 가는 시간이 더 짧다면, 시간과 경로 갱신 + height=next[2] + if height==0: + tim_=next[1] + elif height>0: + tim_=next[1]+next[2]*1.1 + elif height< 0: + tim_=next[1]+next[2]*0.9 + + tim+=tim_ + + + + if tim < nodes[next[0]][1]: + nodes[next[0]][1] = tim + + if stops in way: #way라는 딕셔너리에, 가장 짧은 경로를 갱신함. 이때의 경로는 현재의 stops까지 오는 경로에 stops를 추가한 것임. + dir=way[stops] + dir.append(stops) + way[next[0]] = dir + + else: + way[next[0]]=[stops] + + + if (next[0] in done) == False: + heapq.heappush(queue, [tim, next[0]]) #힙을 이용하여 다음 역들을 넣어 다음 탐색 경로를 만듦. + done.append(next[0]) #done은 이미 지나온 경로를 체크하는 함수 + + next = heapq.heappop(queue) #heapq.pop을 통해 남은 경로들 중 가장 짧은 시간을 탐색함. + Ui_MainWindow.SearchPathTime(next[1], end, next[0],done, queue, way) + + + return way[end], tim + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + MainWindow = QtWidgets.QMainWindow() + ui = Ui_MainWindow() + ui.setupUi(MainWindow) + MainWindow.show() + sys.exit(app.exec_()) diff --git a/SPY_new.ui b/SPY_new.ui new file mode 100644 index 0000000..24a0f7f --- /dev/null +++ b/SPY_new.ui @@ -0,0 +1,1022 @@ + + + MainWindow + + + + 0 + 0 + 600 + 800 + + + + + 600 + 800 + + + + + 1080 + 1920 + + + + + Pretendard Medium + 9 + + + + SPY - Shortest Pathfinder for Yonsei + + + + 128 + 128 + + + + Qt::ToolButtonIconOnly + + + QTabWidget::Rounded + + + true + + + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Start + + + + + + + + + + + + + + QDialogButtonBox::Close + + + + + + + + + + + + + + + + + + 빠르게 + + + SpeedbuttonGroup + + + + + + + Qt::Horizontal + + + + + + + 걷는 속도 4.5m/s + + + + + + + + Pretendard SemiBold + 9 + + + + Speed + + + + + + + + Pretendard Light + 9 + + + + 도착지 + + + + + + + 느리게 + + + true + + + SpeedbuttonGroup + + + + + + + 3분 + + + TimelimitbuttonGroup + + + + + + + 뛰는 속도 7.5m/s + + + + + + + + Pretendard Medium + 9 + + + + Sinchon + + + + + + + + Pretendard Medium + 9 + + + + Campus + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + Pretendard SemiBold + 9 + + + + Designator + + + + + + + Qt::Vertical + + + + + + + + Pretendard Medium + 9 + + + + Destination + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Qt::Vertical + + + + + + + 천천히 + + + SpeedbuttonGroup + + + + + + + Qt::Horizontal + + + + + + + + Pretendard Medium + 9 + + + + Songdo + + + + + + + 걷는 속도 2.5m/s + + + + + + + + Pretendard Light + 9 + + + + 신촌캠퍼스 + + + CampusbuttonGroup + + + + + + + + Pretendard Light + 9 + + + + 출발지 + + + + + + + + 0 + 0 + + + + Minute + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + Custom + + + SpeedbuttonGroup + + + + + + + m/s + + + + + + + Qt::Vertical + + + + + + + Qt::Horizontal + + + + + + + 5분 + + + TimelimitbuttonGroup + + + + + + + Timelimit + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + Pretendard Medium + 9 + + + + Color: Red + + + (가능하지 않을 수도 있습니다.) + + + Qt::AutoText + + + + + + + Qt::Horizontal + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 물리적 가능성 + + + SpeedbuttonGroup + + + + + + + Custom + + + TimelimitbuttonGroup + + + + + + + + 0 + 0 + + + + + Pretendard Medium + 9 + + + + Confirm + + + + + + + + 0 + 0 + + + + + Pretendard Light + 9 + + + + Speed + + + + + + + + Pretendard Medium + 9 + + + + Origin + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + Pretendard Light + 9 + + + + 국제캠퍼스 + + + CampusbuttonGroup + + + + + + + 10분 + + + TimelimitbuttonGroup + + + + + + + + + + + Qt::Horizontal + + + + + + + + Pretendard SemiBold + 9 + + + + Output + + + + + + + + Pretendard Light + 9 + + + + + + + + + + Qt::Horizontal + + + + + + + + + + Pretendard Light + 9 + + + + true + + + + + + + + + + + Pretendard Medium + 9 + + + + 0 + + + false + + + + + + + + Pretendard SemiBold + 9 + + + + Process + + + + + + + Qt::Horizontal + + + + + + + + + + + + 0 + 0 + + + + https://everytime.kr/ + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Qt::Horizontal + + + + + + + URL + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + Pretendard Medium + 10 + + + + Get + + + + + + + + 0 + 0 + + + + + Pretendard Light + 9 + + + + 대소문자 구분 + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + Pretendard + 10 + + + + Show Password + + + true + + + + + + + Use url + + + UseMethodbuttonGroup + + + + + + + + 0 + 0 + + + + + Pretendard Light + 9 + + + + Everytime ID + + + true + + + + + + + Qt::Horizontal + + + + + + + + 0 + 0 + + + + + Pretendard Medium + 10 + + + + Sign in + + + + + + + + 0 + 0 + + + + + + + + + + + ID + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Use Everytime + + + UseMethodbuttonGroup + + + + + + + Use Designator + + + true + + + UseMethodbuttonGroup + + + + + + + Password + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Qt::Horizontal + + + + + + + + 0 + 0 + + + + + Pretendard Light + 9 + + + + QLineEdit::Password + + + Everytime PW + + + true + + + + + + + + + Qt::Horizontal + + + + + + + + + + 0 + 0 + + + + + Pretendard SemiBold + 9 + + + + Help + + + + + + + + Titillium Web SemiBold + 10 + 50 + false + + + + Color: #99af80 + + + by APTP2022-1 + + + + + + + + 0 + 0 + + + + + Pretendard SemiBold + 9 + + + + Github + + + + + + + + Titillium Web SemiBold + 10 + 50 + false + + + + Color: #99af80 + + + SPY - Time 2 SV + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + + + + + diff --git a/SPY_pretendard.ui b/SPY_pretendard.ui new file mode 100644 index 0000000..e7cf22a --- /dev/null +++ b/SPY_pretendard.ui @@ -0,0 +1,929 @@ + + + SPY + + + + 0 + 0 + 800 + 600 + + + + + 800 + 600 + + + + + 800 + 600 + + + + + Pretendard Light + 10 + + + + MainWindow + + + + + + 420 + 210 + 370 + 380 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + AppleSDGothicNeoL00 + 10 + + + + true + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'AppleSDGothicNeoL00','Pretendard Light'; font-size:10pt; font-weight:400; font-style:normal;"> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'AppleSDGothicNeoR00'; font-size:9pt;">====================================================</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'AppleSDGothicNeoL00','AppleSDGothicNeoR00'; font-size:9pt;">Shortest Path for Yonsei(SPY)</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'AppleSDGothicNeoR00'; font-size:9pt;">====================================================</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'AppleSDGothicNeoR00'; font-size:9pt;">Copyright (c) 2022 APTP2022-1</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'AppleSDGothicNeoR00'; font-size:9pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'AppleSDGothicNeoR00'; font-size:9pt;">Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the &quot;Software&quot;), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'AppleSDGothicNeoR00'; font-size:9pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'AppleSDGothicNeoR00'; font-size:9pt;">The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. </span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'AppleSDGothicNeoR00'; font-size:9pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'AppleSDGothicNeoR00'; font-size:9pt;">THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'AppleSDGothicNeoR00'; font-size:9pt;"><br /></p></body></html> + + + + + + + + Pretendard Medium + 10 + + + + QDialogButtonBox::Close + + + + + + + Qt::Horizontal + + + + + + + + 0 + 0 + + + + + Pretendard SemiBold + 10 + + + + Copyright + + + + + + + + + 10 + 120 + 400 + 160 + + + + + + + + Pretendard Light + 10 + + + + 국제캠퍼스 + + + + + + + + Pretendard Light + 10 + + + + 도착지 + + + + + + + + Pretendard Medium + 10 + + + + Sinchon + + + + + + + + Pretendard Light + 10 + + + + 신촌캠퍼스 + + + + + + + Qt::Vertical + + + + + + + + Pretendard Light + 10 + + + + 출발지 + + + + + + + + 0 + 0 + + + + + Pretendard SemiBold + 10 + + + + Designator + + + + + + + + Pretendard Medium + 10 + + + + Songdo + + + + + + + Qt::Horizontal + + + + + + + + Pretendard Medium + 10 + + + + Destination + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + Pretendard Medium + 10 + + + + Campus + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Qt::Horizontal + + + + + + + + 0 + 0 + + + + + Pretendard Medium + 10 + + + + Confirm + + + + + + + + Pretendard Medium + 10 + + + + Origin + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Qt::Horizontal + + + + + + + + + 420 + 120 + 370 + 80 + + + + + + + + Pretendard Light + 10 + + + + 분 걸립니다. + + + Qt::AlignCenter + + + + + + + + Pretendard Light + 10 + + + + 선택된 속도로 걸어가면 + + + Qt::AlignCenter + + + + + + + + Pretendard Light + 10 + + + + m 이고, + + + Qt::AlignCenter + + + + + + + + Pretendard Light + 10 + + + + false + + + true + + + + + + + + Pretendard Light + 10 + + + + true + + + + + + + + Pretendard Light + 10 + + + + 두 지점 사이의 최단거리는 + + + Qt::AlignCenter + + + + + + + Qt::Horizontal + + + + + + + + 0 + 0 + + + + + Pretendard SemiBold + 10 + + + + Output + + + + + + + + + 10 + 380 + 400 + 210 + + + + + + + + Pretendard Medium + 10 + + + + 0 + + + false + + + + + + + Qt::Horizontal + + + + + + + + 0 + 0 + + + + + Pretendard SemiBold + 10 + + + + Process + + + + + + + true + + + + + + + + + 10 + 290 + 400 + 80 + + + + + + + SizeHorCursor + + + false + + + false + + + 10 + + + 5 + + + Qt::Horizontal + + + false + + + false + + + QSlider::TicksBelow + + + + + + + + Pretendard Light + 10 + + + + Running + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + Pretendard Light + 10 + + + + Walking + + + + + + + Qt::Horizontal + + + + + + + + Pretendard SemiBold + 10 + + + + Speed Selector + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + + + 10 + 10 + 780 + 100 + + + + + + + + Pretendard Medium + 10 + + + + Get + + + + + + + + Pretendard Black + 10 + + + + SPY - Shortest Path for Yonsei + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + + Pretendard Light + 10 + + + + Everytime ID + + + true + + + + + + + + AppleSDGothicNeoSB00 + 10 + + + + Password + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Qt::Vertical + + + + + + + + Pretendard Light + 10 + + + + Use url + + + + + + + + Pretendard Medium + 10 + + + + by APTP2022-1 + + + + + + + + Pretendard + 10 + + + + Show Password + + + true + + + + + + + + Pretendard + 10 + + + + https://everytime.kr/ + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + AppleSDGothicNeoSB00 + 10 + + + + URL + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + Pretendard Light + 10 + + + + 대소문자 구분 + + + true + + + + + + + + 0 + 0 + + + + + Pretendard Medium + 10 + + + + Sign in + + + + + + + + 0 + 0 + + + + + Pretendard Light + 10 + + + + QLineEdit::Password + + + Everytime PW + + + true + + + + + + + Qt::Horizontal + + + + + + + Qt::Horizontal + + + + + + + + Pretendard Medium + 10 + + + + Help / Precautions + + + + + + + + Pretendard Light + 10 + + + + Use Everytime + + + + + + + + AppleSDGothicNeoSB00 + 10 + + + + ID + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + + + + chodjlf + + + + + SinchonCampus + SongdoCampus + OriginInput + DestinationInput + ConfirmButton + ProcessViewer + ShowMetre + ShowMinute + ToUMaintext + + + + diff --git a/SPY_temp.py b/SPY_temp.py new file mode 100644 index 0000000..5719081 --- /dev/null +++ b/SPY_temp.py @@ -0,0 +1,1180 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'SPY_new.ui' +# +# Created by: PyQt5 UI code generator 5.15.6 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + +class Dijkstra(object): + # campus 폴더의 하위 항목인 songdo.py 파일과 sinchon.py 파일을 모듈로 임포트합니다. + from src.campus.songdo import NodeSongdo as Song_ + from src.campus.sinchon import NodeSinchon as Sin_ + + def YonseiCampus(self): + if Ui_MainWindow.SinchonCampus.isChecked() == True: + return Dijkstra.Sin_ + if Ui_MainWindow.SongdoCampus.isChecked() == True: + return Dijkstra.Song_ + + def search(self, stops, end, time=0): + # Ui_MainWindow에서 campus 정보를 받아옵니다. + cam = Dijkstra.YonseiCampus(self) + load =[] + t = [] + dir = [] + + # Ui_MainWindow에서 속도 정보를 받아옵니다. + if Ui_MainWindow.HowSpeed(self) != None: + speed = Ui_MainWindow.HowSpeed(self) + + if cam[stops][1] > time: + cam[stops][1] = time + dir.append(stops) + else: + return None + if stops == end: + load.append(dir) + t.append(time) + load[t.index(min(t))] + Way = f'지나온 길 : {load[t.index(min(t))]}' + Usedtime = f'걸린 시간 : {round(min(t), 1)} 분' + return Way, Usedtime + + for i in cam[stops][2]: # Song_[stops][2] = [['nodem', 57, 0], ['noden', 56, 0], ['nodes', 19, 0]] 요느낌 + minutes = (i[1] * speed) * i[2] + slope = 1.1 if i[2] > 0 else 0.9 if i[2] < 0 else 1.0 + # 오르막길->시간 더 걸림. 가중치 (i[2]*1.1)로 해봄. 상대높이가 24까지 있다해서 + # 내리막길->시간 덜 걸림. 가중치 (i[2]*0.9)로 해봄. 상대높이가 24까지 있다해서 + # 평지. 가중치 없음 + gotime = minutes * slope + Dijkstra.search(list(dir), i[0], end, gotime + time) + Ui_MainWindow.ProcessViewer.setPlainText(load[t.index(min(t))]) + Ui_MainWindow.ProcessViewer.setPlainText(f'걸린 시간 : {round(min(t), 1)} 분') + + # 사람 속도 = 1000m 15분 적용.-> 1m 0.015분 + # speed == 2.5 km/h -> 1m 0.024분 + # speed == 4.5 km/h -> 1m 0.013분 + # speed == 7.5 km/h -> 1m 0.008분 + # speed == Usain -> 1m 0.0016분 + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.setWindowIcon(QtGui.QIcon('src/icons/SPYIcon.PNG')) + MainWindow.resize(600, 800) + MainWindow.setMinimumSize(QtCore.QSize(600, 800)) + MainWindow.setMaximumSize(QtCore.QSize(1080, 1920)) + fontDB = QtGui.QFontDatabase() + fontDB.addApplicationFont('src/fonts/Pretendard/Pretendard-Black.ttf') + fontDB.addApplicationFont('src/fonts/Pretendard/Pretendard-Semibold.ttf') + fontDB.addApplicationFont('src/fonts/Pretendard/Pretendard-Light.ttf') + fontDB.addApplicationFont('src/fonts/Pretendard/Pretendard-Medium.ttf') + fontDB.addApplicationFont('src/fonts/TitilliumWeb/TitilliumWeb-SemiBold.ttf') + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + MainWindow.setFont(font) + MainWindow.setIconSize(QtCore.QSize(507, 334)) + MainWindow.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly) + MainWindow.setTabShape(QtWidgets.QTabWidget.Rounded) + MainWindow.setUnifiedTitleAndToolBarOnMac(True) + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.gridLayout_5 = QtWidgets.QGridLayout(self.centralwidget) + self.gridLayout_5.setObjectName("gridLayout_5") + self.ProgressStartGrid = QtWidgets.QGridLayout() + self.ProgressStartGrid.setObjectName("ProgressStartGrid") + self.WarningText_ODnCustomspeed = QtWidgets.QLabel(self.centralwidget) + self.WarningText_ODnCustomspeed.setText("") + self.WarningText_ODnCustomspeed.setObjectName("WarningText_ODnCustomspeed") + self.WarningText_ODnCustomspeed.setText('장소를 입력한 뒤 Confirm 버튼을 눌러주세요.') + self.ProgressStartGrid.addWidget(self.WarningText_ODnCustomspeed, 0, 0, 1, 1) + spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.ProgressStartGrid.addItem(spacerItem, 0, 1, 1, 1) + self.pushButton_7 = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_7.setObjectName("pushButton_7") + self.ProgressStartGrid.addWidget(self.pushButton_7, 0, 2, 1, 1) + self.pushButton_7.clicked.connect(self.DijkstraStart) + self.gridLayout_5.addLayout(self.ProgressStartGrid, 4, 0, 1, 2) + self.BottomGrid = QtWidgets.QGridLayout() + self.BottomGrid.setObjectName("BottomGrid") + self.gridLayout_5.addLayout(self.BottomGrid, 10, 0, 1, 2) + self.DesignatorGrid = QtWidgets.QGridLayout() + self.DesignatorGrid.setObjectName("DesignatorGrid") + self.RunSpeed = QtWidgets.QRadioButton(self.centralwidget) + self.RunSpeed.setObjectName("RunSpeed") + self.SpeedbuttonGroup = QtWidgets.QButtonGroup(MainWindow) + self.SpeedbuttonGroup.setObjectName("SpeedbuttonGroup") + self.SpeedbuttonGroup.addButton(self.RunSpeed) + self.DesignatorGrid.addWidget(self.RunSpeed, 4, 6, 1, 1) + self.line_5 = QtWidgets.QFrame(self.centralwidget) + self.line_5.setFrameShape(QtWidgets.QFrame.HLine) + self.line_5.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_5.setObjectName("line_5") + self.DesignatorGrid.addWidget(self.line_5, 1, 6, 1, 3) + self.label_11 = QtWidgets.QLabel(self.centralwidget) + self.label_11.setObjectName("label_11") + self.DesignatorGrid.addWidget(self.label_11, 3, 7, 1, 1) + self.label_15 = QtWidgets.QLabel(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard SemiBold") + font.setPointSize(9) + self.label_15.setFont(font) + self.label_15.setObjectName("label_15") + self.DesignatorGrid.addWidget(self.label_15, 0, 6, 1, 1) + self.DestinationInput = QtWidgets.QLineEdit(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Light") + font.setPointSize(9) + self.DestinationInput.setFont(font) + self.DestinationInput.setEnabled(False) + self.DestinationInput.setObjectName("DestinationInput") + self.DesignatorGrid.addWidget(self.DestinationInput, 8, 2, 1, 2) + self.DestinationInput.textChanged.connect(self.ConfirmEnabler) + self.CommonSpeed = QtWidgets.QRadioButton(self.centralwidget) + self.CommonSpeed.setChecked(True) + self.CommonSpeed.setObjectName("CommonSpeed") + self.SpeedbuttonGroup.addButton(self.CommonSpeed) + self.DesignatorGrid.addWidget(self.CommonSpeed, 3, 6, 1, 1) + self.radioButton_4 = QtWidgets.QRadioButton(self.centralwidget) + self.radioButton_4.setObjectName("radioButton_4") + self.TimelimitbuttonGroup = QtWidgets.QButtonGroup(MainWindow) + self.TimelimitbuttonGroup.setObjectName("TimelimitbuttonGroup") + self.TimelimitbuttonGroup.addButton(self.radioButton_4) + self.DesignatorGrid.addWidget(self.radioButton_4, 2, 2, 1, 1) + self.label_13 = QtWidgets.QLabel(self.centralwidget) + self.label_13.setObjectName("label_13") + self.DesignatorGrid.addWidget(self.label_13, 4, 7, 1, 1) + self.pushButton = QtWidgets.QPushButton(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + self.pushButton.setFont(font) + self.pushButton.setObjectName("pushButton") + self.pushButton.setEnabled(False) + self.DesignatorGrid.addWidget(self.pushButton, 4, 4, 1, 1) + self.pushButton.clicked.connect(self.SC_DialogOpen) + self.Campus = QtWidgets.QLabel(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + self.Campus.setFont(font) + self.Campus.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.Campus.setObjectName("Campus") + self.DesignatorGrid.addWidget(self.Campus, 4, 0, 2, 1) + self.Designator = QtWidgets.QLabel(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.Designator.sizePolicy().hasHeightForWidth()) + self.Designator.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("Pretendard SemiBold") + font.setPointSize(9) + self.Designator.setFont(font) + self.Designator.setObjectName("Designator") + self.DesignatorGrid.addWidget(self.Designator, 0, 0, 1, 5) + self.line_12 = QtWidgets.QFrame(self.centralwidget) + self.line_12.setFrameShape(QtWidgets.QFrame.VLine) + self.line_12.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_12.setObjectName("line_12") + self.DesignatorGrid.addWidget(self.line_12, 0, 5, 9, 1) + self.Destination = QtWidgets.QLabel(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + self.Destination.setFont(font) + self.Destination.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.Destination.setObjectName("Destination") + self.DesignatorGrid.addWidget(self.Destination, 8, 0, 1, 2) + self.line_2 = QtWidgets.QFrame(self.centralwidget) + self.line_2.setFrameShape(QtWidgets.QFrame.VLine) + self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_2.setObjectName("line_2") + self.DesignatorGrid.addWidget(self.line_2, 4, 1, 2, 1) + self.SlowSpeed = QtWidgets.QRadioButton(self.centralwidget) + self.SlowSpeed.setObjectName("SlowSpeed") + self.SpeedbuttonGroup.addButton(self.SlowSpeed) + self.DesignatorGrid.addWidget(self.SlowSpeed, 2, 6, 1, 1) + self.line_6 = QtWidgets.QFrame(self.centralwidget) + self.line_6.setFrameShape(QtWidgets.QFrame.HLine) + self.line_6.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_6.setObjectName("line_6") + self.DesignatorGrid.addWidget(self.line_6, 1, 0, 1, 5) + self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + self.pushButton_3.setFont(font) + self.pushButton_3.setObjectName("pushButton_3") + self.pushButton_3.setEnabled(False) + self.DesignatorGrid.addWidget(self.pushButton_3, 5, 4, 1, 1) + self.pushButton_3.clicked.connect(self.SD_DialogOpen) + self.label_10 = QtWidgets.QLabel(self.centralwidget) + self.label_10.setObjectName("label_10") + self.DesignatorGrid.addWidget(self.label_10, 2, 7, 1, 1) + self.SinchonCampus = QtWidgets.QRadioButton(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + self.SinchonCampus.setFont(font) + self.SinchonCampus.setObjectName("SinchonCampus") + self.CampusbuttonGroup = QtWidgets.QButtonGroup(MainWindow) + self.CampusbuttonGroup.setObjectName("CampusbuttonGroup") + self.CampusbuttonGroup.addButton(self.SinchonCampus) + self.DesignatorGrid.addWidget(self.SinchonCampus, 4, 2, 1, 2) + self.SinchonCampus.toggled.connect(self.SC_CampusEnabler) + self.OriginInput = QtWidgets.QLineEdit(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Light") + font.setPointSize(9) + self.OriginInput.setFont(font) + self.OriginInput.setEnabled(False) + self.OriginInput.setObjectName("OriginInput") + self.DesignatorGrid.addWidget(self.OriginInput, 7, 2, 1, 2) + self.OriginInput.textChanged.connect(self.ConfirmEnabler) + self.lineEdit = QtWidgets.QLineEdit(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.lineEdit.sizePolicy().hasHeightForWidth()) + self.lineEdit.setSizePolicy(sizePolicy) + self.lineEdit.setEnabled(False) + self.lineEdit.setObjectName("lineEdit") + self.DesignatorGrid.addWidget(self.lineEdit, 3, 3, 1, 1) + spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.DesignatorGrid.addItem(spacerItem1, 2, 8, 3, 1) + spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.DesignatorGrid.addItem(spacerItem2, 8, 6, 1, 3) + self.label_8 = QtWidgets.QLabel(self.centralwidget) + self.label_8.setObjectName("label_8") + self.DesignatorGrid.addWidget(self.label_8, 3, 4, 1, 1) + self.CustomSpeedSelector = QtWidgets.QRadioButton(self.centralwidget) + self.CustomSpeedSelector.setObjectName("CustomSpeedSelector") + self.SpeedbuttonGroup.addButton(self.CustomSpeedSelector) + self.DesignatorGrid.addWidget(self.CustomSpeedSelector, 7, 6, 1, 1) + self.CustomSpeedSelector.toggled.connect(self.fCustomSpeed) + self.label_3 = QtWidgets.QLabel(self.centralwidget) + self.label_3.setObjectName("label_3") + self.DesignatorGrid.addWidget(self.label_3, 7, 8, 1, 1) + self.line_14 = QtWidgets.QFrame(self.centralwidget) + self.line_14.setFrameShape(QtWidgets.QFrame.VLine) + self.line_14.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_14.setObjectName("line_14") + self.DesignatorGrid.addWidget(self.line_14, 2, 1, 2, 1) + self.line_3 = QtWidgets.QFrame(self.centralwidget) + self.line_3.setFrameShape(QtWidgets.QFrame.HLine) + self.line_3.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_3.setObjectName("line_3") + self.DesignatorGrid.addWidget(self.line_3, 6, 0, 1, 5) + self.radioButton_5 = QtWidgets.QRadioButton(self.centralwidget) + self.radioButton_5.setObjectName("radioButton_5") + self.TimelimitbuttonGroup.addButton(self.radioButton_5) + self.DesignatorGrid.addWidget(self.radioButton_5, 2, 3, 1, 1) + self.label_7 = QtWidgets.QLabel(self.centralwidget) + self.label_7.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_7.setObjectName("label_7") + self.DesignatorGrid.addWidget(self.label_7, 2, 0, 2, 1) + self.label_14 = QtWidgets.QLabel(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + self.label_14.setFont(font) + self.label_14.setStyleSheet("Color: Red") + self.label_14.setTextFormat(QtCore.Qt.AutoText) + self.label_14.setObjectName("label_14") + self.DesignatorGrid.addWidget(self.label_14, 5, 7, 1, 2) + self.line_9 = QtWidgets.QFrame(self.centralwidget) + self.line_9.setFrameShape(QtWidgets.QFrame.HLine) + self.line_9.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_9.setObjectName("line_9") + self.DesignatorGrid.addWidget(self.line_9, 6, 6, 1, 3) + spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.DesignatorGrid.addItem(spacerItem3, 0, 7, 1, 2) + self.Usain = QtWidgets.QRadioButton(self.centralwidget) + self.Usain.setObjectName("Usain") + self.SpeedbuttonGroup.addButton(self.Usain) + self.DesignatorGrid.addWidget(self.Usain, 5, 6, 1, 1) + self.Usain.toggled.connect(self.UsainBolt) + self.radioButton_2 = QtWidgets.QRadioButton(self.centralwidget) + self.radioButton_2.setObjectName("radioButton_2") + self.TimelimitbuttonGroup.addButton(self.radioButton_2) + self.DesignatorGrid.addWidget(self.radioButton_2, 3, 2, 1, 1) + self.radioButton_2.toggled.connect(self.fCustomTimeLimit) + self.ConfirmButton = QtWidgets.QPushButton(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ConfirmButton.sizePolicy().hasHeightForWidth()) + self.ConfirmButton.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + self.ConfirmButton.setFont(font) + self.ConfirmButton.setEnabled(False) + self.ConfirmButton.setObjectName("ConfirmButton") + self.DesignatorGrid.addWidget(self.ConfirmButton, 7, 4, 2, 1) + self.ConfirmButton.clicked.connect(self.DirectionConfirm) + self.CustomSpeed = QtWidgets.QLineEdit(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.CustomSpeed.sizePolicy().hasHeightForWidth()) + self.CustomSpeed.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("Pretendard Light") + font.setPointSize(9) + self.CustomSpeed.setFont(font) + self.CustomSpeed.setObjectName("CustomSpeed") + self.CustomSpeed.setEnabled(False) + self.DesignatorGrid.addWidget(self.CustomSpeed, 7, 7, 1, 1) + self.Origin = QtWidgets.QLabel(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + self.Origin.setFont(font) + self.Origin.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.Origin.setObjectName("Origin") + self.DesignatorGrid.addWidget(self.Origin, 7, 0, 1, 2) + self.SongdoCampus = QtWidgets.QRadioButton(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + self.SongdoCampus.setFont(font) + self.SongdoCampus.setObjectName("SongdoCampus") + self.CampusbuttonGroup.addButton(self.SongdoCampus) + self.DesignatorGrid.addWidget(self.SongdoCampus, 5, 2, 1, 2) + self.SongdoCampus.toggled.connect(self.SD_campusEnabler) + self.radioButton_3 = QtWidgets.QRadioButton(self.centralwidget) + self.radioButton_3.setObjectName("radioButton_3") + self.TimelimitbuttonGroup.addButton(self.radioButton_3) + self.DesignatorGrid.addWidget(self.radioButton_3, 2, 4, 1, 1) + self.gridLayout_5.addLayout(self.DesignatorGrid, 3, 0, 1, 2) + self.OutputGrid = QtWidgets.QGridLayout() + self.OutputGrid.setObjectName("OutputGrid") + self.line_8 = QtWidgets.QFrame(self.centralwidget) + self.line_8.setFrameShape(QtWidgets.QFrame.HLine) + self.line_8.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_8.setObjectName("line_8") + self.OutputGrid.addWidget(self.line_8, 1, 0, 1, 1) + self.label_2 = QtWidgets.QLabel(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard SemiBold") + font.setPointSize(9) + self.label_2.setFont(font) + self.label_2.setObjectName("label_2") + self.OutputGrid.addWidget(self.label_2, 0, 0, 1, 1) + self.OutputText = QtWidgets.QTextEdit(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Light") + font.setPointSize(9) + self.OutputText.setFont(font) + self.OutputText.setReadOnly(True) + self.OutputText.setObjectName("OutputText") + self.OutputGrid.addWidget(self.OutputText, 2, 0, 1, 1) + self.gridLayout_5.addLayout(self.OutputGrid, 9, 0, 1, 2) + self.line_13 = QtWidgets.QFrame(self.centralwidget) + self.line_13.setFrameShape(QtWidgets.QFrame.HLine) + self.line_13.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_13.setObjectName("line_13") + self.gridLayout_5.addWidget(self.line_13, 2, 0, 1, 2) + self.ProcessGrid = QtWidgets.QGridLayout() + self.ProcessGrid.setObjectName("ProcessGrid") + self.ProcessViewer = QtWidgets.QPlainTextEdit(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Light") + font.setPointSize(9) + self.ProcessViewer.setFont(font) + self.ProcessViewer.setReadOnly(True) + self.ProcessViewer.setPlainText("") + self.ProcessViewer.setObjectName("ProcessViewer") + self.ProcessGrid.addWidget(self.ProcessViewer, 3, 0, 1, 1) + self.progressBar = QtWidgets.QProgressBar(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + self.progressBar.setFont(font) + self.progressBar.setProperty("value", 0) + self.progressBar.setInvertedAppearance(False) + self.progressBar.setObjectName("progressBar") + self.ProcessGrid.addWidget(self.progressBar, 2, 0, 1, 1) + self.label = QtWidgets.QLabel(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Pretendard SemiBold") + font.setPointSize(9) + self.label.setFont(font) + self.label.setObjectName("label") + self.ProcessGrid.addWidget(self.label, 0, 0, 1, 1) + self.line_4 = QtWidgets.QFrame(self.centralwidget) + self.line_4.setFrameShape(QtWidgets.QFrame.HLine) + self.line_4.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_4.setObjectName("line_4") + self.ProcessGrid.addWidget(self.line_4, 1, 0, 1, 1) + self.gridLayout_5.addLayout(self.ProcessGrid, 8, 0, 1, 2) + self.topgrid = QtWidgets.QGridLayout() + self.topgrid.setObjectName("topgrid") + self.https = QtWidgets.QLabel(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.https.sizePolicy().hasHeightForWidth()) + self.https.setSizePolicy(sizePolicy) + self.https.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.https.setObjectName("https") + self.topgrid.addWidget(self.https, 6, 2, 1, 1) + self.line_7 = QtWidgets.QFrame(self.centralwidget) + self.line_7.setFrameShape(QtWidgets.QFrame.HLine) + self.line_7.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_7.setObjectName("line_7") + self.topgrid.addWidget(self.line_7, 2, 0, 1, 5) + self.URL = QtWidgets.QLabel(self.centralwidget) + self.URL.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.URL.setObjectName("URL") + self.topgrid.addWidget(self.URL, 6, 1, 1, 1) + self.GetTimeTableButton = QtWidgets.QPushButton(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.GetTimeTableButton.sizePolicy().hasHeightForWidth()) + self.GetTimeTableButton.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + self.GetTimeTableButton.setEnabled(False) + self.GetTimeTableButton.setFont(font) + self.GetTimeTableButton.setObjectName("GetTimeTableButton") + self.topgrid.addWidget(self.GetTimeTableButton, 6, 4, 1, 1) + self.URLinput = QtWidgets.QLineEdit(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.URLinput.sizePolicy().hasHeightForWidth()) + self.URLinput.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("Pretendard Light") + font.setPointSize(10) + self.URLinput.setFont(font) + self.URLinput.setClearButtonEnabled(True) + self.URLinput.setEnabled(False) + self.URLinput.setObjectName("URLinput") + self.topgrid.addWidget(self.URLinput, 6, 3, 1, 1) + spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.topgrid.addItem(spacerItem4, 1, 1, 1, 4) + self.ShowPassword = QtWidgets.QCheckBox(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ShowPassword.sizePolicy().hasHeightForWidth()) + self.ShowPassword.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("Pretendard") + font.setPointSize(9) + self.ShowPassword.setFont(font) + self.ShowPassword.setEnabled(False) + self.ShowPassword.setObjectName("ShowPassword") + self.ShowPassword.stateChanged.connect(self.PasswordVisible) + self.topgrid.addWidget(self.ShowPassword, 4, 3, 1, 1) + self.UseEvUrl = QtWidgets.QRadioButton(self.centralwidget) + self.UseEvUrl.setObjectName("UseEvUrl") + self.UseMethodbuttonGroup = QtWidgets.QButtonGroup(MainWindow) + self.UseMethodbuttonGroup.setObjectName("UseMethodbuttonGroup") + self.UseMethodbuttonGroup.addButton(self.UseEvUrl) + self.topgrid.addWidget(self.UseEvUrl, 6, 0, 1, 1) + self.UseEvUrl.toggled.connect(self.UrlEnabler) + self.IDinput = QtWidgets.QLineEdit(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.IDinput.sizePolicy().hasHeightForWidth()) + self.IDinput.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("Pretendard Light") + font.setPointSize(9) + self.IDinput.setFont(font) + self.IDinput.setClearButtonEnabled(True) + self.IDinput.setEnabled(False) + self.IDinput.setObjectName("IDinput") + self.topgrid.addWidget(self.IDinput, 3, 2, 1, 1) + self.line = QtWidgets.QFrame(self.centralwidget) + self.line.setFrameShape(QtWidgets.QFrame.HLine) + self.line.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line.setObjectName("line") + self.topgrid.addWidget(self.line, 5, 0, 1, 5) + self.SigninButton = QtWidgets.QPushButton(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.SigninButton.sizePolicy().hasHeightForWidth()) + self.SigninButton.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("Pretendard Medium") + font.setPointSize(9) + self.SigninButton.setFont(font) + self.SigninButton.setEnabled(False) + self.SigninButton.setObjectName("SigninButton") + self.topgrid.addWidget(self.SigninButton, 3, 4, 2, 1) + self.showResult = QtWidgets.QLabel(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.showResult.sizePolicy().hasHeightForWidth()) + self.showResult.setSizePolicy(sizePolicy) + self.showResult.setText("") + self.showResult.setObjectName("showResult") + self.topgrid.addWidget(self.showResult, 3, 3, 1, 1) + self.ID = QtWidgets.QLabel(self.centralwidget) + self.ID.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.ID.setObjectName("ID") + self.topgrid.addWidget(self.ID, 3, 1, 1, 1) + self.UseEv = QtWidgets.QRadioButton(self.centralwidget) + self.UseEv.setObjectName("UseEv") + self.UseMethodbuttonGroup.addButton(self.UseEv) + self.topgrid.addWidget(self.UseEv, 3, 0, 2, 1) + self.UseEv.toggled.connect(self.EverytimeIDEnabler) + self.radioButton = QtWidgets.QRadioButton(self.centralwidget) + self.radioButton.setChecked(True) + self.radioButton.setObjectName("radioButton") + self.UseMethodbuttonGroup.addButton(self.radioButton) + self.topgrid.addWidget(self.radioButton, 1, 0, 1, 1) + self.radioButton.toggled.connect(self.DesignatorInitialization) + self.PW = QtWidgets.QLabel(self.centralwidget) + self.PW.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.PW.setObjectName("PW") + self.topgrid.addWidget(self.PW, 4, 1, 1, 1) + self.line_10 = QtWidgets.QFrame(self.centralwidget) + self.line_10.setFrameShape(QtWidgets.QFrame.HLine) + self.line_10.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_10.setObjectName("line_10") + self.topgrid.addWidget(self.line_10, 0, 0, 1, 5) + self.PWinput = QtWidgets.QLineEdit(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.PWinput.sizePolicy().hasHeightForWidth()) + self.PWinput.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("Pretendard Light") + font.setPointSize(9) + self.PWinput.setFont(font) + self.PWinput.setEchoMode(QtWidgets.QLineEdit.Password) + self.PWinput.setClearButtonEnabled(True) + self.PWinput.setEnabled(False) + self.PWinput.setObjectName("PWinput") + self.topgrid.addWidget(self.PWinput, 4, 2, 1, 1) + self.gridLayout_5.addLayout(self.topgrid, 1, 0, 1, 2) + self.line_11 = QtWidgets.QFrame(self.centralwidget) + self.line_11.setFrameShape(QtWidgets.QFrame.HLine) + self.line_11.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_11.setObjectName("line_11") + self.gridLayout_5.addWidget(self.line_11, 5, 0, 1, 2) + self.gridLayout = QtWidgets.QGridLayout() + self.gridLayout.setObjectName("gridLayout") + self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_5.sizePolicy().hasHeightForWidth()) + self.pushButton_5.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("Pretendard SemiBold") + font.setPointSize(9) + self.pushButton_5.setFont(font) + self.pushButton_5.setObjectName("pushButton_5") + self.gridLayout.addWidget(self.pushButton_5, 0, 2, 1, 1) + self.label_5 = QtWidgets.QLabel(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Titillium Web SemiBold") + font.setPointSize(9) + font.setBold(False) + font.setWeight(50) + self.label_5.setFont(font) + self.label_5.setStyleSheet("Color: #99af80") + self.label_5.setObjectName("label_5") + self.gridLayout.addWidget(self.label_5, 0, 1, 1, 1) + self.pushButton_6 = QtWidgets.QPushButton(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_6.sizePolicy().hasHeightForWidth()) + self.pushButton_6.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setFamily("Pretendard SemiBold") + font.setPointSize(9) + self.pushButton_6.setFont(font) + self.pushButton_6.setObjectName("pushButton_6") + self.gridLayout.addWidget(self.pushButton_6, 0, 3, 1, 1) + self.label_4 = QtWidgets.QLabel(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Titillium Web SemiBold") + font.setPointSize(9) + font.setBold(False) + font.setWeight(50) + self.label_4.setFont(font) + self.label_4.setStyleSheet("Color: #99af80") + self.label_4.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_4.setObjectName("label_4") + self.gridLayout.addWidget(self.label_4, 0, 0, 1, 1) + self.gridLayout_5.addLayout(self.gridLayout, 0, 0, 1, 2) + MainWindow.setCentralWidget(self.centralwidget) + + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "SPY - Shortest Pathfinder for Yonsei")) + self.pushButton_7.setText(_translate("MainWindow", "Start")) + self.RunSpeed.setText(_translate("MainWindow", "빠르게")) + self.label_11.setText(_translate("MainWindow", "걷는 속도 4.5km/h")) + self.label_15.setText(_translate("MainWindow", "Speed")) + self.DestinationInput.setPlaceholderText(_translate("MainWindow", "도착지")) + self.CommonSpeed.setText(_translate("MainWindow", "느리게")) + self.radioButton_4.setText(_translate("MainWindow", "3분")) + self.label_13.setText(_translate("MainWindow", "뛰는 속도 7.5km/h")) + self.pushButton.setText(_translate("MainWindow", "Sinchon")) + self.Campus.setText(_translate("MainWindow", "Campus")) + self.Designator.setText(_translate("MainWindow", "Designator")) + self.Destination.setText(_translate("MainWindow", "Destination")) + self.SlowSpeed.setText(_translate("MainWindow", "천천히")) + self.pushButton_3.setText(_translate("MainWindow", "Songdo")) + self.label_10.setText(_translate("MainWindow", "걷는 속도 2.5km/h")) + self.SinchonCampus.setText(_translate("MainWindow", "신촌캠퍼스")) + self.OriginInput.setPlaceholderText(_translate("MainWindow", "출발지")) + self.lineEdit.setPlaceholderText(_translate("MainWindow", "Minute")) + self.label_8.setText(_translate("MainWindow", "분")) + self.CustomSpeedSelector.setText(_translate("MainWindow", "Custom")) + self.label_3.setText(_translate("MainWindow", "km/h")) + self.radioButton_5.setText(_translate("MainWindow", "5분")) + self.label_7.setText(_translate("MainWindow", "Timelimit")) + self.label_14.setText(_translate("MainWindow", "(가능하지 않을 수도 있습니다.)")) + self.Usain.setText(_translate("MainWindow", "물리적 가능성")) + self.radioButton_2.setText(_translate("MainWindow", "Custom")) + self.ConfirmButton.setText(_translate("MainWindow", "Confirm")) + self.CustomSpeed.setPlaceholderText(_translate("MainWindow", "Speed")) + self.Origin.setText(_translate("MainWindow", "Origin")) + self.SongdoCampus.setText(_translate("MainWindow", "국제캠퍼스")) + self.radioButton_3.setText(_translate("MainWindow", "10분")) + self.label_2.setText(_translate("MainWindow", "Output")) + self.label.setText(_translate("MainWindow", "Process")) + self.https.setText(_translate("MainWindow", "https://everytime.kr/")) + self.URL.setText(_translate("MainWindow", "URL")) + self.GetTimeTableButton.setText(_translate("MainWindow", "Get")) + self.URLinput.setPlaceholderText(_translate("MainWindow", "대소문자 구분")) + self.ShowPassword.setText(_translate("MainWindow", "Show Password")) + self.UseEvUrl.setText(_translate("MainWindow", "Use url")) + self.IDinput.setPlaceholderText(_translate("MainWindow", "Everytime ID")) + self.SigninButton.setText(_translate("MainWindow", "Sign in")) + self.ID.setText(_translate("MainWindow", "ID")) + self.UseEv.setText(_translate("MainWindow", "Use Everytime")) + self.radioButton.setText(_translate("MainWindow", "Use Designator")) + self.PW.setText(_translate("MainWindow", "Password")) + self.PWinput.setPlaceholderText(_translate("MainWindow", "Everytime PW")) + self.pushButton_5.setText(_translate("MainWindow", "Help")) + self.label_5.setText(_translate("MainWindow", "by APTP2022-1")) + self.pushButton_6.setText(_translate("MainWindow", "Github")) + self.label_4.setText(_translate("MainWindow", "SPY - Time 2 SV")) + + def EverytimeIDEnabler(self): + if self.UseEv.isChecked() == True: + self.IDinput.setEnabled(True) + self.PWinput.setEnabled(True) + self.ShowPassword.setEnabled(True) + self.SigninButton.setEnabled(True) + self.radioButton_2.setEnabled(False) + self.radioButton_4.setEnabled(False) + self.radioButton_5.setEnabled(False) + self.SinchonCampus.setEnabled(False) + self.SongdoCampus.setEnabled(False) + self.pushButton.setEnabled(False) + self.pushButton_3.setEnabled(False) + self.ConfirmButton.setEnabled(False) + self.radioButton_3.setChecked(True) + self.URLinput.setEnabled(False) + self.GetTimeTableButton.setEnabled(False) + self.OriginInput.setEnabled(False) + self.DestinationInput.setEnabled(False) + + def PasswordVisible(self): + if self.ShowPassword.isChecked() == True: + self.PWinput.setEchoMode(QtWidgets.QLineEdit.Normal) + else: + self.PWinput.setEchoMode(QtWidgets.QLineEdit.Password) + + def DesignatorInitialization(self): + if self.radioButton.isChecked() == True: + self.URLinput.setEnabled(False) + self.radioButton_2.setEnabled(True) + self.radioButton_4.setEnabled(True) + self.radioButton_5.setEnabled(True) + self.SinchonCampus.setEnabled(True) + self.SongdoCampus.setEnabled(True) + self.ConfirmButton.setEnabled(True) + self.IDinput.setEnabled(False) + self.PWinput.setEnabled(False) + self.ShowPassword.setEnabled(False) + self.SigninButton.setEnabled(False) + self.OriginInput.setEnabled(True) + self.DestinationInput.setEnabled(True) + self.URLinput.setEnabled(False) + self.GetTimeTableButton.setEnabled(False) + + def UrlEnabler(self): + if self.UseEvUrl.isChecked() == True: + self.URLinput.setEnabled(True) + self.GetTimeTableButton.setEnabled(True) + self.radioButton_2.setEnabled(False) + self.radioButton_4.setEnabled(False) + self.radioButton_5.setEnabled(False) + self.SinchonCampus.setEnabled(False) + self.SongdoCampus.setEnabled(False) + self.pushButton.setEnabled(False) + self.pushButton_3.setEnabled(False) + self.ConfirmButton.setEnabled(False) + self.radioButton_3.setChecked(True) + self.IDinput.setEnabled(False) + self.PWinput.setEnabled(False) + self.ShowPassword.setEnabled(False) + self.SigninButton.setEnabled(False) + self.OriginInput.setEnabled(False) + self.DestinationInput.setEnabled(False) + + def Timelimit(self): + if self.radioButton_2.isChecked() == True: + return self.radioButton_2.text().toDouble() + if self.radioButton_3.isChecked() == True: + return 10.0 + if self.radioButton_4.isChecked() == True: + return 3.0 + if self.radioButton_5.isChecked() == True: + return 5.0 + + def fCustomTimeLimit(self): + if self.radioButton_2.isChecked() == True: + self.lineEdit.setEnabled(True) + self.lineEdit.setValidator(QtGui.QIntValidator(0,100,self.lineEdit)) + else: + self.lineEdit.setEnabled(False) + + def HowSpeed(self): + if self.SlowSpeed.isChecked() == True: + return 0.024 + if self.CommonSpeed.isChecked() == True: + return 0.013 + if self.RunSpeed.isChecked() == True: + return 0.008 + if self.Usain.isChecked() == True: + return 0.0016 + if self.CustomSpeedSelector.isChecked() == True: + inputspeed = self.CustomSpeed.text().toDouble() + convertedspeed = 60 / (inputspeed * 1000) + return convertedspeed + + def fCustomSpeed(self): + if self.CustomSpeedSelector.isChecked() == True: + self.CustomSpeed.setEnabled(True) + self.CustomSpeed.setValidator(QtGui.QDoubleValidator(0.,10.0,1,self.CustomSpeed)) + else: + self.CustomSpeed.setEnabled(False) + + def SC_CampusEnabler(self): + if self.SinchonCampus.isChecked() == True: + self.pushButton.setEnabled(True) + self.pushButton_3.setEnabled(False) + self.OriginInput.setEnabled(True) + self.DestinationInput.setEnabled(True) + else: + self.pushButton.setEnabled(False) + self.OriginInput.setEnabled(False) + self.DestinationInput.setEnabled(False) + + def SD_campusEnabler(self): + if self.SongdoCampus.isChecked() == True: + self.pushButton_3.setEnabled(True) + self.pushButton.setEnabled(False) + self.OriginInput.setEnabled(True) + self.DestinationInput.setEnabled(True) + else: + self.pushButton_3.setEnabled(False) + self.OriginInput.setEnabled(False) + self.DestinationInput.setEnabled(False) + + def SC_DialogOpen(self): + Dialog = QtWidgets.QDialog() + Dialog.setObjectName("Dialog") + Dialog.setWindowIcon(QtGui.QIcon('src/icons/sinchonIcon.PNG')) + Dialog.setWindowTitle("SPY @ Sinchon") + Dialog.resize(400, 600) + Dialog.setMinimumSize(QtCore.QSize(400, 600)) + Dialog.setMaximumSize(QtCore.QSize(400, 600)) + fontDB = QtGui.QFontDatabase() + fontDB.addApplicationFont('src/fonts/Pretendard/Pretendard-Medium.ttf') + self.tableWidget = QtWidgets.QTableWidget(Dialog) + self.tableWidget.setGeometry(QtCore.QRect(10, 10, 381, 581)) + self.tableWidget.setObjectName("tableWidget") + self.tableWidget.setColumnCount(2) + self.tableWidget.setRowCount(116) + self.tableWidget.setColumnWidth(0, int(self.tableWidget.width()*2/5)) + self.tableWidget.setColumnWidth(1, int(self.tableWidget.width()*3/5)) + self.tableWidget.setHorizontalHeaderLabels(['Node', '건물 이름']) + self.tableWidget.setItem(0, 0, QtWidgets.QTableWidgetItem('간호대학')) + self.tableWidget.setItem(0, 1, QtWidgets.QTableWidgetItem('간호대학')) + self.tableWidget.setItem(1, 0, QtWidgets.QTableWidgetItem('광혜관')) + self.tableWidget.setItem(1, 1, QtWidgets.QTableWidgetItem('광혜관')) + self.tableWidget.setItem(2, 0, QtWidgets.QTableWidgetItem('동문회관')) + self.tableWidget.setItem(2, 1, QtWidgets.QTableWidgetItem('동문회관')) + self.tableWidget.setItem(3, 0, QtWidgets.QTableWidgetItem('러들로교수동')) + self.tableWidget.setItem(3, 1, QtWidgets.QTableWidgetItem('러들로교수동')) + self.tableWidget.setItem(4, 0, QtWidgets.QTableWidgetItem('병원출입구')) + self.tableWidget.setItem(4, 1, QtWidgets.QTableWidgetItem('병원출입구')) + self.tableWidget.setItem(5, 0, QtWidgets.QTableWidgetItem('세브란스병원 본관')) + self.tableWidget.setItem(5, 1, QtWidgets.QTableWidgetItem('세브란스병원 본관')) + self.tableWidget.setItem(6, 0, QtWidgets.QTableWidgetItem('심장혈관병원')) + self.tableWidget.setItem(6, 1, QtWidgets.QTableWidgetItem('심장혈관병원')) + self.tableWidget.setItem(7, 0, QtWidgets.QTableWidgetItem('안이비인후과병원')) + self.tableWidget.setItem(7, 1, QtWidgets.QTableWidgetItem('안이비인후과병원')) + self.tableWidget.setItem(8, 0, QtWidgets.QTableWidgetItem('어린이병원')) + self.tableWidget.setItem(8, 1, QtWidgets.QTableWidgetItem('어린이병원')) + self.tableWidget.setItem(9, 0, QtWidgets.QTableWidgetItem('에비슨의생명연구센터1')) + self.tableWidget.setItem(9, 1, QtWidgets.QTableWidgetItem('에비슨의생명연구센터1')) + self.tableWidget.setItem(10, 0, QtWidgets.QTableWidgetItem('에비슨의생명연구센터2')) + self.tableWidget.setItem(10, 1, QtWidgets.QTableWidgetItem('에비슨의생명연구센터2')) + self.tableWidget.setItem(11, 0, QtWidgets.QTableWidgetItem('에비슨의생명연구센터 옆길')) + self.tableWidget.setItem(11, 1, QtWidgets.QTableWidgetItem('에비슨의생명연구센터 옆길')) + self.tableWidget.setItem(12, 0, QtWidgets.QTableWidgetItem('연세암병원1')) + self.tableWidget.setItem(12, 1, QtWidgets.QTableWidgetItem('연세암병원1')) + self.tableWidget.setItem(13, 0, QtWidgets.QTableWidgetItem('연세암병원2')) + self.tableWidget.setItem(13, 1, QtWidgets.QTableWidgetItem('연세암병원2')) + self.tableWidget.setItem(14, 0, QtWidgets.QTableWidgetItem('의과대학')) + self.tableWidget.setItem(14, 1, QtWidgets.QTableWidgetItem('의과대학')) + self.tableWidget.setItem(15, 0, QtWidgets.QTableWidgetItem('의료원정문')) + self.tableWidget.setItem(15, 1, QtWidgets.QTableWidgetItem('의료원정문')) + self.tableWidget.setItem(16, 0, QtWidgets.QTableWidgetItem('임상의학연구센터')) + self.tableWidget.setItem(16, 1, QtWidgets.QTableWidgetItem('임상의학연 구센터')) + self.tableWidget.setItem(17, 0, QtWidgets.QTableWidgetItem('재활병원')) + self.tableWidget.setItem(17, 1, QtWidgets.QTableWidgetItem('재활병원')) + self.tableWidget.setItem(18, 0, QtWidgets.QTableWidgetItem('제중관')) + self.tableWidget.setItem(18, 1, QtWidgets.QTableWidgetItem('제중관')) + self.tableWidget.setItem(19, 0, QtWidgets.QTableWidgetItem('치과대학')) + self.tableWidget.setItem(19, 1, QtWidgets.QTableWidgetItem('치과대학')) + self.tableWidget.setItem(20, 0, QtWidgets.QTableWidgetItem('치과대학병원')) + self.tableWidget.setItem(20, 1, QtWidgets.QTableWidgetItem('치과대학병원')) + self.tableWidget.setItem(21, 0, QtWidgets.QTableWidgetItem('공학원')) + self.tableWidget.setItem(21, 1, QtWidgets.QTableWidgetItem('공학원')) + self.tableWidget.setItem(22, 0, QtWidgets.QTableWidgetItem('남문')) + self.tableWidget.setItem(22, 1, QtWidgets.QTableWidgetItem('남문')) + self.tableWidget.setItem(23, 0, QtWidgets.QTableWidgetItem('대운동장 입구')) + self.tableWidget.setItem(23, 1, QtWidgets.QTableWidgetItem('대운동장 입구')) + self.tableWidget.setItem(24, 0, QtWidgets.QTableWidgetItem('백양누리')) + self.tableWidget.setItem(24, 1, QtWidgets.QTableWidgetItem('백양누리')) + self.tableWidget.setItem(25, 0, QtWidgets.QTableWidgetItem('별동 연구동')) + self.tableWidget.setItem(25, 1, QtWidgets.QTableWidgetItem('별동 연구동')) + self.tableWidget.setItem(26, 0, QtWidgets.QTableWidgetItem('산학협동관')) + self.tableWidget.setItem(26, 1, QtWidgets.QTableWidgetItem('산학협동관')) + self.tableWidget.setItem(27, 0, QtWidgets.QTableWidgetItem('야구장 입구1')) + self.tableWidget.setItem(27, 1, QtWidgets.QTableWidgetItem('야구장 입구1')) + self.tableWidget.setItem(28, 0, QtWidgets.QTableWidgetItem('야구장 입구2')) + self.tableWidget.setItem(28, 1, QtWidgets.QTableWidgetItem('야구장 입구2')) + self.tableWidget.setItem(29, 0, QtWidgets.QTableWidgetItem('재활학교')) + self.tableWidget.setItem(29, 1, QtWidgets.QTableWidgetItem('재활학교')) + self.tableWidget.setItem(30, 0, QtWidgets.QTableWidgetItem('정문')) + self.tableWidget.setItem(30, 1, QtWidgets.QTableWidgetItem('정문')) + self.tableWidget.setItem(31, 0, QtWidgets.QTableWidgetItem('제1공학관')) + self.tableWidget.setItem(31, 1, QtWidgets.QTableWidgetItem('제1공학관')) + self.tableWidget.setItem(32, 0, QtWidgets.QTableWidgetItem('제2공학관 안쪽')) + self.tableWidget.setItem(32, 1, QtWidgets.QTableWidgetItem('제2공학관 안쪽')) + self.tableWidget.setItem(33, 0, QtWidgets.QTableWidgetItem('제3공학관 안쪽')) + self.tableWidget.setItem(33, 1, QtWidgets.QTableWidgetItem('제3공학관 안쪽')) + self.tableWidget.setItem(34, 0, QtWidgets.QTableWidgetItem('제3공학관 바깥쪽')) + self.tableWidget.setItem(34, 1, QtWidgets.QTableWidgetItem('제3공학관 바깥쪽')) + self.tableWidget.setItem(35, 0, QtWidgets.QTableWidgetItem('제4공학관')) + self.tableWidget.setItem(35, 1, QtWidgets.QTableWidgetItem('제4공학관')) + self.tableWidget.setItem(36, 0, QtWidgets.QTableWidgetItem('첨단과학기술연구관')) + self.tableWidget.setItem(36, 1, QtWidgets.QTableWidgetItem('첨단과학기술연구관')) + self.tableWidget.setItem(37, 0, QtWidgets.QTableWidgetItem('학군단')) + self.tableWidget.setItem(37, 1, QtWidgets.QTableWidgetItem('학군단')) + self.tableWidget.setItem(38, 0, QtWidgets.QTableWidgetItem('GS칼텍스산학협력관')) + self.tableWidget.setItem(38, 1, QtWidgets.QTableWidgetItem('GS칼텍스산학협력관')) + self.tableWidget.setItem(39, 0, QtWidgets.QTableWidgetItem('IBS관')) + self.tableWidget.setItem(39, 1, QtWidgets.QTableWidgetItem('IBS관')) + self.tableWidget.setItem(40, 0, QtWidgets.QTableWidgetItem('경영관')) + self.tableWidget.setItem(40, 1, QtWidgets.QTableWidgetItem('경영관')) + self.tableWidget.setItem(41, 0, QtWidgets.QTableWidgetItem('광혜원')) + self.tableWidget.setItem(41, 1, QtWidgets.QTableWidgetItem('광혜원')) + self.tableWidget.setItem(42, 0, QtWidgets.QTableWidgetItem('대강당')) + self.tableWidget.setItem(42, 1, QtWidgets.QTableWidgetItem('대강당')) + self.tableWidget.setItem(43, 0, QtWidgets.QTableWidgetItem('루스채플')) + self.tableWidget.setItem(43, 1, QtWidgets.QTableWidgetItem('루스채플')) + self.tableWidget.setItem(44, 0, QtWidgets.QTableWidgetItem('백주년기념관/박물관')) + self.tableWidget.setItem(44, 1, QtWidgets.QTableWidgetItem('백주년기념관/박물관')) + self.tableWidget.setItem(45, 0, QtWidgets.QTableWidgetItem('음악관 A 1')) + self.tableWidget.setItem(45, 1, QtWidgets.QTableWidgetItem('음악관 A 1')) + self.tableWidget.setItem(46, 0, QtWidgets.QTableWidgetItem('음악관 A 2')) + self.tableWidget.setItem(46, 1, QtWidgets.QTableWidgetItem('음악관 A 2')) + self.tableWidget.setItem(47, 0, QtWidgets.QTableWidgetItem('음악관 B')) + self.tableWidget.setItem(47, 1, QtWidgets.QTableWidgetItem('음악관 B')) + self.tableWidget.setItem(48, 0, QtWidgets.QTableWidgetItem('학생회관')) + self.tableWidget.setItem(48, 1, QtWidgets.QTableWidgetItem('학생회관')) + self.tableWidget.setItem(49, 0, QtWidgets.QTableWidgetItem('과학관')) + self.tableWidget.setItem(49, 1, QtWidgets.QTableWidgetItem('과학관')) + self.tableWidget.setItem(50, 0, QtWidgets.QTableWidgetItem('과학원')) + self.tableWidget.setItem(50, 1, QtWidgets.QTableWidgetItem('과학원')) + self.tableWidget.setItem(51, 0, QtWidgets.QTableWidgetItem('광복관')) + self.tableWidget.setItem(51, 1, QtWidgets.QTableWidgetItem('광복관')) + self.tableWidget.setItem(52, 0, QtWidgets.QTableWidgetItem('광복관 별관')) + self.tableWidget.setItem(52, 1, QtWidgets.QTableWidgetItem('광복관 별관')) + self.tableWidget.setItem(53, 0, QtWidgets.QTableWidgetItem('백양관1')) + self.tableWidget.setItem(53, 1, QtWidgets.QTableWidgetItem('백양관1')) + self.tableWidget.setItem(54, 0, QtWidgets.QTableWidgetItem('백양관2')) + self.tableWidget.setItem(54, 1, QtWidgets.QTableWidgetItem('백양관2')) + self.tableWidget.setItem(55, 0, QtWidgets.QTableWidgetItem('삼성관')) + self.tableWidget.setItem(55, 1, QtWidgets.QTableWidgetItem('삼성관')) + self.tableWidget.setItem(56, 0, QtWidgets.QTableWidgetItem('서문')) + self.tableWidget.setItem(56, 1, QtWidgets.QTableWidgetItem('서문')) + self.tableWidget.setItem(57, 0, QtWidgets.QTableWidgetItem('스포츠과학관')) + self.tableWidget.setItem(57, 1, QtWidgets.QTableWidgetItem('스포츠과학관')) + self.tableWidget.setItem(58, 0, QtWidgets.QTableWidgetItem('언더우드가 기념관')) + self.tableWidget.setItem(58, 1, QtWidgets.QTableWidgetItem('언더우드가 기념관')) + self.tableWidget.setItem(59, 0, QtWidgets.QTableWidgetItem('연세삼성학술정보관1')) + self.tableWidget.setItem(59, 1, QtWidgets.QTableWidgetItem('연세삼성학술정보관1')) + self.tableWidget.setItem(60, 0, QtWidgets.QTableWidgetItem('연세삼성학술정보관2')) + self.tableWidget.setItem(60, 1, QtWidgets.QTableWidgetItem('연세삼성학술정보관2')) + self.tableWidget.setItem(61, 0, QtWidgets.QTableWidgetItem('중앙도서관1')) + self.tableWidget.setItem(61, 1, QtWidgets.QTableWidgetItem('중앙도서관1')) + self.tableWidget.setItem(62, 0, QtWidgets.QTableWidgetItem('중앙도서관2')) + self.tableWidget.setItem(62, 1, QtWidgets.QTableWidgetItem('중앙도서관2')) + self.tableWidget.setItem(63, 0, QtWidgets.QTableWidgetItem('체육관')) + self.tableWidget.setItem(63, 1, QtWidgets.QTableWidgetItem('체육관')) + self.tableWidget.setItem(64, 0, QtWidgets.QTableWidgetItem('체육교육관')) + self.tableWidget.setItem(64, 1, QtWidgets.QTableWidgetItem('체육교육관')) + self.tableWidget.setItem(65, 0, QtWidgets.QTableWidgetItem('노천극장')) + self.tableWidget.setItem(65, 1, QtWidgets.QTableWidgetItem('노천극장')) + self.tableWidget.setItem(66, 0, QtWidgets.QTableWidgetItem('상남경영관')) + self.tableWidget.setItem(66, 1, QtWidgets.QTableWidgetItem('상남경영관')) + self.tableWidget.setItem(67, 0, QtWidgets.QTableWidgetItem('알렌관')) + self.tableWidget.setItem(67, 1, QtWidgets.QTableWidgetItem('알렌관')) + self.tableWidget.setItem(68, 0, QtWidgets.QTableWidgetItem('어린이생활지도연구원')) + self.tableWidget.setItem(68, 1, QtWidgets.QTableWidgetItem('어린이생활지도연구원')) + self.tableWidget.setItem(69, 0, QtWidgets.QTableWidgetItem('대학사택')) + self.tableWidget.setItem(69, 1, QtWidgets.QTableWidgetItem('대학사택')) + self.tableWidget.setItem(70, 0, QtWidgets.QTableWidgetItem('유진어린이집')) + self.tableWidget.setItem(70, 1, QtWidgets.QTableWidgetItem('유진어린이집')) + self.tableWidget.setItem(71, 0, QtWidgets.QTableWidgetItem('전파천문대')) + self.tableWidget.setItem(71, 1, QtWidgets.QTableWidgetItem('전파천문대')) + self.tableWidget.setItem(72, 0, QtWidgets.QTableWidgetItem('청송대')) + self.tableWidget.setItem(72, 1, QtWidgets.QTableWidgetItem('청송대')) + self.tableWidget.setItem(73, 0, QtWidgets.QTableWidgetItem('교육과학관')) + self.tableWidget.setItem(73, 1, QtWidgets.QTableWidgetItem('교육과학관')) + self.tableWidget.setItem(74, 0, QtWidgets.QTableWidgetItem('논지당')) + self.tableWidget.setItem(74, 1, QtWidgets.QTableWidgetItem('논지당')) + self.tableWidget.setItem(75, 0, QtWidgets.QTableWidgetItem('대우관 별관 동쪽')) + self.tableWidget.setItem(75, 1, QtWidgets.QTableWidgetItem('대우관 별관 동쪽')) + self.tableWidget.setItem(76, 0, QtWidgets.QTableWidgetItem('대우관 별관 서쪽')) + self.tableWidget.setItem(76, 1, QtWidgets.QTableWidgetItem('대우관 별관 서쪽')) + self.tableWidget.setItem(77, 0, QtWidgets.QTableWidgetItem('대우관 본관 앞')) + self.tableWidget.setItem(77, 1, QtWidgets.QTableWidgetItem('대우관 본관 앞')) + self.tableWidget.setItem(78, 0, QtWidgets.QTableWidgetItem('대우관 본관 뒤')) + self.tableWidget.setItem(78, 1, QtWidgets.QTableWidgetItem('대우관 본관 뒤')) + self.tableWidget.setItem(79, 0, QtWidgets.QTableWidgetItem('빌링슬리관')) + self.tableWidget.setItem(79, 1, QtWidgets.QTableWidgetItem('빌링슬리관')) + self.tableWidget.setItem(80, 0, QtWidgets.QTableWidgetItem('성암관')) + self.tableWidget.setItem(80, 1, QtWidgets.QTableWidgetItem('성암관')) + self.tableWidget.setItem(81, 0, QtWidgets.QTableWidgetItem('스팀슨관')) + self.tableWidget.setItem(81, 1, QtWidgets.QTableWidgetItem('스팀슨관')) + self.tableWidget.setItem(82, 0, QtWidgets.QTableWidgetItem('신학관')) + self.tableWidget.setItem(82, 1, QtWidgets.QTableWidgetItem('신학관')) + self.tableWidget.setItem(83, 0, QtWidgets.QTableWidgetItem('아펜젤러관')) + self.tableWidget.setItem(83, 1, QtWidgets.QTableWidgetItem('아펜젤러관')) + self.tableWidget.setItem(84, 0, QtWidgets.QTableWidgetItem('언더우드관 앞')) + self.tableWidget.setItem(84, 1, QtWidgets.QTableWidgetItem('언더우드관 앞')) + self.tableWidget.setItem(85, 0, QtWidgets.QTableWidgetItem('언더우드관 뒤')) + self.tableWidget.setItem(85, 1, QtWidgets.QTableWidgetItem('언더우드관 뒤')) + self.tableWidget.setItem(86, 0, QtWidgets.QTableWidgetItem('연희관')) + self.tableWidget.setItem(86, 1, QtWidgets.QTableWidgetItem('연희관')) + self.tableWidget.setItem(87, 0, QtWidgets.QTableWidgetItem('외솔관')) + self.tableWidget.setItem(87, 1, QtWidgets.QTableWidgetItem('외솔관')) + self.tableWidget.setItem(88, 0, QtWidgets.QTableWidgetItem('위당관')) + self.tableWidget.setItem(88, 1, QtWidgets.QTableWidgetItem('위당관')) + self.tableWidget.setItem(89, 0, QtWidgets.QTableWidgetItem('유억겸기념관')) + self.tableWidget.setItem(89, 1, QtWidgets.QTableWidgetItem('유억겸기념관')) + self.tableWidget.setItem(90, 0, QtWidgets.QTableWidgetItem('핀슨관')) + self.tableWidget.setItem(90, 1, QtWidgets.QTableWidgetItem('핀슨관')) + self.tableWidget.setItem(91, 0, QtWidgets.QTableWidgetItem('한경관')) + self.tableWidget.setItem(91, 1, QtWidgets.QTableWidgetItem('한경관')) + self.tableWidget.setItem(92, 0, QtWidgets.QTableWidgetItem('국제학사')) + self.tableWidget.setItem(92, 1, QtWidgets.QTableWidgetItem('국제학사')) + self.tableWidget.setItem(93, 0, QtWidgets.QTableWidgetItem('동문')) + self.tableWidget.setItem(93, 1, QtWidgets.QTableWidgetItem('동문')) + self.tableWidget.setItem(94, 0, QtWidgets.QTableWidgetItem('미우관')) + self.tableWidget.setItem(94, 1, QtWidgets.QTableWidgetItem('미우관')) + self.tableWidget.setItem(95, 0, QtWidgets.QTableWidgetItem('법현학사')) + self.tableWidget.setItem(95, 1, QtWidgets.QTableWidgetItem('법현학사')) + self.tableWidget.setItem(96, 0, QtWidgets.QTableWidgetItem('새천년관 앞')) + self.tableWidget.setItem(96, 1, QtWidgets.QTableWidgetItem('새천년관 앞')) + self.tableWidget.setItem(97, 0, QtWidgets.QTableWidgetItem('새천년관 뒤')) + self.tableWidget.setItem(97, 1, QtWidgets.QTableWidgetItem('새천년관 뒤')) + self.tableWidget.setItem(98, 0, QtWidgets.QTableWidgetItem('한국어학당')) + self.tableWidget.setItem(98, 1, QtWidgets.QTableWidgetItem('한국어학당')) + self.tableWidget.setItem(99, 0, QtWidgets.QTableWidgetItem('언어연구교육원')) + self.tableWidget.setItem(99, 1, QtWidgets.QTableWidgetItem('언어연구교육원')) + self.tableWidget.setItem(100, 0, QtWidgets.QTableWidgetItem('제중학사')) + self.tableWidget.setItem(100, 1, QtWidgets.QTableWidgetItem('제중학사')) + self.tableWidget.setItem(101, 0, QtWidgets.QTableWidgetItem('차량실')) + self.tableWidget.setItem(101, 1, QtWidgets.QTableWidgetItem('차량실')) + self.tableWidget.setItem(102, 0, QtWidgets.QTableWidgetItem('총장공관')) + self.tableWidget.setItem(102, 1, QtWidgets.QTableWidgetItem('총장공관')) + self.tableWidget.setItem(103, 0, QtWidgets.QTableWidgetItem('한국어학당 옆길')) + self.tableWidget.setItem(103, 1, QtWidgets.QTableWidgetItem('한국어학당 옆길')) + self.tableWidget.setItem(104, 0, QtWidgets.QTableWidgetItem('SK국제학사')) + self.tableWidget.setItem(104, 1, QtWidgets.QTableWidgetItem('SK국제학사')) + self.tableWidget.setItem(105, 0, QtWidgets.QTableWidgetItem('농업개발원')) + self.tableWidget.setItem(105, 1, QtWidgets.QTableWidgetItem('농업개발원')) + self.tableWidget.setItem(106, 0, QtWidgets.QTableWidgetItem('대창고')) + self.tableWidget.setItem(106, 1, QtWidgets.QTableWidgetItem('대창고')) + self.tableWidget.setItem(107, 0, QtWidgets.QTableWidgetItem('무악 1학사')) + self.tableWidget.setItem(107, 1, QtWidgets.QTableWidgetItem('무악 1학사')) + self.tableWidget.setItem(108, 0, QtWidgets.QTableWidgetItem('무악 2학사')) + self.tableWidget.setItem(108, 1, QtWidgets.QTableWidgetItem('무악 2학사')) + self.tableWidget.setItem(109, 0, QtWidgets.QTableWidgetItem('무악 3학사')) + self.tableWidget.setItem(109, 1, QtWidgets.QTableWidgetItem('무악 3학사')) + self.tableWidget.setItem(110, 0, QtWidgets.QTableWidgetItem('무악 4학사')) + self.tableWidget.setItem(110, 1, QtWidgets.QTableWidgetItem('무악 4학사')) + self.tableWidget.setItem(111, 0, QtWidgets.QTableWidgetItem('북문')) + self.tableWidget.setItem(111, 1, QtWidgets.QTableWidgetItem('북문')) + self.tableWidget.setItem(112, 0, QtWidgets.QTableWidgetItem('연세우유')) + self.tableWidget.setItem(112, 1, QtWidgets.QTableWidgetItem('연세우유')) + self.tableWidget.setItem(113, 0, QtWidgets.QTableWidgetItem('온실')) + self.tableWidget.setItem(113, 1, QtWidgets.QTableWidgetItem('온실')) + self.tableWidget.setItem(114, 0, QtWidgets.QTableWidgetItem('우정원')) + self.tableWidget.setItem(114, 1, QtWidgets.QTableWidgetItem('우정원')) + self.tableWidget.setItem(115, 0, QtWidgets.QTableWidgetItem('운동선수기숙사')) + self.tableWidget.setItem(115, 1, QtWidgets.QTableWidgetItem('운동선수기숙사')) + + Dialog.show() + Dialog.exec() + + + def SD_DialogOpen(self): + Dialog = QtWidgets.QDialog() + Dialog.setObjectName("Dialog") + Dialog.setWindowIcon(QtGui.QIcon('src/icons/songdoIcon.PNG')) + Dialog.resize(400, 600) + Dialog.setWindowTitle("SPY @ Songdo") + Dialog.setMinimumSize(QtCore.QSize(400, 600)) + Dialog.setMaximumSize(QtCore.QSize(400, 600)) + fontDB = QtGui.QFontDatabase() + fontDB.addApplicationFont('src/fonts/Pretendard/Pretendard-Medium.ttf') + self.tableWidget = QtWidgets.QTableWidget(Dialog) + self.tableWidget.setGeometry(QtCore.QRect(10, 10, 381, 581)) + self.tableWidget.setObjectName("tableWidget") + self.tableWidget.setColumnCount(2) + self.tableWidget.setRowCount(30) + self.tableWidget.setColumnWidth(0, int(self.tableWidget.width()*1/5)) + self.tableWidget.setColumnWidth(1, int(self.tableWidget.width()*4/5)) + self.tableWidget.setHorizontalHeaderLabels(['Node', '건물 이름']) + self.tableWidget.setItem(0, 0, QtWidgets.QTableWidgetItem('gatea')) + self.tableWidget.setItem(0, 1, QtWidgets.QTableWidgetItem('연돌(임시정문)')) + self.tableWidget.setItem(1, 0, QtWidgets.QTableWidgetItem('gateb')) + self.tableWidget.setItem(1, 1, QtWidgets.QTableWidgetItem('서문(트스 방향)')) + self.tableWidget.setItem(2, 0, QtWidgets.QTableWidgetItem('UML')) + self.tableWidget.setItem(2, 1, QtWidgets.QTableWidgetItem('언더우드기념도서관(1층 출입구)')) + self.tableWidget.setItem(3, 0, QtWidgets.QTableWidgetItem('Yplaza')) + self.tableWidget.setItem(3, 1, QtWidgets.QTableWidgetItem('언더우드기념도서관(지하1층), Y-plaza')) + self.tableWidget.setItem(4, 0, QtWidgets.QTableWidgetItem('YICfield')) + self.tableWidget.setItem(4, 1, QtWidgets.QTableWidgetItem('운동장')) + self.tableWidget.setItem(5, 0, QtWidgets.QTableWidgetItem('LiberA')) + self.tableWidget.setItem(5, 1, QtWidgets.QTableWidgetItem('자유관A')) + self.tableWidget.setItem(6, 0, QtWidgets.QTableWidgetItem('LiberB')) + self.tableWidget.setItem(6, 1, QtWidgets.QTableWidgetItem('자유관B')) + self.tableWidget.setItem(7, 0, QtWidgets.QTableWidgetItem('Futsal')) + self.tableWidget.setItem(7, 1, QtWidgets.QTableWidgetItem('풋살장')) + self.tableWidget.setItem(8, 0, QtWidgets.QTableWidgetItem('WisA')) + self.tableWidget.setItem(8, 1, QtWidgets.QTableWidgetItem('지혜관A')) + self.tableWidget.setItem(9, 0, QtWidgets.QTableWidgetItem('WisB')) + self.tableWidget.setItem(9, 1, QtWidgets.QTableWidgetItem('지혜관B')) + self.tableWidget.setItem(10, 0, QtWidgets.QTableWidgetItem('WisC')) + self.tableWidget.setItem(10, 1, QtWidgets.QTableWidgetItem('지혜관C')) + self.tableWidget.setItem(11, 0, QtWidgets.QTableWidgetItem('Woori')) + self.tableWidget.setItem(11, 1, QtWidgets.QTableWidgetItem('우리은행')) + self.tableWidget.setItem(12, 0, QtWidgets.QTableWidgetItem('DormA')) + self.tableWidget.setItem(12, 1, QtWidgets.QTableWidgetItem('송도학사A')) + self.tableWidget.setItem(13, 0, QtWidgets.QTableWidgetItem('DormB')) + self.tableWidget.setItem(13, 1, QtWidgets.QTableWidgetItem('송도학사B')) + self.tableWidget.setItem(14, 0, QtWidgets.QTableWidgetItem('DormC')) + self.tableWidget.setItem(14, 1, QtWidgets.QTableWidgetItem('송도학사C')) + self.tableWidget.setItem(15, 0, QtWidgets.QTableWidgetItem('DormD')) + self.tableWidget.setItem(15, 1, QtWidgets.QTableWidgetItem('송도학사D')) + self.tableWidget.setItem(16, 0, QtWidgets.QTableWidgetItem('DormE')) + self.tableWidget.setItem(16, 1, QtWidgets.QTableWidgetItem('송도학사E')) + self.tableWidget.setItem(17, 0, QtWidgets.QTableWidgetItem('DormF')) + self.tableWidget.setItem(17, 1, QtWidgets.QTableWidgetItem('송도학사F')) + self.tableWidget.setItem(18, 0, QtWidgets.QTableWidgetItem('DormG')) + self.tableWidget.setItem(18, 1, QtWidgets.QTableWidgetItem('송도학사G')) + self.tableWidget.setItem(19, 0, QtWidgets.QTableWidgetItem('VeriA')) + self.tableWidget.setItem(19, 1, QtWidgets.QTableWidgetItem('진리관A')) + self.tableWidget.setItem(20, 0, QtWidgets.QTableWidgetItem('VeriB')) + self.tableWidget.setItem(20, 1, QtWidgets.QTableWidgetItem('진리관B')) + self.tableWidget.setItem(21, 0, QtWidgets.QTableWidgetItem('VeriC')) + self.tableWidget.setItem(21, 1, QtWidgets.QTableWidgetItem('진리관C')) + self.tableWidget.setItem(22, 0, QtWidgets.QTableWidgetItem('VeriD')) + self.tableWidget.setItem(22, 1, QtWidgets.QTableWidgetItem('진리관D')) + self.tableWidget.setItem(23, 0, QtWidgets.QTableWidgetItem('SLBigen')) + self.tableWidget.setItem(23, 1, QtWidgets.QTableWidgetItem('에스엘바이젠의학연구소')) + self.tableWidget.setItem(24, 0, QtWidgets.QTableWidgetItem('Vision')) + self.tableWidget.setItem(24, 1, QtWidgets.QTableWidgetItem('종합관')) + self.tableWidget.setItem(25, 0, QtWidgets.QTableWidgetItem('Chapl')) + self.tableWidget.setItem(25, 1, QtWidgets.QTableWidgetItem('크리스틴채플')) + self.tableWidget.setItem(26, 0, QtWidgets.QTableWidgetItem('IMCH')) + self.tableWidget.setItem(26, 1, QtWidgets.QTableWidgetItem('국제캠퍼스기념관')) + self.tableWidget.setItem(27, 0, QtWidgets.QTableWidgetItem('Mntnc')) + self.tableWidget.setItem(27, 1, QtWidgets.QTableWidgetItem('파워플랜트')) + self.tableWidget.setItem(28, 0, QtWidgets.QTableWidgetItem('Ghome')) + self.tableWidget.setItem(28, 1, QtWidgets.QTableWidgetItem('저에너지친환경실험주택')) + self.tableWidget.setItem(29, 0, QtWidgets.QTableWidgetItem('posco')) + self.tableWidget.setItem(29, 1, QtWidgets.QTableWidgetItem('포스코그린빌딩')) + + Dialog.show() + Dialog.exec() + + def DirectionConfirm(self): + if self.OriginInput.text() in (Dijkstra.Sin_.keys() or Dijkstra.Song_.keys()) and self.DestinationInput.text() in (Dijkstra.Sin_.keys() or Dijkstra.Song_.keys()): + Origin = self.OriginInput.text() + Destination = self.DestinationInput.text() + self.WarningText_ODnCustomspeed.setText('') + return Origin, Destination + if self.OriginInput.text() not in (Dijkstra.Sin_.keys() or Dijkstra.Song_.keys()) or self.DestinationInput.text() not in (Dijkstra.Sin_.keys() or Dijkstra.Song_.keys()): + self.WarningText_ODnCustomspeed.setText('적절하지 않은 장소가 입력되었습니다.') + self.WarningText_ODnCustomspeed.setStyleSheet("Color: Red") + + def ConfirmEnabler(self): + if self.OriginInput.text() != '' and self.DestinationInput.text() != '': + self.ConfirmButton.setEnabled(True) + else: + self.ConfirmButton.setEnabled(False) + + def UsainBolt(self): + if self.Usain.isChecked() == True: + self.label_14.setText('우사인 볼트의 속도 37.58km/h') + else: + self.label_14.setText('가능하신가요?') + + def DijkstraStart(self): + stops, end = self.DirectionConfirm() + self.ProcessViewer.setPlainText(Dijkstra.search(stops, end)) + + + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + MainWindow = QtWidgets.QMainWindow() + ui = Ui_MainWindow() + ui.setupUi(MainWindow) + MainWindow.show() + sys.exit(app.exec_()) diff --git a/everytime.py b/everytime.py new file mode 100644 index 0000000..4af6ede --- /dev/null +++ b/everytime.py @@ -0,0 +1,80 @@ +#-*- coding:utf-8 -*- +from selenium import webdriver +from bs4 import BeautifulSoup +from time import sleep +from openpyxl import Workbook,load_workbook + +# Chrome의 경우 | 아까 받은 chromedriver의 위치를 지정해준다. +driver = webdriver.Chrome(executable_path=r'./chromedriver') + +# url에 접근한다. +driver.get('https://everytime.kr/login') +# 암묵적으로 웹 자원 로드를 위해 5초까지 기다려 준다. +driver.implicitly_wait(5) + +# 아이디/비밀번호를 입력해준다. +driver.find_element_by_name('userid').send_keys('*****') +driver.find_element_by_name('password').send_keys('*****') + +# 로그인 버튼을 눌러주자. +driver.find_element_by_xpath('//*[@id="container"]/form/p[3]/input').click() + +driver.get('https://everytime.kr/timetable') + +#수업 목록에서 검색 클릭 +driver.find_element_by_xpath('//*[@id="container"]/ul/li[1]').click() + +#팝업창 닫기 +sleep(2) +driver.find_element_by_xpath('//*[@id="sheet"]/ul/li[3]/a').click() + +pre_count = 0 +#스크롤 맨아래로 내리기 +while True: + #tr요소 접근 + element = driver.find_elements_by_css_selector("#subjects > div.list > table > tbody > tr") + + # tr 마지막 요소 접근 + result = element[-1] + #마지막요소에 focus주기 + driver.execute_script('arguments[0].scrollIntoView(true);',result) + sleep(2) + + #현재 접근한 요소의 갯수 + current_count = len(element) + if pre_count == current_count: + break + #같지않다면 + pre_count = current_count + + +html = driver.page_source +soup = BeautifulSoup(html, 'html.parser') + +trs = soup.select('#subjects > div.list > table > tbody > tr') + +results = [] + +for tr in trs: + result=[] + tds = tr.select('#subjects > div.list > table > tbody > tr > td') + result.append(tds[0].text) #과목코드 + result.append(tds[1].text) #과목명 + result.append(tds[2].text) #교수 + result.append(tds[3].text) #강의시간 + result.append(tds[4].text) #강의실 + result.append(tds[5].text) #구분 + # result.append(tds[6].text) #학년 + result.append(tds[7].text) #학점 + result.append(tds[11].text) #수강대상 + results.append(result) +#값이 들어있다면! +if results: + print("성공!!") +excel_column = 9 +write_wb = Workbook() +write_ws = write_wb.create_sheet('result.xls') +for data in results: + write_ws = write_wb.active + write_ws.append(data) +write_wb.save('C:/Users/wwlee/Desktop/selenium/result.csv') \ No newline at end of file diff --git a/import.py b/import.py new file mode 100644 index 0000000..cbc25ee --- /dev/null +++ b/import.py @@ -0,0 +1,6 @@ +# 딕셔너리의 이름이 길다면 이렇게 임포트해도 됩니다 +from campus.songdo import NodeSongdo as do +from campus.sinchon import NodeSinchon as ch + +print(do) +print(ch) \ No newline at end of file diff --git a/installreq.bat b/installreq.bat deleted file mode 100644 index 39a9971..0000000 --- a/installreq.bat +++ /dev/null @@ -1 +0,0 @@ -pip install -r requirements.txt \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..941a0cb --- /dev/null +++ b/main.py @@ -0,0 +1,25 @@ +import random +from selenium import webdriver + +import PyCode.webdriverinstaller as wdinstall + +# 옵션 생성 +options = webdriver.ChromeOptions() +# 창 숨기는 옵션 추가 +options.add_argument("headless") + +# id와 비밀번호 가져오기 +id = '...' +password = 'something else' + +# 드라이버를 가져오고 로그인하기 +driver = webdriver.Chrome(wdinstall.driver_path) +driver.implicitly_wait(1) +driver.get("https://everytime.kr/login") +driver.find_element_by_id("userid").send_keys(f"{id}") +driver.find_element_by_id("password").send_keys(f"{password}") +driver.find_element_by_xpath("//*[@class='submit']/input").click() +driver.implicitly_wait(random.random(1,3)) + +# 드라이버 창 닫기 +# driver.quit() \ No newline at end of file diff --git a/maine.py b/maine.py new file mode 100644 index 0000000..8986eb7 --- /dev/null +++ b/maine.py @@ -0,0 +1,12 @@ +from src.campus.sinchon import NodeSinchon as n + +row = len(n) +print('self.tableWidget.setColumnCount(2)') +print('self.tableWidget.setRowCount('f"{row}"')') +print("self.tableWidget.setHorizontalHeaderLabels(['Node', '건물 이름'])") +i = 0 +for k, v in n.items(): + if '노드' not in k: + print("self.tableWidget.setItem(" + f'{i}' + ", 0, QtWidgets.QTableWidgetItem(" + "'" + f'{k}' + "'" + "))") + print("self.tableWidget.setItem("f'{i}'", 1, QtWidgets.QTableWidgetItem(" + "'" + f'{v[0]}' + "'" + "))") + i += 1 \ No newline at end of file diff --git a/sccn.ui b/sccn.ui new file mode 100644 index 0000000..61fe4ef --- /dev/null +++ b/sccn.ui @@ -0,0 +1,41 @@ + + + Dialog + + + + 0 + 0 + 400 + 600 + + + + + 400 + 600 + + + + + 400 + 600 + + + + Dialog + + + + + 10 + 10 + 381 + 581 + + + + + + + diff --git a/sdcn.ui b/sdcn.ui new file mode 100644 index 0000000..61fe4ef --- /dev/null +++ b/sdcn.ui @@ -0,0 +1,41 @@ + + + Dialog + + + + 0 + 0 + 400 + 600 + + + + + 400 + 600 + + + + + 400 + 600 + + + + Dialog + + + + + 10 + 10 + 381 + 581 + + + + + + + diff --git a/sinchon.py b/sinchon.py new file mode 100644 index 0000000..44b0a2a --- /dev/null +++ b/sinchon.py @@ -0,0 +1,24 @@ +# Node 배열 구조 || {'노드 이름':[장소명,시간,[[이웃 노드1],[이웃 노드2],[이웃 노드3]]]} +# 이웃 노드 값 구조 || ['이웃 노드 이름',거리(m),고도차(m)] +NodeSinchon = { + '': [ + '', + 10000, + [ + [ + ['',0,0], + ['',1,0] + ] + ] + ], + '': [ + '', + 10000, + [ + [ + ['',0,0], + ['',1,0] + ] + ] + ] +} \ No newline at end of file diff --git a/songdo.py b/songdo.py new file mode 100644 index 0000000..6c80336 --- /dev/null +++ b/songdo.py @@ -0,0 +1,523 @@ +# Node 배열 구조 || {'노드 이름':[장소명,시간,[[이웃 노드1],[이웃 노드2],[이웃 노드3]]]} +# 이웃 노드 값 구조 || ['이웃 노드 이름',거리(m),고도차(m)] +NodeSongdo = { + 'gatea': [ + '연돌(임시정문)', + 10000, + [ + [ + ['nodea',116,2] + ] + ] + ], + 'gateb':[ + '서문(트스 방향)', + 10000, + [ + [ + ['DormC',38,0], + ['IMCH',44,0], + ['nodej',68,0] + ] + ] + ], + 'UML':[ + '언더우드기념도서관(1층 출입구)', + 10000, + [ + [ + ['nodee',18,0] + ] + ] + ], + 'Yplaza':[ + '언더우드기념도서관(지하1층), Y-plaza', + 10000, + [ + [ + ['nodem',57,0], + ['noden',56,0], + ['nodes',19,0] + ] + ] + ], + 'YICfield':[ + '운동장', + 10000, + [ + [ + ['nodea',237,2], + ['nodeb',99,0] + ] + ] + ], + 'LiberA':[ + '자유관A', + 10000, + [ + [ + ['nodel',48,0], + ['noder',40,0] + ] + ] + ], + 'LiberB':[ + '자유관B', + 10000, + [ + [ + ['nodea',77,0], + ['nodel',29,0] + ] + ] + ], + 'Futsal':[ + '풋살장', + 10000, + [ + [ + ['DormB',49,0], + ['nodek',31,0], + ['nodep',76,0] + ] + ] + ], + 'WisA':[ + '지혜관A', + 10000, + [ + [ + ['Woori',36,0], + ['nodek',39,0] + ] + ] + ], + 'WisB':[ + '지혜관B', + 10000, + [ + [ + ['nodeg',28,0] + ] + ] + ], + 'WisC':[ + '지혜관C', + 10000, + [ + [ + ['DormD',160,0] + ] + ] + ], + 'Woori':[ + '우리은행', + 10000, + [ + [ + ['WisA',36,0], + ['DormA',53,0], + ['DormB',34,0] + ] + ] + ], + 'DormA':[ + '송도학사A', + 10000, + [ + [ + ['Woori',53,0], + ['nodea',243,2] + ] + ] + ], + 'DormB':[ + '송도학사B', + 10000, + [ + [ + ['Futsal',49,0], + ['Woori',34,0], + ['DormC',65,0], + ['nodej',67,0] + ] + ] + ], + 'DormC':[ + '송도학사C', + 10000, + [ + [ + ['gateb',38,0], + ['DormB',65,0], + ['nodej',78,0] + ] + ] + ], + 'DormD':[ + '송도학사D', + 10000, + [ + [ + ['WisC',160,0], + ['DormG',90,0], + ['nodec',100,0], + ['noded',70,2] + ] + ] + ], + 'DormE':[ + '송도학사E', + 10000, + [ + [ + ['DormF',43,0], + ['nodec',33,0] + ] + ] + ], + 'DormF':[ + '송도학사F', + 10000, + [ + [ + ['DormE',43,0] + ] + ] + ], + 'DormG':[ + '송도학사G', + 10000, + [ + [ + ['DormF',90,0] + ] + ] + ], + 'VeriA':[ + '진리관A', + 10000, + [ + [ + ['nodem',19,0], + ['nodes',58,0] + ] + ] + ], + 'VeriB':[ + '진리관B', + 10000, + [ + [ + ['noded',50,0], + ['nodem',50,0] + ] + ] + ], + 'VeriC':[ + '진리관C', + 10000, + [ + [ + ['nodef',27,0], + ['noden',70,0] + ] + ] + ], + 'VeriD':[ + '진리관D', + 10000, + [ + [ + ['SLBigen',45,0], + ['nodef',45,0] + ] + ] + ], + 'SLBigen':[ + '에스엘바이젠의학연구소', + 10000, + [ + [ + ['VeriD',45,0] + ] + ] + ], + 'Vision':[ + '종합관', + 10000, + [ + [ + ['noden',17,0], + ['nodes',54,0] + ] + ] + ], + 'Chapl':[ + '크리스틴채플', + 10000, + [ + [ + ['nodei',31,0], + ['nodeo',27,0] + ] + ] + ], + 'IMCH':[ + '국제캠퍼스기념관', + 10000, + [ + [ + ['gateb',44,0] + ] + ] + ], + 'Mntnc':[ + '파워플랜트', + 10000, + [ + [ + ['nodei',36,0] + ] + ] + ], + 'Ghome':[ + '저에너지친환경실험주택', + 10000, + [ + [ + ['nodeh',78,0] + ] + ] + ], + 'posco':[ + '포스코그린빌딩', + 10000, + [ + [ + ['nodeg',284,0] + ] + ] + ], + 'nodea':[ + 'a', + 10000, + [ + [ + ['gatea',116,-2], + ['YICfield',237,-2], + ['LiberB',77,0], + ['DormA',243,-2] + ] + ] + ], + 'nodeb':[ + 'b', + 10000, + [ + [ + ['YICfield',99,0], + ['nodec',67,0], + ['noder',150,2] + ] + ] + ], + 'nodec':[ + 'c', + 10000, + [ + [ + ['nodeb',67,0], + ['DormE',33,0], + ['DormD',100,0], + ['nodem',68,2] + ] + ] + ], + 'noded':[ + 'd', + 10000, + [ + [ + ['VeriB',50,0], + ['nodee',65,0] + ] + ] + ], + 'nodee':[ + 'e', + 10000, + [ + [ + ['UML',18,0], + ['noded',65,0], + ['nodef',52,0] + ] + ] + ], + 'nodef':[ + 'f', + 10000, + [ + [ + ['VeriC',27,0], + ['nodee',52,0], + ['VeriD',45,0], + ['nodeg',76,-2] + ] + ] + ], + 'nodeg':[ + 'g', + 10000, + [ + [ + ['nodeo',35,0], + ['nodef',76,2], + ['posco',284,0], + ['WisB',28,0], + ['nodeh',59,0] + ] + ] + ], + 'nodeh':[ + 'h', + 10000, + [ + [ + ['nodei',26,0], + ['nodeg',59,0], + ['Ghome',78,0] + ] + ] + ], + 'nodei':[ + 'i', + 10000, + [ + [ + ['nodej',153,0], + ['Chapl',31,0], + ['nodeh',26,0], + ['Mntnc',36,0] + ] + ] + ], + 'nodej':[ + 'j', + 10000, + [ + [ + ['DormB',67,0], + ['nodep',63,0], + ['nodei',153,0], + ['gateb',68,0], + ['DormC',78,0] + ] + ] + ], + 'nodek':[ + 'k', + 10000, + [ + [ + ['nodel',119,2], + ['Futsal',31,0], + ['WisA',39,0] + ] + ] + ], + 'nodel':[ + 'l', + 10000, + [ + [ + ['LiberB',29,0], + ['LiberA',48,0], + ['nodek',119,-2] + ] + ] + ], + 'nodem':[ + 'm', + 10000, + [ + [ + ['VeriA',19,0], + ['nodec',68,-2], + ['VeriB',50,0], + ['Yplaza',57,0] + ] + ] + ], + 'noden':[ + 'n', + 10000, + [ + [ + ['Vision',17,0], + ['Yplaza',56,0], + ['VeriC',70,0], + ['nodeq',123,-2] + ] + ] + ], + 'nodeo':[ + 'o', + 10000, + [ + [ + ['nodep',137,0], + ['nodeg',35,0], + ['Chapl',27,0] + ] + ] + ], + 'nodep':[ + 'p', + 10000, + [ + [ + ['Futsal',76,0], + ['nodeq',32,0], + ['nodeo',137,0], + ['nodej',65,0] + ] + ] + ], + 'nodeq':[ + 'q', + 10000, + [ + [ + ['noder',88,2], + ['noden',123,2], + ['nodep',32,0] + ] + ] + ], + 'noder':[ + 'r', + 10000, + [ + [ + ['LiberA',40,0], + ['nodeb',150,-2], + ['nodes',58,0], + ['nodeq',88,-2] + ] + ] + ], + 'nodes':[ + 's', + 10000, + [ + [ + ['noder',58,0], + ['VeriA',58,0], + ['Yplaza',19,0], + ['Vision',54,0] + ] + ] + ] +} \ No newline at end of file diff --git a/src/campus/__pycache__/sinchon.cpython-310.pyc b/src/campus/__pycache__/sinchon.cpython-310.pyc new file mode 100644 index 0000000..42732be Binary files /dev/null and b/src/campus/__pycache__/sinchon.cpython-310.pyc differ diff --git a/src/campus/__pycache__/songdo.cpython-310.pyc b/src/campus/__pycache__/songdo.cpython-310.pyc new file mode 100644 index 0000000..5561ceb Binary files /dev/null and b/src/campus/__pycache__/songdo.cpython-310.pyc differ diff --git a/src/campus/sinchon.py b/src/campus/sinchon.py new file mode 100644 index 0000000..036ab00 --- /dev/null +++ b/src/campus/sinchon.py @@ -0,0 +1,3 @@ +# Node 배열 구조 || {'노드 이름':[장소명,시간,[[이웃 노드1],[이웃 노드2],[이웃 노드3]]]} +# 이웃 노드 값 구조 || ['이웃 노드 이름',거리(m),고도차(m)] +NodeSinchon = {'간호대학': ['간호대학', 10000, [['치과대학', 49, -1], ['치과대학병원', 41, -4], ['에비슨의생명연구센터1', 50, 5], ['러들로교수동', 43, -2]]], '광혜관': ['광혜관', 10000, [['심장혈관병원', 131, 9], ['안이비인후과병원', 92, -3]]], '동문회관': ['동문회관', 10000, [['병원출입구', 72, 0], ['에비슨의생명연구센터 옆길', 107, 11]]], '러들로교수동': ['러들로교수동', 10000, [['재활병원', 100, -4], ['치과대학병원', 20, -2], ['간호대학', 43, 2], ['음악관 B', 68, 8]]], '병원출입구': ['병원출입구', 10000, [['동문회관', 72, 0], ['치과대학병원', 120, 11]]], '세브란스병원 본관': ['세브란스병원 본관', 10000, [['제중관', 108, -1], ['의과대학', 121, -5], ['연세암병원1', 133, -3]]], '심장혈관병원': ['심장혈관병원', 10000, [['병원 사이 노드', 28, 1], ['광혜관', 131, -9]]], '안이비인후과병원': ['안이비인후과병원', 10000, [['암병원 서쪽 노드', 27, 0], ['광혜관', 92, 3]]], '어린이병원': ['어린이병원', 10000, [['병원 사이 노드', 77, 3], ['재활병원', 57, 4], ['제중관', 101, -5]]], '에비슨의생명연구센터1': ['에비슨의생명연구센터1', 10000, [['에비슨의생명연구센터2', 65, -6], ['간호대학', 50, -5], ['알렌관', 46, 2], ['어린이생활지도연구원', 46, 3]]], '에비슨의생명연구센터2': ['에비슨의생명연구센터2', 10000, [['에비슨의생명연구센터1', 65, 6], ['치과대학', 40, 0], ['에비슨의생명연구센터 옆길', 56, -5]]], '에비슨의생명연구센터 옆길': ['에비슨의생명연구센터 옆길', 10000, [['연세동문길 노드', 99, 3], ['동문회관', 107, -9]]], '연세암병원1': ['연세암병원1', 10000, [['세브란스병원 본관', 133, 3], ['제중관', 64, 2], ['의과대학', 21, -2]]], '연세암병원2': ['연세암병원2', 10000, [['암병원 서쪽 노드', 62, 1], ['암병원 동쪽 노드', 61, 2], ['의료원정문', 73, -1]]], '의과대학': ['의과대학', 10000, [['암병원 동쪽 노드', 81, 0], ['연세암병원1', 21, 2], ['세브란스병원 정문', 121, 5]]], '의료원정문': ['의료원정문', 10000, [['정문', 125, -4], ['연세암병원2', 73, 1], ['암병원 동쪽 노드', 73, 3]]], '임상의학연구센터': ['임상의학연 구센터', 10000, [['암병원 동쪽 노드', 30, 0]]], '재활병원': ['재활병원', 10000, [['병원 사이 노드', 45, -1], ['러들로교수동', 100, 4], ['어린이병원', 57, -4]]], '제중관': ['제중관', 10000, [['연세암병원1', 64, -2], ['어린이병원', 101, 5], ['세브란스병원 본관', 108, 1]]], '치과대학': ['치과대학', 10000, [['간호대학', 49, 1], ['에비슨의생명연구센터2', 40, 0]]], '치과대학병원': ['치과대학병원', 10000, [['러들로교수동', 20, 2], ['간호대학', 41, 4], ['병원출입구', 120, 11]]], '공학원': ['공학원', 10000, [['공학관 동쪽 노드', 43, 0], ['정문', 71, -4]]], '남문': ['남문', 10000, [['야구장 입구1', 34, 1], ['운동장 서쪽 노드', 98, 3], ['정문', 355, -7]]], '대운동장 입구': ['대운동장 입구', 10000, [['운동장 로터리 노드', 48, -1], ['IBS관', 37, 5], ['제2공학관 안쪽', 67, 0], ['GS칼텍스산학협력관', 149, 0]]], '백양누리': ['백양누리', 10000, [['백양로 4노드', 43, 2], ['체육관', 133, 4], ['백주년기념관/박물관', 33, 1], ['광혜원', 69, 4], ['백양로 5노드', 119, -2]]], '별동 연구동': ['별동 연구동', 10000, [['IBS관', 47, 3], ['공학관 북쪽 노드', 53, -4]]], '산학협동관': ['산학협동관', 10000, [['운동장 서쪽 노드', 55, -1], ['GS칼텍스산학협력관', 35, 0]]], '야구장 입구1': ['야구장 입구1', 10000, [['남문', 34, -1], ['운동장 로터리 노드', 100, 2], ['야구장 입구2', 114, 0]]], '야구장 입구2': ['야구장 입구2', 10000, [['공학관 남쪽 노드', 22, 0], ['운동장 로터리 노드', 66, 2], ['야구장 입구1', 114, 0]]], '재활학교': ['재활학교', 10000, [['학군단', 59, 2]]], '정문': ['정문', 10000, [['공학원', 71, 4], [' 백양로 남쪽 끝 노드', 73, 2], ['암병원 서쪽 노드', 140, 6], ['의료원정문', 125, 4], ['남문', 355, 7]]], '제1공학관': ['제1공학관', 10000, [['백양로 5노드', 40, -1], ['공학관 동쪽 노드', 72, -1]]], '제2공학관 안쪽': ['제2공학관 안쪽', 10000, [['대운동장 입구', 67, 0], ['제3 공학관 안쪽', 42, -3], ['제4공학관', 56, -2]]], '제3공학관 안쪽': ['제3공학관 안쪽', 10000, [['제2공학관 안쪽', 42, 3], ['제4공학관', 48, 1]]], '제3공학관 바깥쪽': ['제3공학관 바깥쪽', 10000, [['공학관 남쪽 노드', 29, 0]]], '제4공학관': ['제4공학관', 10000, [['제2공학관 안쪽', 56, 2], ['제3공학관 안쪽', 48, -1], ['공학관 북쪽 노드', 45, 0]]], '첨단과학기술연구관': ['첨단과학기술연구관', 10000, [['과학원 서쪽 노드', 20, -1]]], '학군단': ['학군단', 10000, [['재활학교', 59, -2], ['운동장 서쪽 노드', 58, 0]]], 'GS칼텍스산학협력관': ['GS칼텍스산학협력관', 10000, [['산학협동관', 35, 0], ['대운동장 입구', 149, 0]]], 'IBS관': ['IBS관', 10000, [['과학원 서쪽 노드', 82, 2], ['과학원 동쪽 노드', 46, 3], ['별동연구동', 47, -3], ['대운동장 입구', 37, -5]]], '경영관': ['경영관', 10000, [['백양로 북쪽 끝 노드', 42, -4], ['대강당', 72, -1]]], '광혜원': ['광혜원', 10000, [['백양누리', 69, -4], ['광혜원 옆 노드', 52, 2], ['백주년기념관/박물관', 56, -3]]], '대강당': ['대강당', 10000, [['경영관', 72, 1], ['대강당 옆 노드', 42, 1], ['백양로 2노드', 43, -3]]], '루스채플': ['루스채플', 10000, [['광혜원 옆 노드', 40, -4], ['병원 사이 노드', 122, 3]]], '백주년기념관/박물관': ['백주년기념관/박물관', 10000, [['광혜원', 56, 3], ['백양누리', 33, -1], ['백양로 5노드', 65, -3], ['암병원 서쪽 노드', 140, -1]]], '음악관 A 1': ['음악관 A 1', 10000, [['대강당 옆 노드', 99, -15], ['음악관 A 2', 54, 0]]], '음악관 A 2': ['음악관 A 2', 10000, [['음악관 A 1', 55, 0], ['음악관 B', 52, -1]]], '음악관 B': ['음악관 B', 10000, [['음악관 A 2', 52, 1], ['러들로교수동', 68, -8]]], '학생회관': ['학생회관', 10000, [['중앙도서관1', 90, 1], ['백양로 4노드', 57, -4], ['대강당 옆 노드', 73, 6]]], '과학관': ['과학관', 10000, [['과학원', 63, -3], ['연세삼성학술정보관2', 54, -1]]], '과학원': ['과학원', 10000, [['과학관', 63, 3], ['과학관 서쪽 노드', 79, -2], ['도서관 서쪽 노드', 52, -2], ['과학원 동쪽 노드', 49, -5]]], '광복관': ['광복관', 10000, [['광복관 별관', 43, -2], ['핀슨관 옆 노드', 117, 5], ['백양관 옆 노드', 82, -5]]], '광복관 별관': ['광복관 별관', 10000, [['광복관', 43, 2], ['연세삼성학술정보관1', 47, -4]]], '백양관1': ['백양관1', 10000, [['백양로 3노드', 55, -2], ['백양로 2노드', 40, -2]]], '백양관2': ['백양관2', 10000, [['백양로 북쪽 끝 노드', 71, -4], ['백양로 2노드', 25, -4]]], '삼성관': ['삼성관', 10000, [['과학관 북쪽 노드', 57, -3], ['언더우드가기념관', 162, 5]]], '서문': ['서문', 10000, [['과학원 서쪽 노드', 27, -1], ['과학관 남쪽 노드', 41, 3]]], '스포츠과학관': ['스포츠과학관', 10000, [['체육관', 40, 1], ['공학관 북쪽 노드', 32, 0]]], '언더우드가 기념관': ['언더우드가 기념관', 10000, [['삼성관', 162, -5]]], '연세삼성학술정보관1': ['연세삼성학술정보관1', 10000, [['중앙도서관2', 27, 0], ['광복관 별관', 47, 4], ['도서관 사이 노드', 47, -2]]], '연세삼성학술정보관2': ['연세삼성학술정보관2', 10000, [['도서관 남쪽 노드', 46, -4], ['도서관 서쪽 노드', 37, 0], ['과학관', 54, 1]]], '중앙도서관1': ['중앙도서관1', 10000, [['백양관 옆 노드', 77, 3], ['도서관 남쪽 노드', 50, -4], ['학생회관', 90, -1]]], '중앙도서관2': ['ㄹ중앙도서관2', 10000, [['연세삼성학술정보관1', 27, 0]]], '체육관': ['체육관', 10000, [['체육교육관', 67, 10], ['백양누 리', 133, -4], ['도서관 사이 노드', 40, 3], ['스포츠과학관', 40, 1]]], '체육교육관': ['체육교육관', 10000, [['과학원 동쪽 노드', 33, -1], ['체육관', 67, -10]]], '노천극장': ['노천극장', 10000, [['노천극장 옆 노드', 40, 0]]], '상남경영관': ['상남경영관', 10000, [['알렌관 앞 노드', 28, -5], ['대학사택', 65, 2]]], '알렌관': ['알렌관', 10000, [['알렌관 앞 노드', 23, 2], ['에비슨의생명연구센터1', 46, -2]]], '어린이생활지도연구원': ['어린이생활지도연구원', 10000, [['알렌관 앞 노드', 18, 1], ['에비슨의생명연구센터1', 46, -3]]], '대학사택': ['대학사택', 10000, [['전파천문대', 118, 17], ['청송대', 90, 4], ['한국어학당', 88, -10], ['유진어린이집', 24, -1], ['상남경영관', 65, -2]]], '유진어린이집': ['유진어린이집', 10000, [['대학사택', 24, 1], ['알렌관 앞 노드', 57, -6]]], '전파천문대': ['전파천문대', 10000, [['대학사택', 118, -17]]], '청송대': ['청송대', 10000, [['대학사택', 90, -4], ['청송대 동쪽 노드', 39, -3]]], '교육과학관': ['교육과학관', 10000, [['외솔관 앞 노드', 49, -4], ['위당관', 67, 1]]], '논지당': ['논지당', 10000, [['논지당 서쪽 노드', 24, -2]]], '대우관 별관 동쪽': ['대우관 별관 동쪽', 10000, [['대우관 동쪽 노드', 36, 0]]], '대우관 별관 서쪽': ['대우관 별관 서쪽', 10000, [['연희관 서쪽 노드', 132, 7], ['대우관 본관 앞', 66, 3], ['연희관', 117, -8]]], '대우관 본관 앞': ['대우관 본관 앞', 10000, [['대우관 별관 서쪽', 66, -3], ['대우관 서쪽 노드', 45, 0]]], '대우관 본관 뒤': ['대우관 본관 뒤', 10000, [['대우관 서쪽 노드', 91, -5], ['대우관 뒤 노드', 132, 14]]], '빌링슬리관': ['빌링슬리관', 10000, [['연희관 서쪽 노드', 52, -6], ['위당관', 80, 1]]], '성암관': ['성암관', 10000, [['연희관', 66, 2], ['논지당 북쪽 노드', 41, -3]]], '스팀슨관': ['스팀슨관', 10000, [['유억겸기념관', 98, 8], ['한경관', 77, 10], ['백양로 북쪽 끝 노드', 90, -7], ['아펜젤러관', 44, -1], ['언더우드관', 58, 0]]], '신학관': ['신학관', 10000, [['광복관 옆 노드', 101, -14], ['핀슨관', 108, -12], ['외솔관', 67, -5]]], '아펜젤러관': ['아펜젤러관', 10000, [['논지당 서쪽 노드', 28, 1], ['스팀슨관', 44, 1], ['백양로 북쪽 끝 노드', 90, 6]]], '언더우드관 앞': ['언더우드관 앞', 10000, [['스팀슨관', 58, 0], ['논지당 서쪽 노드', 33, 0]]], '언더우드관 뒤': ['언더우드관 뒤', 10000, [['유억겸기념 관', 65, 5], ['논지당 북쪽 노드', 36, 2]]], '연희관': ['연희관', 10000, [['연희관 서쪽 노드', 58, 1], ['대우관별관 서쪽', 117, 8], ['성암관 동쪽 노드', 28, 2], ['성암관', 66, -2], ['유억겸기념관', 58, -2]]], '외솔관': ['외솔관', 10000, [['외솔관 앞 노드', 36, -1], ['신학관', 67, 5]]], '위당관': ['위당관', 10000, [['연희관 서쪽 노드', 74, -7], ['교육과학관', 67, -1]]], '유억겸기념관': ['유억겸기념관', 10000, [['연희관 서쪽 노드', 56, 3], ['언더우드관 뒤', 65, -5], ['스팀슨관', 98, -8], ['외솔관 앞 노드', 108, 5], ['연희관', 58, 2]]], '핀슨관': ['핀슨관', 10000, [['신학관', 108, 12], ['백양로 북쪽 끝 노드', 84, -14], ['핀슨관 옆 노드', 25, -2]]], '한경관': ['한경관', 10000, [[' 외솔관 앞 노드', 27, 3], ['스팀슨관', 77, -10], ['백양로 북쪽 끝 노드', 108, -17], ['핀슨관', 66, -3]]], '국제학사': ['국제학사', 10000, [['새천년관 앞', 26, 6], ['언어연구교육원', 42, 1]]], '동문': ['동문', 10000, [['새천년관 뒤', 252, 11], ['법현학사', 77, -10]]], '미우관': ['미우관', 10000, [['어학당 서쪽 노드', 30, 6], ['연대동문길 노드', 27, -1]]], '법현학사': ['법현학사', 10000, [['동문', 77, 10], ['한국어학당 옆길', 205, -5]]], '새천년관 앞': ['새천년관 앞', 10000, [['국제학사', 26, -6], ['새천년관 옆 노드', 46, 4]]], '새천년관 뒤': ['새천년관 뒤', 10000, [['청송대 동쪽 노드', 99, -3], ['동문', 252, -11]]], '한국어학당': ['한국어학당', 10000, [['대학사택', 88, 10], ['새천년관 옆 노드', 63, 8], ['어학당 서쪽 노드', 74, -2]]], '언어연구교육원': ['언어연구교육원', 10000, [['국제학사', 42, -1], ['SK국제학사', 20, -1]]], '제중학사': ['제중학사', 10000, [['한국어학당 옆길', 64, -2]]], '차량실': ['차량실', 10000, [['청송대 북쪽 노드', 63, -7], ['총장공관', 69, -1]]], '총장공관': ['총장공관', 10000, [['차량실', 69, 1], ['청송대 동쪽 노드', 59, -1]]], '한국어학당 옆길': ['한국어학당 옆길', 10000, [['연대동문길 노드', 92, 2], ['어학당 동쪽 노드', 41, 3], ['제중학사', 64, 2], ['법현학사', 205, 5]]], 'SK국제학사': ['SK국제학사', 10000, [['언어연구교육원', 20, 1], ['어학당 동쪽 노드', 34, -6]]], '농업개발원': ['농업개발원', 10000, [['온실 옆 노드', 71, 8], ['연세우유 앞 노드', 106, -13]]], '대창고': ['대창고', 10000, [['연세우유 앞 노드', 21, -1], ['우정원', 33, 8]]], '무악 1학사': ['무악 1학사', 10000, [['무악학사 노드 1', 21, -2]]], '무악 2학사': ['무악 2학사', 10000, [['무악학사 노드 2', 35, -2]]], '무악 3학사': ['무악 3학사', 10000, [['무악학사 노드 1', 41, 2]]], '무악 4학사': ['무악 4학사', 10000, [['무악학사 노드 2', 45, 4], ['북문', 152, -1]]], '북문': ['북문', 10000, [['무악 4학사', 152, 1], ['운동선수기숙사', 99, -1]]], '연세우유': ['연세우유', 10000, [['연세우유 앞 노드', 50, 1]]], '온실': ['온실', 10000, [['온실 옆 노드', 91, -2], ['대우관 뒤 노드', 178, -9]]], '우정원': ['우정원', 10000, [['대창고', 33, -8]]], '운동선수기숙사': ['운동선수기숙사', 10000, [['연세우유 앞 노드', 67, 11], ['북문', 99, 1]]], '무악학사 노드 1': ['무악학사 노드 1', 10000, [['무악 1학사', 21, 2], ['무악 3학사', 41, -2], ['안산 노드', 179, 24], ['무악학사 노드 2', 68, -14]]], '무악학사 노드 2': ['무악학사 노드 2', 10000, [['무악 2학사', 35, 2], ['무악 4학사', 45, -4], ['무악학사 노드 1', 68, 14]]], '안산 노드': ['안산 노드', 10000, [['무악학사 노드 1', 179, -24], ['온실 옆 노드', 148, -12]]], '온실 옆 노드': ['온실 옆 노드', 10000, [['농업개발원', 71, -8], ['온실', 91, 2], ['안산 노드', 148, 12]]], '연세우유 앞 노드': ['연세우유 앞 노드', 10000, [['농업개발원', 106, 13], ['대창고', 21, 1], ['연세우유', 50, -1], ['운동선수기숙사', 67, -11]]], '대우관 뒤 노드': ['대우관 뒤 노드', 10000, [['대우관 본관 뒤', 132, -14], ['온실', 178, 9], ['대우관 동쪽 노드', 189, -17], ['대우관 서쪽 노드', 137, -19]]], '대우관 서쪽 노드': ['대우관 서쪽 노드', 10000, [['대우관 본관 앞', 45, 0], ['대우관 본관 뒤', 91, 5], ['대우관 뒤 노드', 137, 19]]], '대우관 동쪽 노드': ['대우관 동쪽 노드', 10000, [['대우관 별관 동쪽', 36, 0], ['청송대 북쪽 노드', 44, -5], ['대우관 뒤 노드', 189, 17]]], '연희관 서쪽 노드': ['연희관 서쪽 노드', 10000, [['대우관 별관 서쪽', 132, -7], ['빌링슬리관', 52, 6], ['연희관', 58, -1], ['위당관', 74, 7], ['유억겸기념관', 56, -3]]], '청송대 북쪽 노드': ['청송대 북쪽 노드', 10000, [['차량실', 63, 7], ['대우관 동쪽 노드', 44, 5], ['성암관 동쪽 노드', 61, -6]]], '청송대 동쪽 노드': ['청송대 동쪽 노드', 10000, [['새천년관 옆 노드', 95, -4], ['총장공관', 59, -1], ['새천년관 뒤', 99, -3], ['청송대', 39, 3]]], '새천년관 옆 노드': ['새천년관 옆 노드', 10000, [['청송대 동쪽 노드', 95, 4], ['새천년관 앞', 46, -4], ['한국어학당', 63, -8]]], '어학당 동쪽 노드': ['어학당 동쪽 노드', 10000, [['어학당 서쪽 노드', 79, 6], ['SK국제학사', 34, 6]]], '어학당 서쪽 노드': ['어학당 서쪽 노드', 10000, [['어학당 동쪽 노드', 79, -6], ['한국어학당 옆길', 41, -3]]], '연세동문길 노드': ['연세동문길 노드', 10000, [['에비슨의생명연구센터 옆길', 99, -3]]], '알렌관 앞 노드': ['알렌관 앞 노드', 10000, [['상남경영관', 28, 5], ['알렌관', 23, -2], ['어린이생활지도연구원', 18, -1], ['유진어린이집', 57, 6]]], '노천극장 옆 노드': ['노천극장 옆 노드', 10000, [['논지당 동쪽 노드', 84, 0], ['백양로 북쪽 끝 노드', 109, -14], ['노천극장', 40, 0]]], '논지당 북쪽 노드': ['논지당 북쪽 노드', 10000, [['논지당 서쪽 노드', 38, -5], ['논지당 동쪽 노드', 44, 2], ['성암관', 41, 3], ['언더우드관 뒤', 36, -2]]], '논지당 동쪽 노드': ['논지당 동쪽 노드', 10000, [['논지당 북쪽 노드', 44, -2], ['노천극장 옆 노드', 84, 0], ['성암관 동쪽 노드', 57, 5]]], '논지당 서쪽 노드': ['논지당 서쪽 노드', 10000, [['논지당 북쪽 노드', 38, 5], ['논지당', 24, -2], ['아펜젤러관', 28, 1], ['언더우드관 앞', 33, 0]]], '외솔관 앞 노드': ['외솔관 앞 노드', 10000, [['교육과학관', 49, -4], ['외솔관', 36, -1], ['유억겸기념관', 108, -5], ['한경관', 27, 3]]], '백양로 북쪽 끝 노드': ['백양로 북쪽 끝 노드', 10000, [['백양로 2노드', 70, 0], ['노천극장 옆 노드', 109, 14], ['경영관', 42, -4], ['백양관2', 71, -4], ['스팀슨관', 90, -7], ['아펜젤러관', 90, -6], ['핀슨관', 84, 14], ['한경관', 108, 17]]], '백양로 2노드': ['백양로 2노드', 10000, [['백양로 북쪽 끝 노드', 70, 0], ['백양로 3노드', 40, 0], ['대강당', 43, -3], ['백양관1', 40, -2], ['백양관2', 25, -4]]], '백양로 3노드': ['백양로 3노드', 10000, [['백양로 2노드', 40, 0], ['백양관 옆 노드', 55, 2], ['대강당 옆 노드', 59, 4], ['백양로 4노드', 126, -6]]], '백양로 4노드': ['백양로 4노드', 10000, [['백양로 3노드', 126, 6], ['독수리상 노드', 50, 1], ['광혜원 옆 노드', 74, 4], ['백양누리', 43, 2], ['학생회관', 57, -4]]], '백양로 5노드': ['백양로 5노드', 10000, [['백양로 남쪽 끝 노드', 70, -2], ['암병원 서쪽 노드', 113, 2], ['백양누리', 119, 2], ['제1공학관', 40, 1], ['백주년기념관/박물관', 65, 3], ['백양로 남쪽 끝 노드', 70, -2]]], '백양로 남쪽 끝 노드': ['백양로 남쪽 끝 노드', 10000, [['백양로 5노드', 70, 2], ['암병원 서쪽 노드', 97, 4], ['공학관 동쪽 노드', 62, 2]]], '핀슨관 옆 노드': ['핀슨관 옆 노드', 10000, [['광복관 옆 노드', 31, 0], ['핀슨관', 25, 2], ['광복관', 117, -5]]], '광복관 옆 노드': ['광복관 옆 노드', 10000, [['핀슨관 옆 노드', 31, 0], ['도서관 서쪽 노드', 152, 0], ['신학관', 101, 14]]], '백양관 옆 노드': ['백양관 옆 노드', 10000, [['광복관', 82, 5], ['중앙도서관1', 77, -3], ['백양로 3노드', 55, -2]]], '대강당 옆 노드': ['대강당 옆 노드', 10000, [['대강당', 42, -1], ['음악관 A 1', 99, 15], ['학생회관', 73, -6], ['백양로 3노드', 59, -4]]], '광혜원 옆 노드': ['광혜원 옆 노드', 10000, [['광혜원', 52, -2], ['루스채플', 40, 4], ['백양로 4노드', 74, -4]]], '독수리상 노드': ['독수리상 노드', 10000, [['백양로 4노드', 50, -1], ['도서관 사이 노드', 89, 4]]], '도서관 사이 노드': ['도서관 사이 노드', 10000, [['독수리상 노드', 89, -4], ['연세삼성학술정보관1', 47, 2], ['체육관', 40, -3], ['독수리상 노드', 89, -4], ['도서관 남쪽 노드', 60, 9]]], '도서관 서쪽 노드': ['도서관 서쪽 노드', 10000, [['과학원', 52, 2], ['연세삼성학술정보관2', 30, 7], ['광복관 옆 노드', 152, 0], ['삼성관 옆 노드', 116, 8]]], '도서관 남쪽 노드': ['도서관 남쪽 노드', 10000, [['도서관 사이 노드', 60, -9], ['연세삼성학술정보관2', 46, 4], ['중앙도서관1', 50, 4], ['도서관 사이 노드', 60, -9]]], '삼성관 옆 노드': ['삼성관 옆 노드', 10000, [['과학관 남쪽 노드', 72, -12], ['도서관 서쪽 노드', 116, -8]]], '과학관 남쪽 노드': ['과학관 남쪽 노드', 10000, [['서문', 41, -3], ['삼성관 옆 노드', 72, 12]]], '과학원 서쪽 노드': ['과학원 서쪽 노드', 10000, [['첨단과학기술연구관', 20, 1], ['IBS관', 82, -2], ['서문', 27, 1]]], '과학원 동쪽 노드': ['과학원 동쪽 노드', 10000, [['IBS관', 46, -3], ['과학원', 49, 5], ['체육교육관', 33, 1]]], '공학관 북쪽 노드': ['공학관 북쪽 노드', 10000, [['별동 연구동', 53, 4], ['제4공학관', 45, 0], ['스포츠과학관', 32, 0]]], '운동장 로터리 노드': ['운동장 로터리 노드', 10000, [['대운동장 입구', 48, 1], ['야구장 입구1', 100, -2], ['야구장 입구2', 66, -2]]], '운동장 서쪽 노드': ['운동장 서쪽 노드', 10000, [['남문', 98, -3], ['산학협동관', 55, 1], ['학군단', 58, 0]]], '공학관 남쪽 노드': ['공학관 남쪽 노드', 10000, [['공학관 동쪽 노드', 128, -4], ['야구장 입구2', 22, 0], ['제3공학관 바깥쪽', 29, 0]]], '공학관 동쪽 노드': ['공학관 동 쪽 노드', 10000, [['공학관 남쪽 노드', 128, 4], ['백양로 남쪽 끝 노드', 62, -2], ['공학원', 43, 0], ['제1공학관', 72, 1]]], '암병원 서쪽 노드': ['암병원 서쪽 노드', 10000, [['안이비인후과병원', 27, 0], ['연세암병원2', 62, -1], ['정문', 140, -6], ['백주년기념관/박물관', 140, 1], ['백양로 5노드', 113, -2], ['백양로 남쪽 끝 노드', 97, -4]]], '암병원 동쪽 노드': ['암병원 동쪽 노드', 10000, [['연세암병원2', 61, -2], ['의과대학', 81, 0], ['의료원정문', 73, -3], ['임상의학연구센터', 30, 0]]], '병원 사이 노드': ['병원 사이 노드', 10000, [['심장혈관병원', 28, -1], ['어린이병원', 77, -3], ['재활병원', 45, 1], ['루스채플', 122, -3]]], '성암관 동쪽 노드': ['성암관 동쪽 노드', 10000, [['논지당 동쪽 노드', 57, -5], ['연희관', 28, -2], ['청송대 북쪽 노드', 61, 6]]], '연대동문길 노드' : ['연대동문길 노드', 10000, [['미우관', 30, -1],['한국어학당 옆길', 92, -2]]]} \ No newline at end of file diff --git a/src/campus/songdo.py b/src/campus/songdo.py new file mode 100644 index 0000000..9987358 --- /dev/null +++ b/src/campus/songdo.py @@ -0,0 +1,453 @@ +# Node 배열 구조 || {'노드 이름':[장소명,시간,[이웃 노드1],[이웃 노드2],[이웃 노드3]]} +# 이웃 노드 값 구조 || ['이웃 노드 이름',거리(m),고도차(m)] +NodeSongdo = { + 'gatea': [ + '연돌(임시정문)', + 10000, + [ + ['nodea',116,2] + ] + ], + 'gateb':[ + '서문(트스 방향)', + 10000, + [ + + ['DormC',38,0], + ['IMCH',44,0], + ['nodej',68,0] + + ] + ], + 'UML':[ + '언더우드기념도서관(1층 출입구)', + 10000, + [ + + ['nodee',18,0] + + ] + ], + 'Yplaza':[ + '언더우드기념도서관(지하1층), Y-plaza', + 10000, + [ + + ['nodem',57,0], + ['noden',56,0], + ['nodes',19,0] + + ] + ], + 'YICfield':[ + '운동장', + 10000, + [ + + ['nodea',237,2], + ['nodeb',99,0] + + ] + ], + 'LiberA':[ + '자유관A', + 10000, + [ + + ['nodel',48,0], + ['noder',40,0] + + ] + ], + 'LiberB':[ + '자유관B', + 10000, + [ + + ['nodea',77,0], + ['nodel',29,0] + + ] + ], + 'Futsal':[ + '풋살장', + 10000, + [ + + ['DormB',49,0], + ['nodek',31,0], + ['nodep',76,0] + + ] + ], + 'WisA':[ + '지혜관A', + 10000, + [ + + ['Woori',36,0], + ['nodek',39,0] + + ] + ], + 'WisB':[ + '지혜관B', + 10000, + [ + + ['nodeg',28,0] + + ] + ], + 'WisC':[ + '지혜관C', + 10000, + [ + + ['DormD',160,0] + + ] + ], + 'Woori':[ + '우리은행', + 10000, + [ + + ['WisA',36,0], + ['DormA',53,0], + ['DormB',34,0] + + ] + ], + 'DormA':[ + '송도학사A', + 10000, + [ + + ['Woori',53,0], + ['nodea',243,2] + + ] + ], + 'DormB':[ + '송도학사B', + 10000, + [ + + ['Futsal',49,0], + ['Woori',34,0], + ['DormC',65,0], + ['nodej',67,0] + + ] + ], + 'DormC':[ + '송도학사C', + 10000, + [ + + ['gateb',38,0], + ['DormB',65,0], + ['nodej',78,0] + + ] + ], + 'DormD':[ + '송도학사D', + 10000, + [ + ['WisC',160,0], + ['DormG',90,0], + ['nodec',100,0], + ['noded',70,2] + ] + ], + 'DormE':[ + '송도학사E', + 10000, + [ + ['DormF',43,0], + ['nodec',33,0] + ] + ], + 'DormF':[ + '송도학사F', + 10000, + [ + ['DormE',43,0] + ] + ], + 'DormG':[ + '송도학사G', + 10000, + [ + ['DormF',90,0] + ] + ], + 'VeriA':[ + '진리관A', + 10000, + [ + ['nodem',19,0], + ['nodes',58,0] + ] + ], + 'VeriB':[ + '진리관B', + 10000, + [ + ['noded',50,0], + ['nodem',50,0] + ] + ], + 'VeriC':[ + '진리관C', + 10000, + [ + ['nodef',27,0], + ['noden',70,0] + ] + ], + 'VeriD':[ + '진리관D', + 10000, + [ + ['SLBigen',45,0], + ['nodef',45,0] + ] + ], + 'SLBigen':[ + '에스엘바이젠의학연구소', + 10000, + [ + ['VeriD',45,0] + ] + ], + 'Vision':[ + '종합관', + 10000, + [ + ['noden',17,0], + ['nodes',54,0] + ] + ], + 'Chapl':[ + '크리스틴채플', + 10000, + [ + ['nodei',31,0], + ['nodeo',27,0] + ] + ], + 'IMCH':[ + '국제캠퍼스기념관', + 10000, + [ + ['gateb',44,0] + ] + ], + 'Mntnc':[ + '파워플랜트', + 10000, + [ + ['nodei',36,0] + ] + ], + 'Ghome':[ + '저에너지친환경실험주택', + 10000, + [ + ['nodeh',78,0] + ] + ], + 'posco':[ + '포스코그린빌딩', + 10000, + [ + ['nodeg',284,0] + ] + ], + 'nodea':[ + 'a', + 10000, + [ + ['gatea',116,-2], + ['YICfield',237,-2], + ['LiberB',77,0], + ['DormA',243,-2] + ] + ], + 'nodeb':[ + 'b', + 10000, + [ + ['YICfield',99,0], + ['nodec',67,0], + ['noder',150,2] + ] + ], + 'nodec':[ + 'c', + 10000, + [ + ['nodeb',67,0], + ['DormE',33,0], + ['DormD',100,0], + ['nodem',68,2] + ] + ], + 'noded':[ + 'd', + 10000, + [ + ['VeriB',50,0], + ['nodee',65,0] + ] + ], + 'nodee':[ + 'e', + 10000, + [ + ['UML',18,0], + ['noded',65,0], + ['nodef',52,0] + ] + ], + 'nodef':[ + 'f', + 10000, + [ + ['VeriC',27,0], + ['nodee',52,0], + ['VeriD',45,0], + ['nodeg',76,-2] + ] + ], + 'nodeg':[ + 'g', + 10000, + [ + ['nodeo',35,0], + ['nodef',76,2], + ['posco',284,0], + ['WisB',28,0], + ['nodeh',59,0] + ] + ], + 'nodeh':[ + 'h', + 10000, + [ + ['nodei',26,0], + ['nodeg',59,0], + ['Ghome',78,0] + ] + ], + 'nodei':[ + 'i', + 10000, + [ + ['nodej',153,0], + ['Chapl',31,0], + ['nodeh',26,0], + ['Mntnc',36,0] + ] + ], + 'nodej':[ + 'j', + 10000, + [ + ['DormB',67,0], + ['nodep',63,0], + ['nodei',153,0], + ['gateb',68,0], + ['DormC',78,0] + ] + ], + 'nodek':[ + 'k', + 10000, + [ + ['nodel',119,2], + ['Futsal',31,0], + ['WisA',39,0] + ] + ], + 'nodel':[ + 'l', + 10000, + [ + ['LiberB',29,0], + ['LiberA',48,0], + ['nodek',119,-2] + ] + ], + 'nodem':[ + 'm', + 10000, + [ + ['VeriA',19,0], + ['nodec',68,-2], + ['VeriB',50,0], + ['Yplaza',57,0] + ] + ], + 'noden':[ + 'n', + 10000, + [ + ['Vision',17,0], + ['Yplaza',56,0], + ['VeriC',70,0], + ['nodeq',123,-2] + ] + ], + 'nodeo':[ + 'o', + 10000, + [ + ['nodep',137,0], + ['nodeg',35,0], + ['Chapl',27,0] + ] + ], + 'nodep':[ + 'p', + 10000, + [ + ['Futsal',76,0], + ['nodeq',32,0], + ['nodeo',137,0], + ['nodej',65,0] + ] + ], + 'nodeq':[ + 'q', + 10000, + [ + ['noder',88,2], + ['noden',123,2], + ['nodep',32,0] + ] + ], + 'noder':[ + 'r', + 10000, + [ + ['LiberA',40,0], + ['nodeb',150,-2], + ['nodes',58,0], + ['nodeq',88,-2] + ] + ], + 'nodes':[ + 's', + 10000, + [ + ['noder',58,0], + ['VeriA',58,0], + ['Yplaza',19,0], + ['Vision',54,0] + ] + ] +} diff --git "a/src/campus/\354\213\240\354\264\214\354\272\240 \353\205\270\353\223\234.xlsx" "b/src/campus/\354\213\240\354\264\214\354\272\240 \353\205\270\353\223\234.xlsx" new file mode 100644 index 0000000..7b59c36 Binary files /dev/null and "b/src/campus/\354\213\240\354\264\214\354\272\240 \353\205\270\353\223\234.xlsx" differ diff --git a/src/fonts/Pretendard/LICENSE.txt b/src/fonts/Pretendard/LICENSE.txt new file mode 100644 index 0000000..c0592ca --- /dev/null +++ b/src/fonts/Pretendard/LICENSE.txt @@ -0,0 +1,94 @@ +Copyright (c) 2021, Kil Hyung-jin (https://github.com/orioncactus/pretendard), +with Reserved Font Name Pretendard. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. \ No newline at end of file diff --git a/src/fonts/Pretendard/Pretendard-Black.ttf b/src/fonts/Pretendard/Pretendard-Black.ttf new file mode 100644 index 0000000..90d3951 Binary files /dev/null and b/src/fonts/Pretendard/Pretendard-Black.ttf differ diff --git a/src/fonts/Pretendard/Pretendard-Light.ttf b/src/fonts/Pretendard/Pretendard-Light.ttf new file mode 100644 index 0000000..cb0efd3 Binary files /dev/null and b/src/fonts/Pretendard/Pretendard-Light.ttf differ diff --git a/src/fonts/Pretendard/Pretendard-Medium.ttf b/src/fonts/Pretendard/Pretendard-Medium.ttf new file mode 100644 index 0000000..eefc6d5 Binary files /dev/null and b/src/fonts/Pretendard/Pretendard-Medium.ttf differ diff --git a/src/fonts/Pretendard/Pretendard-SemiBold.ttf b/src/fonts/Pretendard/Pretendard-SemiBold.ttf new file mode 100644 index 0000000..32334f9 Binary files /dev/null and b/src/fonts/Pretendard/Pretendard-SemiBold.ttf differ diff --git a/src/fonts/TitilliumWeb/OFL.txt b/src/fonts/TitilliumWeb/OFL.txt new file mode 100644 index 0000000..4a44b9b --- /dev/null +++ b/src/fonts/TitilliumWeb/OFL.txt @@ -0,0 +1,93 @@ +Copyright (c) 2009-2011 by Accademia di Belle Arti di Urbino and students of MA course of Visual design. Some rights reserved. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/src/fonts/TitilliumWeb/TitilliumWeb-SemiBold.ttf b/src/fonts/TitilliumWeb/TitilliumWeb-SemiBold.ttf new file mode 100644 index 0000000..2a1a0bc Binary files /dev/null and b/src/fonts/TitilliumWeb/TitilliumWeb-SemiBold.ttf differ diff --git a/src/icons/SPYIcon.png b/src/icons/SPYIcon.png new file mode 100644 index 0000000..98722d7 Binary files /dev/null and b/src/icons/SPYIcon.png differ diff --git a/src/icons/sinchonIcon.png b/src/icons/sinchonIcon.png new file mode 100644 index 0000000..227b761 Binary files /dev/null and b/src/icons/sinchonIcon.png differ diff --git a/src/icons/songdoIcon.png b/src/icons/songdoIcon.png new file mode 100644 index 0000000..9d6f564 Binary files /dev/null and b/src/icons/songdoIcon.png differ diff --git a/src/pythoncode/RequirementsInstall.py b/src/pythoncode/RequirementsInstall.py new file mode 100644 index 0000000..134865f --- /dev/null +++ b/src/pythoncode/RequirementsInstall.py @@ -0,0 +1,10 @@ +import platform +import subprocess + + +def requirementsinstall(): + # Download the required packages + if platform.system() == "Windows": + subprocess.check_call(["pip", "install", "-r", "requirements.txt"], shell=True) + else: + subprocess.check_call(['sudo', "pip", "install", "-r", "requirements.txt"]) \ No newline at end of file diff --git a/src/pythoncode/__pycache__/sccn.cpython-310.pyc b/src/pythoncode/__pycache__/sccn.cpython-310.pyc new file mode 100644 index 0000000..5e4644d Binary files /dev/null and b/src/pythoncode/__pycache__/sccn.cpython-310.pyc differ diff --git a/src/pythoncode/__pycache__/sdcn.cpython-310.pyc b/src/pythoncode/__pycache__/sdcn.cpython-310.pyc new file mode 100644 index 0000000..dec6adf Binary files /dev/null and b/src/pythoncode/__pycache__/sdcn.cpython-310.pyc differ diff --git a/src/pythoncode/requirements.txt b/src/pythoncode/requirements.txt new file mode 100644 index 0000000..faf163a --- /dev/null +++ b/src/pythoncode/requirements.txt @@ -0,0 +1,68 @@ +asttokens==2.0.5 +async-generator==1.10 +attrs==21.4.0 +autopep8==1.6.0 +backcall==0.2.0 +beautifulsoup4==4.11.1 +black==22.1.0 +bs4==0.0.1 +certifi==2021.10.8 +cffi==1.15.0 +charset-normalizer==2.0.12 +chromedriver-autoinstaller==0.3.1 +click==8.0.3 +colorama==0.4.4 +cryptography==37.0.2 +debugpy==1.5.1 +decorator==5.1.1 +entrypoints==0.4 +et-xmlfile==1.1.0 +executing==0.8.2 +h11==0.13.0 +idna==3.3 +ipykernel==6.9.1 +ipython==8.0.1 +jedi==0.18.1 +jupyter-client==7.1.2 +jupyter-core==4.9.2 +matplotlib-inline==0.1.3 +mypy-extensions==0.4.3 +nest-asyncio==1.5.4 +openpyxl==3.0.9 +outcome==1.1.0 +parso==0.8.3 +pathspec==0.9.0 +pickleshare==0.7.5 +platformdirs==2.5.0 +prompt-toolkit==3.0.28 +pure-eval==0.2.2 +pycodestyle==2.8.0 +pycparser==2.21 +pygame==2.1.2 +Pygments==2.11.2 +pyOpenSSL==22.0.0 +PyQt5==5.15.6 +PyQt5-Qt5==5.15.2 +PyQt5-sip==12.10.1 +PySide2==5.15.2.1 +PySocks==1.7.1 +python-dateutil==2.8.2 +pywin32==303 +pyzmq==22.3.0 +requests==2.27.1 +selenium==4.1.3 +shiboken2==5.15.2.1 +six==1.16.0 +sniffio==1.2.0 +sortedcontainers==2.4.0 +soupsieve==2.3.2.post1 +stack-data==0.2.0 +toml==0.10.2 +tomli==2.0.1 +tornado==6.1 +traitlets==5.1.1 +trio==0.20.0 +trio-websocket==0.9.2 +urllib3==1.26.9 +wcwidth==0.2.5 +wsproto==1.1.0 diff --git a/src/pythoncode/sccn.py b/src/pythoncode/sccn.py new file mode 100644 index 0000000..f165428 --- /dev/null +++ b/src/pythoncode/sccn.py @@ -0,0 +1,279 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'sccn.ui' +# +# Created by: PyQt5 UI code generator 5.15.6 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.setWindowIcon(QtGui.QIcon('src/icons/sinchonIcon.PNG')) + Dialog.resize(400, 600) + Dialog.setMinimumSize(QtCore.QSize(400, 600)) + Dialog.setMaximumSize(QtCore.QSize(400, 600)) + fontDB = QtGui.QFontDatabase() + fontDB.addApplicationFont('src/fonts/Pretendard/Pretendard-Medium.ttf') + self.tableWidget = QtWidgets.QTableWidget(Dialog) + self.tableWidget.setGeometry(QtCore.QRect(10, 10, 381, 581)) + self.tableWidget.setObjectName("tableWidget") + self.tableWidget.setColumnCount(2) + self.tableWidget.setRowCount(116) + self.tableWidget.setColumnWidth(0, int(self.tableWidget.width()*2/5)) + self.tableWidget.setColumnWidth(1, int(self.tableWidget.width()*3/5)) + self.tableWidget.setHorizontalHeaderLabels(['Node', '건물 이름']) + self.tableWidget.setItem(0, 0, QtWidgets.QTableWidgetItem('간호대학')) + self.tableWidget.setItem(0, 1, QtWidgets.QTableWidgetItem('간호대학')) + self.tableWidget.setItem(1, 0, QtWidgets.QTableWidgetItem('광혜관')) + self.tableWidget.setItem(1, 1, QtWidgets.QTableWidgetItem('광혜관')) + self.tableWidget.setItem(2, 0, QtWidgets.QTableWidgetItem('동문회관')) + self.tableWidget.setItem(2, 1, QtWidgets.QTableWidgetItem('동문회관')) + self.tableWidget.setItem(3, 0, QtWidgets.QTableWidgetItem('러들로교수동')) + self.tableWidget.setItem(3, 1, QtWidgets.QTableWidgetItem('러들로교수동')) + self.tableWidget.setItem(4, 0, QtWidgets.QTableWidgetItem('병원출입구')) + self.tableWidget.setItem(4, 1, QtWidgets.QTableWidgetItem('병원출입구')) + self.tableWidget.setItem(5, 0, QtWidgets.QTableWidgetItem('세브란스병원 본관')) + self.tableWidget.setItem(5, 1, QtWidgets.QTableWidgetItem('세브란스병원 본관')) + self.tableWidget.setItem(6, 0, QtWidgets.QTableWidgetItem('심장혈관병원')) + self.tableWidget.setItem(6, 1, QtWidgets.QTableWidgetItem('심장혈관병원')) + self.tableWidget.setItem(7, 0, QtWidgets.QTableWidgetItem('안이비인후과병원')) + self.tableWidget.setItem(7, 1, QtWidgets.QTableWidgetItem('안이비인후과병원')) + self.tableWidget.setItem(8, 0, QtWidgets.QTableWidgetItem('어린이병원')) + self.tableWidget.setItem(8, 1, QtWidgets.QTableWidgetItem('어린이병원')) + self.tableWidget.setItem(9, 0, QtWidgets.QTableWidgetItem('에비슨의생명연구센터1')) + self.tableWidget.setItem(9, 1, QtWidgets.QTableWidgetItem('에비슨의생명연구센터1')) + self.tableWidget.setItem(10, 0, QtWidgets.QTableWidgetItem('에비슨의생명연구센터2')) + self.tableWidget.setItem(10, 1, QtWidgets.QTableWidgetItem('에비슨의생명연구센터2')) + self.tableWidget.setItem(11, 0, QtWidgets.QTableWidgetItem('에비슨의생명연구센터 옆길')) + self.tableWidget.setItem(11, 1, QtWidgets.QTableWidgetItem('에비슨의생명연구센터 옆길')) + self.tableWidget.setItem(12, 0, QtWidgets.QTableWidgetItem('연세암병원1')) + self.tableWidget.setItem(12, 1, QtWidgets.QTableWidgetItem('연세암병원1')) + self.tableWidget.setItem(13, 0, QtWidgets.QTableWidgetItem('연세암병원2')) + self.tableWidget.setItem(13, 1, QtWidgets.QTableWidgetItem('연세암병원2')) + self.tableWidget.setItem(14, 0, QtWidgets.QTableWidgetItem('의과대학')) + self.tableWidget.setItem(14, 1, QtWidgets.QTableWidgetItem('의과대학')) + self.tableWidget.setItem(15, 0, QtWidgets.QTableWidgetItem('의료원정문')) + self.tableWidget.setItem(15, 1, QtWidgets.QTableWidgetItem('의료원정문')) + self.tableWidget.setItem(16, 0, QtWidgets.QTableWidgetItem('임상의학연구센터')) + self.tableWidget.setItem(16, 1, QtWidgets.QTableWidgetItem('임상의학연 구센터')) + self.tableWidget.setItem(17, 0, QtWidgets.QTableWidgetItem('재활병원')) + self.tableWidget.setItem(17, 1, QtWidgets.QTableWidgetItem('재활병원')) + self.tableWidget.setItem(18, 0, QtWidgets.QTableWidgetItem('제중관')) + self.tableWidget.setItem(18, 1, QtWidgets.QTableWidgetItem('제중관')) + self.tableWidget.setItem(19, 0, QtWidgets.QTableWidgetItem('치과대학')) + self.tableWidget.setItem(19, 1, QtWidgets.QTableWidgetItem('치과대학')) + self.tableWidget.setItem(20, 0, QtWidgets.QTableWidgetItem('치과대학병원')) + self.tableWidget.setItem(20, 1, QtWidgets.QTableWidgetItem('치과대학병원')) + self.tableWidget.setItem(21, 0, QtWidgets.QTableWidgetItem('공학원')) + self.tableWidget.setItem(21, 1, QtWidgets.QTableWidgetItem('공학원')) + self.tableWidget.setItem(22, 0, QtWidgets.QTableWidgetItem('남문')) + self.tableWidget.setItem(22, 1, QtWidgets.QTableWidgetItem('남문')) + self.tableWidget.setItem(23, 0, QtWidgets.QTableWidgetItem('대운동장 입구')) + self.tableWidget.setItem(23, 1, QtWidgets.QTableWidgetItem('대운동장 입구')) + self.tableWidget.setItem(24, 0, QtWidgets.QTableWidgetItem('백양누리')) + self.tableWidget.setItem(24, 1, QtWidgets.QTableWidgetItem('백양누리')) + self.tableWidget.setItem(25, 0, QtWidgets.QTableWidgetItem('별동 연구동')) + self.tableWidget.setItem(25, 1, QtWidgets.QTableWidgetItem('별동 연구동')) + self.tableWidget.setItem(26, 0, QtWidgets.QTableWidgetItem('산학협동관')) + self.tableWidget.setItem(26, 1, QtWidgets.QTableWidgetItem('산학협동관')) + self.tableWidget.setItem(27, 0, QtWidgets.QTableWidgetItem('야구장 입구1')) + self.tableWidget.setItem(27, 1, QtWidgets.QTableWidgetItem('야구장 입구1')) + self.tableWidget.setItem(28, 0, QtWidgets.QTableWidgetItem('야구장 입구2')) + self.tableWidget.setItem(28, 1, QtWidgets.QTableWidgetItem('야구장 입구2')) + self.tableWidget.setItem(29, 0, QtWidgets.QTableWidgetItem('재활학교')) + self.tableWidget.setItem(29, 1, QtWidgets.QTableWidgetItem('재활학교')) + self.tableWidget.setItem(30, 0, QtWidgets.QTableWidgetItem('정문')) + self.tableWidget.setItem(30, 1, QtWidgets.QTableWidgetItem('정문')) + self.tableWidget.setItem(31, 0, QtWidgets.QTableWidgetItem('제1공학관')) + self.tableWidget.setItem(31, 1, QtWidgets.QTableWidgetItem('제1공학관')) + self.tableWidget.setItem(32, 0, QtWidgets.QTableWidgetItem('제2공학관 안쪽')) + self.tableWidget.setItem(32, 1, QtWidgets.QTableWidgetItem('제2공학관 안쪽')) + self.tableWidget.setItem(33, 0, QtWidgets.QTableWidgetItem('제3공학관 안쪽')) + self.tableWidget.setItem(33, 1, QtWidgets.QTableWidgetItem('제3공학관 안쪽')) + self.tableWidget.setItem(34, 0, QtWidgets.QTableWidgetItem('제3공학관 바깥쪽')) + self.tableWidget.setItem(34, 1, QtWidgets.QTableWidgetItem('제3공학관 바깥쪽')) + self.tableWidget.setItem(35, 0, QtWidgets.QTableWidgetItem('제4공학관')) + self.tableWidget.setItem(35, 1, QtWidgets.QTableWidgetItem('제4공학관')) + self.tableWidget.setItem(36, 0, QtWidgets.QTableWidgetItem('첨단과학기술연구관')) + self.tableWidget.setItem(36, 1, QtWidgets.QTableWidgetItem('첨단과학기술연구관')) + self.tableWidget.setItem(37, 0, QtWidgets.QTableWidgetItem('학군단')) + self.tableWidget.setItem(37, 1, QtWidgets.QTableWidgetItem('학군단')) + self.tableWidget.setItem(38, 0, QtWidgets.QTableWidgetItem('GS칼텍스산학협력관')) + self.tableWidget.setItem(38, 1, QtWidgets.QTableWidgetItem('GS칼텍스산학협력관')) + self.tableWidget.setItem(39, 0, QtWidgets.QTableWidgetItem('IBS관')) + self.tableWidget.setItem(39, 1, QtWidgets.QTableWidgetItem('IBS관')) + self.tableWidget.setItem(40, 0, QtWidgets.QTableWidgetItem('경영관')) + self.tableWidget.setItem(40, 1, QtWidgets.QTableWidgetItem('경영관')) + self.tableWidget.setItem(41, 0, QtWidgets.QTableWidgetItem('광혜원')) + self.tableWidget.setItem(41, 1, QtWidgets.QTableWidgetItem('광혜원')) + self.tableWidget.setItem(42, 0, QtWidgets.QTableWidgetItem('대강당')) + self.tableWidget.setItem(42, 1, QtWidgets.QTableWidgetItem('대강당')) + self.tableWidget.setItem(43, 0, QtWidgets.QTableWidgetItem('루스채플')) + self.tableWidget.setItem(43, 1, QtWidgets.QTableWidgetItem('루스채플')) + self.tableWidget.setItem(44, 0, QtWidgets.QTableWidgetItem('백주년기념관/박물관')) + self.tableWidget.setItem(44, 1, QtWidgets.QTableWidgetItem('백주년기념관/박물관')) + self.tableWidget.setItem(45, 0, QtWidgets.QTableWidgetItem('음악관 A 1')) + self.tableWidget.setItem(45, 1, QtWidgets.QTableWidgetItem('음악관 A 1')) + self.tableWidget.setItem(46, 0, QtWidgets.QTableWidgetItem('음악관 A 2')) + self.tableWidget.setItem(46, 1, QtWidgets.QTableWidgetItem('음악관 A 2')) + self.tableWidget.setItem(47, 0, QtWidgets.QTableWidgetItem('음악관 B')) + self.tableWidget.setItem(47, 1, QtWidgets.QTableWidgetItem('음악관 B')) + self.tableWidget.setItem(48, 0, QtWidgets.QTableWidgetItem('학생회관')) + self.tableWidget.setItem(48, 1, QtWidgets.QTableWidgetItem('학생회관')) + self.tableWidget.setItem(49, 0, QtWidgets.QTableWidgetItem('과학관')) + self.tableWidget.setItem(49, 1, QtWidgets.QTableWidgetItem('과학관')) + self.tableWidget.setItem(50, 0, QtWidgets.QTableWidgetItem('과학원')) + self.tableWidget.setItem(50, 1, QtWidgets.QTableWidgetItem('과학원')) + self.tableWidget.setItem(51, 0, QtWidgets.QTableWidgetItem('광복관')) + self.tableWidget.setItem(51, 1, QtWidgets.QTableWidgetItem('광복관')) + self.tableWidget.setItem(52, 0, QtWidgets.QTableWidgetItem('광복관 별관')) + self.tableWidget.setItem(52, 1, QtWidgets.QTableWidgetItem('광복관 별관')) + self.tableWidget.setItem(53, 0, QtWidgets.QTableWidgetItem('백양관1')) + self.tableWidget.setItem(53, 1, QtWidgets.QTableWidgetItem('백양관1')) + self.tableWidget.setItem(54, 0, QtWidgets.QTableWidgetItem('백양관2')) + self.tableWidget.setItem(54, 1, QtWidgets.QTableWidgetItem('백양관2')) + self.tableWidget.setItem(55, 0, QtWidgets.QTableWidgetItem('삼성관')) + self.tableWidget.setItem(55, 1, QtWidgets.QTableWidgetItem('삼성관')) + self.tableWidget.setItem(56, 0, QtWidgets.QTableWidgetItem('서문')) + self.tableWidget.setItem(56, 1, QtWidgets.QTableWidgetItem('서문')) + self.tableWidget.setItem(57, 0, QtWidgets.QTableWidgetItem('스포츠과학관')) + self.tableWidget.setItem(57, 1, QtWidgets.QTableWidgetItem('스포츠과학관')) + self.tableWidget.setItem(58, 0, QtWidgets.QTableWidgetItem('언더우드가 기념관')) + self.tableWidget.setItem(58, 1, QtWidgets.QTableWidgetItem('언더우드가 기념관')) + self.tableWidget.setItem(59, 0, QtWidgets.QTableWidgetItem('연세삼성학술정보관1')) + self.tableWidget.setItem(59, 1, QtWidgets.QTableWidgetItem('연세삼성학술정보관1')) + self.tableWidget.setItem(60, 0, QtWidgets.QTableWidgetItem('연세삼성학술정보관2')) + self.tableWidget.setItem(60, 1, QtWidgets.QTableWidgetItem('연세삼성학술정보관2')) + self.tableWidget.setItem(61, 0, QtWidgets.QTableWidgetItem('중앙도서관1')) + self.tableWidget.setItem(61, 1, QtWidgets.QTableWidgetItem('중앙도서관1')) + self.tableWidget.setItem(62, 0, QtWidgets.QTableWidgetItem('중앙도서관2')) + self.tableWidget.setItem(62, 1, QtWidgets.QTableWidgetItem('중앙도서관2')) + self.tableWidget.setItem(63, 0, QtWidgets.QTableWidgetItem('체육관')) + self.tableWidget.setItem(63, 1, QtWidgets.QTableWidgetItem('체육관')) + self.tableWidget.setItem(64, 0, QtWidgets.QTableWidgetItem('체육교육관')) + self.tableWidget.setItem(64, 1, QtWidgets.QTableWidgetItem('체육교육관')) + self.tableWidget.setItem(65, 0, QtWidgets.QTableWidgetItem('노천극장')) + self.tableWidget.setItem(65, 1, QtWidgets.QTableWidgetItem('노천극장')) + self.tableWidget.setItem(66, 0, QtWidgets.QTableWidgetItem('상남경영관')) + self.tableWidget.setItem(66, 1, QtWidgets.QTableWidgetItem('상남경영관')) + self.tableWidget.setItem(67, 0, QtWidgets.QTableWidgetItem('알렌관')) + self.tableWidget.setItem(67, 1, QtWidgets.QTableWidgetItem('알렌관')) + self.tableWidget.setItem(68, 0, QtWidgets.QTableWidgetItem('어린이생활지도연구원')) + self.tableWidget.setItem(68, 1, QtWidgets.QTableWidgetItem('어린이생활지도연구원')) + self.tableWidget.setItem(69, 0, QtWidgets.QTableWidgetItem('대학사택')) + self.tableWidget.setItem(69, 1, QtWidgets.QTableWidgetItem('대학사택')) + self.tableWidget.setItem(70, 0, QtWidgets.QTableWidgetItem('유진어린이집')) + self.tableWidget.setItem(70, 1, QtWidgets.QTableWidgetItem('유진어린이집')) + self.tableWidget.setItem(71, 0, QtWidgets.QTableWidgetItem('전파천문대')) + self.tableWidget.setItem(71, 1, QtWidgets.QTableWidgetItem('전파천문대')) + self.tableWidget.setItem(72, 0, QtWidgets.QTableWidgetItem('청송대')) + self.tableWidget.setItem(72, 1, QtWidgets.QTableWidgetItem('청송대')) + self.tableWidget.setItem(73, 0, QtWidgets.QTableWidgetItem('교육과학관')) + self.tableWidget.setItem(73, 1, QtWidgets.QTableWidgetItem('교육과학관')) + self.tableWidget.setItem(74, 0, QtWidgets.QTableWidgetItem('논지당')) + self.tableWidget.setItem(74, 1, QtWidgets.QTableWidgetItem('논지당')) + self.tableWidget.setItem(75, 0, QtWidgets.QTableWidgetItem('대우관 별관 동쪽')) + self.tableWidget.setItem(75, 1, QtWidgets.QTableWidgetItem('대우관 별관 동쪽')) + self.tableWidget.setItem(76, 0, QtWidgets.QTableWidgetItem('대우관 별관 서쪽')) + self.tableWidget.setItem(76, 1, QtWidgets.QTableWidgetItem('대우관 별관 서쪽')) + self.tableWidget.setItem(77, 0, QtWidgets.QTableWidgetItem('대우관 본관 앞')) + self.tableWidget.setItem(77, 1, QtWidgets.QTableWidgetItem('대우관 본관 앞')) + self.tableWidget.setItem(78, 0, QtWidgets.QTableWidgetItem('대우관 본관 뒤')) + self.tableWidget.setItem(78, 1, QtWidgets.QTableWidgetItem('대우관 본관 뒤')) + self.tableWidget.setItem(79, 0, QtWidgets.QTableWidgetItem('빌링슬리관')) + self.tableWidget.setItem(79, 1, QtWidgets.QTableWidgetItem('빌링슬리관')) + self.tableWidget.setItem(80, 0, QtWidgets.QTableWidgetItem('성암관')) + self.tableWidget.setItem(80, 1, QtWidgets.QTableWidgetItem('성암관')) + self.tableWidget.setItem(81, 0, QtWidgets.QTableWidgetItem('스팀슨관')) + self.tableWidget.setItem(81, 1, QtWidgets.QTableWidgetItem('스팀슨관')) + self.tableWidget.setItem(82, 0, QtWidgets.QTableWidgetItem('신학관')) + self.tableWidget.setItem(82, 1, QtWidgets.QTableWidgetItem('신학관')) + self.tableWidget.setItem(83, 0, QtWidgets.QTableWidgetItem('아펜젤러관')) + self.tableWidget.setItem(83, 1, QtWidgets.QTableWidgetItem('아펜젤러관')) + self.tableWidget.setItem(84, 0, QtWidgets.QTableWidgetItem('언더우드관 앞')) + self.tableWidget.setItem(84, 1, QtWidgets.QTableWidgetItem('언더우드관 앞')) + self.tableWidget.setItem(85, 0, QtWidgets.QTableWidgetItem('언더우드관 뒤')) + self.tableWidget.setItem(85, 1, QtWidgets.QTableWidgetItem('언더우드관 뒤')) + self.tableWidget.setItem(86, 0, QtWidgets.QTableWidgetItem('연희관')) + self.tableWidget.setItem(86, 1, QtWidgets.QTableWidgetItem('연희관')) + self.tableWidget.setItem(87, 0, QtWidgets.QTableWidgetItem('외솔관')) + self.tableWidget.setItem(87, 1, QtWidgets.QTableWidgetItem('외솔관')) + self.tableWidget.setItem(88, 0, QtWidgets.QTableWidgetItem('위당관')) + self.tableWidget.setItem(88, 1, QtWidgets.QTableWidgetItem('위당관')) + self.tableWidget.setItem(89, 0, QtWidgets.QTableWidgetItem('유억겸기념관')) + self.tableWidget.setItem(89, 1, QtWidgets.QTableWidgetItem('유억겸기념관')) + self.tableWidget.setItem(90, 0, QtWidgets.QTableWidgetItem('핀슨관')) + self.tableWidget.setItem(90, 1, QtWidgets.QTableWidgetItem('핀슨관')) + self.tableWidget.setItem(91, 0, QtWidgets.QTableWidgetItem('한경관')) + self.tableWidget.setItem(91, 1, QtWidgets.QTableWidgetItem('한경관')) + self.tableWidget.setItem(92, 0, QtWidgets.QTableWidgetItem('국제학사')) + self.tableWidget.setItem(92, 1, QtWidgets.QTableWidgetItem('국제학사')) + self.tableWidget.setItem(93, 0, QtWidgets.QTableWidgetItem('동문')) + self.tableWidget.setItem(93, 1, QtWidgets.QTableWidgetItem('동문')) + self.tableWidget.setItem(94, 0, QtWidgets.QTableWidgetItem('미우관')) + self.tableWidget.setItem(94, 1, QtWidgets.QTableWidgetItem('미우관')) + self.tableWidget.setItem(95, 0, QtWidgets.QTableWidgetItem('법현학사')) + self.tableWidget.setItem(95, 1, QtWidgets.QTableWidgetItem('법현학사')) + self.tableWidget.setItem(96, 0, QtWidgets.QTableWidgetItem('새천년관 앞')) + self.tableWidget.setItem(96, 1, QtWidgets.QTableWidgetItem('새천년관 앞')) + self.tableWidget.setItem(97, 0, QtWidgets.QTableWidgetItem('새천년관 뒤')) + self.tableWidget.setItem(97, 1, QtWidgets.QTableWidgetItem('새천년관 뒤')) + self.tableWidget.setItem(98, 0, QtWidgets.QTableWidgetItem('한국어학당')) + self.tableWidget.setItem(98, 1, QtWidgets.QTableWidgetItem('한국어학당')) + self.tableWidget.setItem(99, 0, QtWidgets.QTableWidgetItem('언어연구교육원')) + self.tableWidget.setItem(99, 1, QtWidgets.QTableWidgetItem('언어연구교육원')) + self.tableWidget.setItem(100, 0, QtWidgets.QTableWidgetItem('제중학사')) + self.tableWidget.setItem(100, 1, QtWidgets.QTableWidgetItem('제중학사')) + self.tableWidget.setItem(101, 0, QtWidgets.QTableWidgetItem('차량실')) + self.tableWidget.setItem(101, 1, QtWidgets.QTableWidgetItem('차량실')) + self.tableWidget.setItem(102, 0, QtWidgets.QTableWidgetItem('총장공관')) + self.tableWidget.setItem(102, 1, QtWidgets.QTableWidgetItem('총장공관')) + self.tableWidget.setItem(103, 0, QtWidgets.QTableWidgetItem('한국어학당 옆길')) + self.tableWidget.setItem(103, 1, QtWidgets.QTableWidgetItem('한국어학당 옆길')) + self.tableWidget.setItem(104, 0, QtWidgets.QTableWidgetItem('SK국제학사')) + self.tableWidget.setItem(104, 1, QtWidgets.QTableWidgetItem('SK국제학사')) + self.tableWidget.setItem(105, 0, QtWidgets.QTableWidgetItem('농업개발원')) + self.tableWidget.setItem(105, 1, QtWidgets.QTableWidgetItem('농업개발원')) + self.tableWidget.setItem(106, 0, QtWidgets.QTableWidgetItem('대창고')) + self.tableWidget.setItem(106, 1, QtWidgets.QTableWidgetItem('대창고')) + self.tableWidget.setItem(107, 0, QtWidgets.QTableWidgetItem('무악 1학사')) + self.tableWidget.setItem(107, 1, QtWidgets.QTableWidgetItem('무악 1학사')) + self.tableWidget.setItem(108, 0, QtWidgets.QTableWidgetItem('무악 2학사')) + self.tableWidget.setItem(108, 1, QtWidgets.QTableWidgetItem('무악 2학사')) + self.tableWidget.setItem(109, 0, QtWidgets.QTableWidgetItem('무악 3학사')) + self.tableWidget.setItem(109, 1, QtWidgets.QTableWidgetItem('무악 3학사')) + self.tableWidget.setItem(110, 0, QtWidgets.QTableWidgetItem('무악 4학사')) + self.tableWidget.setItem(110, 1, QtWidgets.QTableWidgetItem('무악 4학사')) + self.tableWidget.setItem(111, 0, QtWidgets.QTableWidgetItem('북문')) + self.tableWidget.setItem(111, 1, QtWidgets.QTableWidgetItem('북문')) + self.tableWidget.setItem(112, 0, QtWidgets.QTableWidgetItem('연세우유')) + self.tableWidget.setItem(112, 1, QtWidgets.QTableWidgetItem('연세우유')) + self.tableWidget.setItem(113, 0, QtWidgets.QTableWidgetItem('온실')) + self.tableWidget.setItem(113, 1, QtWidgets.QTableWidgetItem('온실')) + self.tableWidget.setItem(114, 0, QtWidgets.QTableWidgetItem('우정원')) + self.tableWidget.setItem(114, 1, QtWidgets.QTableWidgetItem('우정원')) + self.tableWidget.setItem(115, 0, QtWidgets.QTableWidgetItem('운동선수기숙사')) + self.tableWidget.setItem(115, 1, QtWidgets.QTableWidgetItem('운동선수기숙사')) + + self.retranslateUi(Dialog) + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "SPY @ Sinchon")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + Dialog = QtWidgets.QDialog() + ui = Ui_Dialog() + ui.setupUi(Dialog) + Dialog.show() + sys.exit(app.exec_()) diff --git a/src/pythoncode/sdcn.py b/src/pythoncode/sdcn.py new file mode 100644 index 0000000..18be5dc --- /dev/null +++ b/src/pythoncode/sdcn.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'sdcn.ui' +# +# Created by: PyQt5 UI code generator 5.15.6 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.setWindowIcon(QtGui.QIcon('src/icons/songdoIcon.PNG')) + Dialog.resize(400, 600) + Dialog.setMinimumSize(QtCore.QSize(400, 600)) + Dialog.setMaximumSize(QtCore.QSize(400, 600)) + self.tableWidget = QtWidgets.QTableWidget(Dialog) + self.tableWidget.setGeometry(QtCore.QRect(10, 10, 381, 581)) + self.tableWidget.setObjectName("tableWidget") + self.tableWidget.setColumnCount(2) + self.tableWidget.setRowCount(30) + self.tableWidget.setColumnWidth(0, int(self.tableWidget.width()*1/5)) + self.tableWidget.setColumnWidth(1, int(self.tableWidget.width()*4/5)) + self.tableWidget.setHorizontalHeaderLabels(['Node', '건물 이름']) + self.tableWidget.setItem(0, 0, QtWidgets.QTableWidgetItem('gatea')) + self.tableWidget.setItem(0, 1, QtWidgets.QTableWidgetItem('연돌(임시정문)')) + self.tableWidget.setItem(1, 0, QtWidgets.QTableWidgetItem('gateb')) + self.tableWidget.setItem(1, 1, QtWidgets.QTableWidgetItem('서문(트스 방향)')) + self.tableWidget.setItem(2, 0, QtWidgets.QTableWidgetItem('UML')) + self.tableWidget.setItem(2, 1, QtWidgets.QTableWidgetItem('언더우드기념도서관(1층 출입구)')) + self.tableWidget.setItem(3, 0, QtWidgets.QTableWidgetItem('Yplaza')) + self.tableWidget.setItem(3, 1, QtWidgets.QTableWidgetItem('언더우드기념도서관(지하1층), Y-plaza')) + self.tableWidget.setItem(4, 0, QtWidgets.QTableWidgetItem('YICfield')) + self.tableWidget.setItem(4, 1, QtWidgets.QTableWidgetItem('운동장')) + self.tableWidget.setItem(5, 0, QtWidgets.QTableWidgetItem('LiberA')) + self.tableWidget.setItem(5, 1, QtWidgets.QTableWidgetItem('자유관A')) + self.tableWidget.setItem(6, 0, QtWidgets.QTableWidgetItem('LiberB')) + self.tableWidget.setItem(6, 1, QtWidgets.QTableWidgetItem('자유관B')) + self.tableWidget.setItem(7, 0, QtWidgets.QTableWidgetItem('Futsal')) + self.tableWidget.setItem(7, 1, QtWidgets.QTableWidgetItem('풋살장')) + self.tableWidget.setItem(8, 0, QtWidgets.QTableWidgetItem('WisA')) + self.tableWidget.setItem(8, 1, QtWidgets.QTableWidgetItem('지혜관A')) + self.tableWidget.setItem(9, 0, QtWidgets.QTableWidgetItem('WisB')) + self.tableWidget.setItem(9, 1, QtWidgets.QTableWidgetItem('지혜관B')) + self.tableWidget.setItem(10, 0, QtWidgets.QTableWidgetItem('WisC')) + self.tableWidget.setItem(10, 1, QtWidgets.QTableWidgetItem('지혜관C')) + self.tableWidget.setItem(11, 0, QtWidgets.QTableWidgetItem('Woori')) + self.tableWidget.setItem(11, 1, QtWidgets.QTableWidgetItem('우리은행')) + self.tableWidget.setItem(12, 0, QtWidgets.QTableWidgetItem('DormA')) + self.tableWidget.setItem(12, 1, QtWidgets.QTableWidgetItem('송도학사A')) + self.tableWidget.setItem(13, 0, QtWidgets.QTableWidgetItem('DormB')) + self.tableWidget.setItem(13, 1, QtWidgets.QTableWidgetItem('송도학사B')) + self.tableWidget.setItem(14, 0, QtWidgets.QTableWidgetItem('DormC')) + self.tableWidget.setItem(14, 1, QtWidgets.QTableWidgetItem('송도학사C')) + self.tableWidget.setItem(15, 0, QtWidgets.QTableWidgetItem('DormD')) + self.tableWidget.setItem(15, 1, QtWidgets.QTableWidgetItem('송도학사D')) + self.tableWidget.setItem(16, 0, QtWidgets.QTableWidgetItem('DormE')) + self.tableWidget.setItem(16, 1, QtWidgets.QTableWidgetItem('송도학사E')) + self.tableWidget.setItem(17, 0, QtWidgets.QTableWidgetItem('DormF')) + self.tableWidget.setItem(17, 1, QtWidgets.QTableWidgetItem('송도학사F')) + self.tableWidget.setItem(18, 0, QtWidgets.QTableWidgetItem('DormG')) + self.tableWidget.setItem(18, 1, QtWidgets.QTableWidgetItem('송도학사G')) + self.tableWidget.setItem(19, 0, QtWidgets.QTableWidgetItem('VeriA')) + self.tableWidget.setItem(19, 1, QtWidgets.QTableWidgetItem('진리관A')) + self.tableWidget.setItem(20, 0, QtWidgets.QTableWidgetItem('VeriB')) + self.tableWidget.setItem(20, 1, QtWidgets.QTableWidgetItem('진리관B')) + self.tableWidget.setItem(21, 0, QtWidgets.QTableWidgetItem('VeriC')) + self.tableWidget.setItem(21, 1, QtWidgets.QTableWidgetItem('진리관C')) + self.tableWidget.setItem(22, 0, QtWidgets.QTableWidgetItem('VeriD')) + self.tableWidget.setItem(22, 1, QtWidgets.QTableWidgetItem('진리관D')) + self.tableWidget.setItem(23, 0, QtWidgets.QTableWidgetItem('SLBigen')) + self.tableWidget.setItem(23, 1, QtWidgets.QTableWidgetItem('에스엘바이젠의학연구소')) + self.tableWidget.setItem(24, 0, QtWidgets.QTableWidgetItem('Vision')) + self.tableWidget.setItem(24, 1, QtWidgets.QTableWidgetItem('종합관')) + self.tableWidget.setItem(25, 0, QtWidgets.QTableWidgetItem('Chapl')) + self.tableWidget.setItem(25, 1, QtWidgets.QTableWidgetItem('크리스틴채플')) + self.tableWidget.setItem(26, 0, QtWidgets.QTableWidgetItem('IMCH')) + self.tableWidget.setItem(26, 1, QtWidgets.QTableWidgetItem('국제캠퍼스기념관')) + self.tableWidget.setItem(27, 0, QtWidgets.QTableWidgetItem('Mntnc')) + self.tableWidget.setItem(27, 1, QtWidgets.QTableWidgetItem('파워플랜트')) + self.tableWidget.setItem(28, 0, QtWidgets.QTableWidgetItem('Ghome')) + self.tableWidget.setItem(28, 1, QtWidgets.QTableWidgetItem('저에너지친환경실험주택')) + self.tableWidget.setItem(29, 0, QtWidgets.QTableWidgetItem('posco')) + self.tableWidget.setItem(29, 1, QtWidgets.QTableWidgetItem('포스코그린빌딩')) + + self.retranslateUi(Dialog) + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Dialog")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + Dialog = QtWidgets.QDialog() + ui = Ui_Dialog() + ui.setupUi(Dialog) + Dialog.show() + sys.exit(app.exec_()) diff --git a/src/pythoncode/webdriverinstaller.py b/src/pythoncode/webdriverinstaller.py new file mode 100644 index 0000000..804fda6 --- /dev/null +++ b/src/pythoncode/webdriverinstaller.py @@ -0,0 +1,17 @@ +import os +import chromedriver_autoinstaller +import RequirementsInstall as rqinstall + + +chrome_ver = chromedriver_autoinstaller.get_chrome_version().split('.')[0] +driver_path = f'./{chrome_ver}/chromedriver.exe' + +rqinstall.requirementsinstall() + +def webdriverinstall(): + # Check if chrome driver is installed or not + if os.path.exists(driver_path): + print(f"chrome driver is insatlled: {driver_path}") + else: + print(f"install the chrome driver(ver: {chrome_ver})") + chromedriver_autoinstaller.install(True) \ No newline at end of file diff --git a/src/test.txt b/src/test.txt new file mode 100644 index 0000000..e69de29 diff --git a/test.py b/test.py index 982f6d7..d3f5a12 100644 --- a/test.py +++ b/test.py @@ -1,27 +1 @@ -import openpyxl as o -wb = o.load_workbook("D:\Asterisk\신촌캠 노드.xlsx") -ws = wb['Sheet1'] - -node = {} -for i in range(2, 167): - nodename = ws.cell(row = i, column = 1).value - tmplt = [nodename, 10000] - guide = [] - for j in range(4, 20, 2): - list = [] - nodecode = ws.cell(row = i, column = j).value - cloud = str(ws.cell(row = i, column = j + 1).value) - cloud = cloud.replace(" ", "") - cloud = cloud.split(',') - if nodecode == None: - pass - else: - list.append(nodecode) - list.append(int(cloud[0])) - list.append(int(cloud[1])) - guide.extend(list) - tmplt.append(guide) - node[nodename] = tmplt - -print(node) diff --git a/xlstodict.py b/xlstodict.py new file mode 100644 index 0000000..f2a99bb --- /dev/null +++ b/xlstodict.py @@ -0,0 +1,31 @@ +import openpyxl as o + +wb = o.load_workbook("D:\Asterisk\신촌캠 노드.xlsx") +ws = wb['Sheet1'] + +node = {} +for i in range(2, 167): + nodename = ws.cell(row = i, column = 1).value + tmplt = [nodename, 10000] + guide = [] + for j in range(4, 20, 2): + list = [] + nodecode = ws.cell(row = i, column = j).value + cloud = str(ws.cell(row = i, column = j + 1).value) + cloud = cloud.replace(" ", "") + cloud = cloud.split(',') + if nodecode == None or cloud == None: + pass + else: + list.append(nodecode) + list.append(int(cloud[0])) + list.append(int(cloud[1])) + guide.append(list) + tmplt.append(guide) + node[nodename] = tmplt + +print(node) +get = str(node) +file = open("D:\Asterisk\campus\sinchon.py",'w') +file.write(get) +file.close() \ No newline at end of file