parent
76145e0881
commit
f12c3e3d17
After Width: | Height: | Size: 66 KiB |
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 66 KiB |
@ -0,0 +1,182 @@
|
||||
import os
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
from PyQt5.QtCore import *
|
||||
from PyQt5.QtGui import *
|
||||
from PyQt5.QtWidgets import *
|
||||
|
||||
import sys
|
||||
import cv2
|
||||
from av import logging
|
||||
from djitellopy import tello
|
||||
|
||||
|
||||
|
||||
class Ui_MainWindow(QtWidgets.QWidget):
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent)
|
||||
|
||||
|
||||
|
||||
|
||||
self.timer_camera = QtCore.QTimer()
|
||||
self.cap = cv2.VideoCapture(0)
|
||||
self.CAM_NUM = 0
|
||||
|
||||
self.set_ui()
|
||||
self.slot_init()
|
||||
#self.paintEvent()
|
||||
|
||||
|
||||
def set_ui(self):
|
||||
|
||||
self.setWindowTitle('虚拟沙盘') # 标题
|
||||
|
||||
self.resize(1200, 800) # 窗口尺寸
|
||||
|
||||
self.setWindowIcon(QIcon("./img/mou.ico")) # 图标
|
||||
|
||||
# MainWindow.setObjectName("MainWindow")
|
||||
# MainWindow.resize(788, 634)
|
||||
# self.centralwidget = QtWidgets.QWidget(MainWindow)
|
||||
# self.centralwidget.setObjectName("centralwidget")
|
||||
#self.status = self.status() # 消息
|
||||
|
||||
#self.status.showMessage('虚拟沙盘3D建模系统')
|
||||
|
||||
#插入图片
|
||||
|
||||
# self.centralwidget = QtWidgets.QWidget(Ui_MainWindow)
|
||||
# self.centralwidget.setObjectName("centralwidget")
|
||||
# self.groupBox_3 = QtWidgets.QGroupBox(self.QtWidgets.centralwidget)
|
||||
# self.groupBox_3.setGeometry(QtCore.QRect(500, 10, 231, 271))
|
||||
# self.groupBox_3.setObjectName("groupBox_3")
|
||||
# self.label_6 = QtWidgets.QLabel(self.groupBox_3)
|
||||
# self.label_6.setGeometry(QtCore.QRect(6, 30, 221, 241))
|
||||
# self.label_6.setMinimumSize(QtCore.QSize(221, 0))
|
||||
# self.label_6.setMaximumSize(QtCore.QSize(221, 16777215))
|
||||
# self.label_6.setText("")
|
||||
# self.label_6.setPixmap(QtGui.QPixmap("./control.png"))
|
||||
# self.label_6.setObjectName("label_6")
|
||||
# self.label_6.setScaledContents(True) # 图片自适应
|
||||
self.__layout_main = QtWidgets.QVBoxLayout()
|
||||
self.__layout_fun_button = QtWidgets.QHBoxLayout()
|
||||
self.__layout_data_show = QtWidgets.QHBoxLayout()
|
||||
self.button_open_camera = QtWidgets.QPushButton('打开摄像头')
|
||||
self.button_operate = QtWidgets.QPushButton('键盘控制')
|
||||
self.button_takephoto = QtWidgets.QPushButton('拍照')
|
||||
self.button_make = QtWidgets.QPushButton('建模')
|
||||
self.button_close = QtWidgets.QPushButton('退出')
|
||||
|
||||
self.button_open_camera.setMinimumHeight(50)
|
||||
self.button_close.setMinimumHeight(50)
|
||||
self.button_operate.setMinimumHeight(50)
|
||||
self.button_takephoto.setMinimumHeight(50)
|
||||
self.button_make.setMinimumHeight(50)
|
||||
self.button_open_camera.move(10, 100)
|
||||
self.label_show_camera = QtWidgets.QLabel()
|
||||
#self.label_show_camera.move(400,400)
|
||||
self.label_show_camera.setFixedSize(841, 681)
|
||||
self.__layout_fun_button.addWidget(self.button_open_camera)
|
||||
self.__layout_fun_button.addWidget(self.button_operate)
|
||||
self.__layout_fun_button.addWidget(self.button_takephoto)
|
||||
self.__layout_fun_button.addWidget(self.button_make)
|
||||
self.__layout_fun_button.addWidget(self.button_close)
|
||||
#self.__layout_fun_button.addWidget(self.label)
|
||||
self.__layout_main.addLayout(self.__layout_fun_button)
|
||||
self.__layout_main.addWidget(self.label_show_camera)
|
||||
|
||||
self.setLayout(self.__layout_main)
|
||||
|
||||
self.show()
|
||||
##########################################
|
||||
|
||||
#绘制图形操作无人机界面
|
||||
# def paintEvent(self,event):
|
||||
# ap = QPainter()
|
||||
# ap.begin(self)
|
||||
#
|
||||
# ap.setPen(Qt.blue)
|
||||
#
|
||||
# #圆圈
|
||||
# rect_arc= QRect(800,300,300,300)
|
||||
# ap.drawArc(rect_arc,0,16*360)
|
||||
#
|
||||
# #键盘
|
||||
#
|
||||
#
|
||||
# #image = QImage('./control.png')
|
||||
# #rect = QRect(400, 400, 300, 300)
|
||||
# #ap.drawImage(rect, image)
|
||||
#
|
||||
# ap.end()
|
||||
|
||||
|
||||
# 将信号与槽关联
|
||||
#self.btn1.clicked.connect(self.onClick_Button)
|
||||
#self.btn2.clicked.connect(self.showDialog)
|
||||
def slot_init(self):
|
||||
self.button_open_camera.clicked.connect(
|
||||
self.button_open_camera_clicked)
|
||||
self.timer_camera.timeout.connect(self.show_camera)
|
||||
self.button_close.clicked.connect(self.onClick_Button)
|
||||
self.button_make.clicked.connect(self.showDialog)
|
||||
|
||||
def button_open_camera_clicked(self):
|
||||
if self.timer_camera.isActive() == False:
|
||||
flag = self.cap.open(self.CAM_NUM)
|
||||
if flag == False:
|
||||
msg = QtWidgets.QMessageBox.warning(self, 'warning', "请检查无人机是否连接正确", buttons=QtWidgets.QMessageBox.Ok)
|
||||
else:
|
||||
self.timer_camera.start(30)
|
||||
self.button_open_camera.setText('关闭摄像头')
|
||||
else:
|
||||
self.timer_camera.stop()
|
||||
self.cap.release()
|
||||
self.label_show_camera.clear()
|
||||
self.button_open_camera.setText('打开摄像头')
|
||||
|
||||
def show_camera(self):
|
||||
self.Drone = tello.Tello() # 创建飞行器对象
|
||||
#self.Drone.connect() # 连接到飞行器
|
||||
#self.Drone.streamon() # 开启视频传输
|
||||
self.Drone.LOGGER.setLevel(logging.ERROR) # 只显示错误信息
|
||||
#sleep(5) # 等待视频初始化
|
||||
#kp.init() # 初始化按键处理模块
|
||||
#flag,OriginalImage = self.Drone.get_frame_read()
|
||||
F = self.Drone.get_frame_read().frame
|
||||
Image = cv2.resize(F, (500, 500))
|
||||
cv2.imshow("Drone Control Centre", Image)
|
||||
cv2.waitKey(1)
|
||||
#flag, self.image = self.cap.read()
|
||||
#show = cv2.resize(OriginalImage, (640, 480))
|
||||
#show = cv2.cvtColor(show, cv2.COLOR_BGR2RGB)
|
||||
#showImage = QtGui.QImage(show.data, show.shape[1], show.shape[0],
|
||||
# QtGui.QImage.Format_RGB888)
|
||||
#self.label_show_camera.setPixmap(QtGui.QPixmap.fromImage(showImage))
|
||||
|
||||
#getKeyboardInput(drone=Drone, speed=70, image=Image) # 按键控制
|
||||
#cv2.imshow("Drone Control Centre", OriginalImage)
|
||||
def showDialog(self):
|
||||
dialog = QtWidgets.QDialog()
|
||||
dialog.resize(800, 600)
|
||||
button = QtWidgets.QPushButton('储存', dialog)
|
||||
button.clicked.connect(dialog.close)
|
||||
button.move(350, 550)
|
||||
dialog.setWindowTitle('建模视图')
|
||||
dialog.setWindowModality(QtCore.Qt.ApplicationModal)
|
||||
|
||||
dialog.exec()
|
||||
def onClick_Button(self):
|
||||
sender = self.sender() #获得button
|
||||
#print(sender.text() + '按钮被按下')
|
||||
app = QtWidgets.QApplication.instance()
|
||||
#退出程序
|
||||
app.quit()
|
||||
|
||||
if __name__ == '__main__':
|
||||
app = QtWidgets.QApplication(sys.argv)
|
||||
|
||||
ui = Ui_MainWindow()
|
||||
ui.show()
|
||||
sys.exit(app.exec_())
|
Loading…
Reference in new issue