From e4af452d8156f28b4d7900cfdf059559e3e2e68c Mon Sep 17 00:00:00 2001 From: lvsen <3354650692@qq.com> Date: Wed, 27 Apr 2022 09:01:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=BA=90=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page1.py | 83 +++++++++++++++++++++++++++++++++++++++ src/page2.py | 67 ++++++++++++++++++++++++++++++++ src/page2_2.py | 81 ++++++++++++++++++++++++++++++++++++++ src/system_main.py | 96 ++++++++++++++++++++++++++++++++++++++++++++++ src/vedio_demo.py | 50 ++++++++++++++++++++++++ 5 files changed, 377 insertions(+) create mode 100644 src/page1.py create mode 100644 src/page2.py create mode 100644 src/page2_2.py create mode 100644 src/system_main.py create mode 100644 src/vedio_demo.py diff --git a/src/page1.py b/src/page1.py new file mode 100644 index 0000000..250c935 --- /dev/null +++ b/src/page1.py @@ -0,0 +1,83 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'page1.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# 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_Form1(object): + def setupUi(self, Form): + Form.setObjectName("Form") + Form.resize(1108, 767) + self.pushButton = QtWidgets.QPushButton(Form) + self.pushButton.setGeometry(QtCore.QRect(10, 740, 75, 23)) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton.sizePolicy().hasHeightForWidth()) + self.pushButton.setSizePolicy(sizePolicy) + self.pushButton.setObjectName("pushButton") + self.pushButton_2 = QtWidgets.QPushButton(Form) + self.pushButton_2.setGeometry(QtCore.QRect(90, 740, 75, 23)) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_2.sizePolicy().hasHeightForWidth()) + self.pushButton_2.setSizePolicy(sizePolicy) + self.pushButton_2.setObjectName("pushButton_2") + self.radioButton = QtWidgets.QRadioButton(Form) + self.radioButton.setGeometry(QtCore.QRect(10, 40, 59, 16)) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.radioButton.sizePolicy().hasHeightForWidth()) + self.radioButton.setSizePolicy(sizePolicy) + self.radioButton.setMaximumSize(QtCore.QSize(100, 20)) + self.radioButton.setObjectName("radioButton") + self.mdiArea = QtWidgets.QMdiArea(Form) + self.mdiArea.setGeometry(QtCore.QRect(9, 61, 1091, 671)) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.mdiArea.sizePolicy().hasHeightForWidth()) + self.mdiArea.setSizePolicy(sizePolicy) + self.mdiArea.setMaximumSize(QtCore.QSize(16777215, 16777215)) + self.mdiArea.setObjectName("mdiArea") + self.pushButton_4 = QtWidgets.QPushButton(Form) + self.pushButton_4.setGeometry(QtCore.QRect(1020, 740, 75, 23)) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_4.sizePolicy().hasHeightForWidth()) + self.pushButton_4.setSizePolicy(sizePolicy) + self.pushButton_4.setObjectName("pushButton_4") + self.pushButton_3 = QtWidgets.QPushButton(Form) + self.pushButton_3.setGeometry(QtCore.QRect(940, 740, 75, 23)) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_3.sizePolicy().hasHeightForWidth()) + self.pushButton_3.setSizePolicy(sizePolicy) + self.pushButton_3.setObjectName("pushButton_3") + self.label = QtWidgets.QLabel(Form) + self.label.setGeometry(QtCore.QRect(10, 10, 101, 31)) + self.label.setObjectName("label") + + self.retranslateUi(Form) + QtCore.QMetaObject.connectSlotsByName(Form) + + def retranslateUi(self, Form): + _translate = QtCore.QCoreApplication.translate + Form.setWindowTitle(_translate("Form", "page1")) + self.pushButton.setText(_translate("Form", "连接")) + self.pushButton_2.setText(_translate("Form", "断开")) + self.radioButton.setText(_translate("Form", "无连接")) + self.pushButton_4.setText(_translate("Form", "缩小")) + self.pushButton_3.setText(_translate("Form", "放大")) + self.label.setText(_translate("Form", "实时画面显示系统")) diff --git a/src/page2.py b/src/page2.py new file mode 100644 index 0000000..f1d5e10 --- /dev/null +++ b/src/page2.py @@ -0,0 +1,67 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'page2.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# 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 +from vedio_demo import Ui_MainWindow +from PyQt5.QtWidgets import * +from PyQt5.QtMultimedia import QMediaContent, QMediaPlayer + +class Ui_MainWindow1(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(1112, 766) + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.gridLayout = QtWidgets.QGridLayout(self.centralwidget) + self.gridLayout.setObjectName("gridLayout") + self.pushButton = QtWidgets.QPushButton(self.centralwidget) + self.pushButton.setObjectName("pushButton") + self.gridLayout.addWidget(self.pushButton, 2, 0, 1, 1) + self.mdiArea = QtWidgets.QMdiArea(self.centralwidget) + self.mdiArea.setObjectName("mdiArea") + self.gridLayout.addWidget(self.mdiArea, 1, 0, 1, 1) + self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_2.setObjectName("pushButton_2") + self.gridLayout.addWidget(self.pushButton_2, 3, 0, 1, 1) + self.label = QtWidgets.QLabel(self.centralwidget) + self.label.setObjectName("label") + self.gridLayout.addWidget(self.label, 0, 0, 1, 1) + MainWindow.setCentralWidget(self.centralwidget) + self.menubar = QtWidgets.QMenuBar(MainWindow) + self.menubar.setGeometry(QtCore.QRect(0, 0, 1112, 23)) + self.menubar.setObjectName("menubar") + MainWindow.setMenuBar(self.menubar) + self.statusbar = QtWidgets.QStatusBar(MainWindow) + self.statusbar.setObjectName("statusbar") + MainWindow.setStatusBar(self.statusbar) + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + self.pushButton.clicked.connect(lambda: self.msg()) + def msg(self): + MainWindow = QMainWindow() + ui = Ui_MainWindow() + ui.setupUi(MainWindow) + self.mdiArea.addSubWindow(MainWindow) + MainWindow.showMaximized() + ui.player = QMediaPlayer() + ui.player.setVideoOutput(ui.wgt_video) + ui.pushButton.clicked.connect(lambda: openVideoFile(ui)) + ui.player.setMedia(QMediaContent(QFileDialog.getOpenFileUrl()[0])) + ui.pushButton_2.clicked.connect(lambda: pause(ui)) + def pause(a): + a.player.pause() + def openVideoFile(a): + a.player.play() + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) + self.pushButton.setText(_translate("MainWindow", "添加文件")) + self.pushButton_2.setText(_translate("MainWindow", "分析路径")) + self.label.setText(_translate("MainWindow", "路径分析界面")) diff --git a/src/page2_2.py b/src/page2_2.py new file mode 100644 index 0000000..30b0dfb --- /dev/null +++ b/src/page2_2.py @@ -0,0 +1,81 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'page2.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# 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 +from vedio_demo import Ui_MainWindow +from PyQt5.QtWidgets import * +from PyQt5.QtMultimedia import QMediaContent, QMediaPlayer +from Search_2D.Astar import AStar +import os +import sys +sys.path.append(os.path.dirname(os.path.abspath(__file__)) + + "/../../Search_based_Planning/") +from Search_2D import plotting + +class Ui_MainWindow1(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(1112, 766) + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.gridLayout = QtWidgets.QGridLayout(self.centralwidget) + self.gridLayout.setObjectName("gridLayout") + self.pushButton = QtWidgets.QPushButton(self.centralwidget) + self.pushButton.setObjectName("pushButton") + self.gridLayout.addWidget(self.pushButton, 2, 0, 1, 1) + self.mdiArea = QtWidgets.QMdiArea(self.centralwidget) + self.mdiArea.setObjectName("mdiArea") + self.gridLayout.addWidget(self.mdiArea, 1, 0, 1, 1) + self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_2.setObjectName("pushButton_2") + self.gridLayout.addWidget(self.pushButton_2, 3, 0, 1, 1) + self.label = QtWidgets.QLabel(self.centralwidget) + self.label.setObjectName("label") + self.gridLayout.addWidget(self.label, 0, 0, 1, 1) + MainWindow.setCentralWidget(self.centralwidget) + self.menubar = QtWidgets.QMenuBar(MainWindow) + self.menubar.setGeometry(QtCore.QRect(0, 0, 1112, 23)) + self.menubar.setObjectName("menubar") + MainWindow.setMenuBar(self.menubar) + self.statusbar = QtWidgets.QStatusBar(MainWindow) + self.statusbar.setObjectName("statusbar") + MainWindow.setStatusBar(self.statusbar) + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + self.pushButton.clicked.connect(lambda: self.msg()) + self.pushButton_2.clicked.connect(lambda: self.search()) + def msg(self): + MainWindow = QMainWindow() + ui = Ui_MainWindow() + ui.setupUi(MainWindow) + self.mdiArea.addSubWindow(MainWindow) + MainWindow.showMaximized() + ui.player = QMediaPlayer() + ui.player.setVideoOutput(ui.wgt_video) + ui.pushButton.clicked.connect(lambda: openVideoFile(ui)) + ui.player.setMedia(QMediaContent(QFileDialog.getOpenFileUrl()[0])) + ui.pushButton_2.clicked.connect(lambda: pause(ui)) + def pause(a): + a.player.pause() + def openVideoFile(a): + a.player.play() + def search(self): + s_start = (5, 5) + s_goal = (45, 25) + astar = AStar(s_start, s_goal, "euclidean") + plot = plotting.Plotting(s_start, s_goal) + path, visited = astar.searching() + plot.animation(path, visited, "A*") + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) + self.pushButton.setText(_translate("MainWindow", "添加文件")) + self.pushButton_2.setText(_translate("MainWindow", "分析路径")) + self.label.setText(_translate("MainWindow", "路径分析界面")) diff --git a/src/system_main.py b/src/system_main.py new file mode 100644 index 0000000..2a3fcc8 --- /dev/null +++ b/src/system_main.py @@ -0,0 +1,96 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'system_main.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# 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 +import sys +from PyQt5.QtWidgets import * +from page1 import Ui_Form1 +from page2 import Ui_MainWindow1 + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(1275, 896) + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.gridLayout = QtWidgets.QGridLayout(self.centralwidget) + self.gridLayout.setObjectName("gridLayout") + self.label = QtWidgets.QLabel(self.centralwidget) + self.label.setMinimumSize(QtCore.QSize(0, 20)) + self.label.setMaximumSize(QtCore.QSize(200, 20)) + self.label.setTextFormat(QtCore.Qt.AutoText) + self.label.setAlignment(QtCore.Qt.AlignCenter) + self.label.setObjectName("label") + self.gridLayout.addWidget(self.label, 1, 0, 1, 1) + self.groupBox = QtWidgets.QGroupBox(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.groupBox.sizePolicy().hasHeightForWidth()) + self.groupBox.setSizePolicy(sizePolicy) + self.groupBox.setMaximumSize(QtCore.QSize(600, 16777215)) + self.groupBox.setFlat(False) + self.groupBox.setCheckable(False) + self.groupBox.setObjectName("groupBox") + self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox) + self.gridLayout_2.setObjectName("gridLayout_2") + self.pushButton = QtWidgets.QPushButton(self.groupBox) + self.pushButton.setObjectName("pushButton") + self.gridLayout_2.addWidget(self.pushButton, 0, 0, 1, 1) + self.pushButton_2 = QtWidgets.QPushButton(self.groupBox) + self.pushButton_2.setObjectName("pushButton_2") + self.gridLayout_2.addWidget(self.pushButton_2, 1, 0, 1, 1) + self.gridLayout.addWidget(self.groupBox, 2, 0, 2, 1) + self.mdiArea = QtWidgets.QMdiArea(self.centralwidget) + self.mdiArea.setObjectName("mdiArea") + self.gridLayout.addWidget(self.mdiArea, 2, 1, 2, 1) + MainWindow.setCentralWidget(self.centralwidget) + self.menubar = QtWidgets.QMenuBar(MainWindow) + self.menubar.setGeometry(QtCore.QRect(0, 0, 1275, 23)) + self.menubar.setObjectName("menubar") + MainWindow.setMenuBar(self.menubar) + self.statusbar = QtWidgets.QStatusBar(MainWindow) + self.statusbar.setObjectName("statusbar") + MainWindow.setStatusBar(self.statusbar) + self.pushButton.clicked.connect(lambda: self.open1()) + self.pushButton_2.clicked.connect(lambda: self.open2()) + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def open1(self): + MainWindow = QMainWindow() + ui = Ui_Form1() + ui.setupUi(MainWindow) + self.mdiArea.addSubWindow(MainWindow) + MainWindow.showMaximized() + + def open2(self): + MainWindow = QMainWindow() + ui = Ui_MainWindow1() + ui.setupUi(MainWindow) + self.mdiArea.addSubWindow(MainWindow) + MainWindow.showMaximized() + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "无人机自动寻路系统")) + self.label.setText(_translate("MainWindow", "无人机自动寻路系统(主界面)")) + self.groupBox.setTitle(_translate("MainWindow", "菜单栏")) + self.pushButton.setText(_translate("MainWindow", "实时画面")) + self.pushButton_2.setText(_translate("MainWindow", "路径分析")) + +if __name__ == '__main__': + app = QApplication(sys.argv) + MainWindow = QMainWindow() + ui = Ui_MainWindow() + ui.setupUi(MainWindow) + MainWindow.show() + sys.exit(app.exec_()) \ No newline at end of file diff --git a/src/vedio_demo.py b/src/vedio_demo.py new file mode 100644 index 0000000..5a6b7f0 --- /dev/null +++ b/src/vedio_demo.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'vedio_demo.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# 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 +from PyQt5.QtMultimediaWidgets import QVideoWidget + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(1111, 676) + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.gridLayout = QtWidgets.QGridLayout(self.centralwidget) + self.gridLayout.setObjectName("gridLayout") + self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_2.setObjectName("pushButton_2") + self.gridLayout.addWidget(self.pushButton_2, 3, 0, 1, 1) + self.pushButton = QtWidgets.QPushButton(self.centralwidget) + self.pushButton.setObjectName("pushButton") + self.gridLayout.addWidget(self.pushButton, 2, 0, 1, 1) + self.wgt_video = QVideoWidget(self.centralwidget) + self.wgt_video.setObjectName("widget") + self.gridLayout.addWidget(self.wgt_video, 0, 0, 1, 1) + self.horizontalSlider = QtWidgets.QSlider(self.centralwidget) + self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal) + self.horizontalSlider.setObjectName("horizontalSlider") + self.gridLayout.addWidget(self.horizontalSlider, 1, 0, 1, 1) + MainWindow.setCentralWidget(self.centralwidget) + self.menubar = QtWidgets.QMenuBar(MainWindow) + self.menubar.setGeometry(QtCore.QRect(0, 0, 1111, 23)) + self.menubar.setObjectName("menubar") + MainWindow.setMenuBar(self.menubar) + self.statusbar = QtWidgets.QStatusBar(MainWindow) + self.statusbar.setObjectName("statusbar") + MainWindow.setStatusBar(self.statusbar) + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) + self.pushButton_2.setText(_translate("MainWindow", "暂停")) + self.pushButton.setText(_translate("MainWindow", "播放"))