From a1a901a75f1236435473f4f7fb2dcfd3a46f523a Mon Sep 17 00:00:00 2001 From: Arthur Date: Mon, 11 Mar 2019 12:27:46 +0300 Subject: [PATCH 1/3] Create QT gui files for server with new gui --- Server/server_gui.py | 87 ++++++++++++++++++++ Server/server_gui.ui | 186 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 273 insertions(+) create mode 100644 Server/server_gui.py create mode 100644 Server/server_gui.ui diff --git a/Server/server_gui.py b/Server/server_gui.py new file mode 100644 index 0000000..db8a5ae --- /dev/null +++ b/Server/server_gui.py @@ -0,0 +1,87 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'server_gui.ui' +# +# Created by: PyQt5 UI code generator 5.12 +# +# WARNING! All changes made in this file will be lost! + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(850, 460) + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.pushButton = QtWidgets.QPushButton(self.centralwidget) + self.pushButton.setGeometry(QtCore.QRect(680, 20, 150, 40)) + self.pushButton.setObjectName("pushButton") + self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_2.setGeometry(QtCore.QRect(680, 120, 150, 40)) + self.pushButton_2.setObjectName("pushButton_2") + self.spinBox = QtWidgets.QSpinBox(self.centralwidget) + self.spinBox.setGeometry(QtCore.QRect(760, 70, 50, 40)) + self.spinBox.setObjectName("spinBox") + self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_3.setGeometry(QtCore.QRect(680, 170, 150, 40)) + self.pushButton_3.setObjectName("pushButton_3") + self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_4.setGeometry(QtCore.QRect(680, 220, 150, 40)) + self.pushButton_4.setObjectName("pushButton_4") + self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_5.setGeometry(QtCore.QRect(680, 280, 150, 40)) + self.pushButton_5.setObjectName("pushButton_5") + self.pushButton_6 = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_6.setGeometry(QtCore.QRect(680, 330, 150, 40)) + self.pushButton_6.setObjectName("pushButton_6") + self.pushButton_7 = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_7.setGeometry(QtCore.QRect(680, 380, 150, 40)) + self.pushButton_7.setObjectName("pushButton_7") + self.label = QtWidgets.QLabel(self.centralwidget) + self.label.setGeometry(QtCore.QRect(680, 70, 71, 40)) + self.label.setObjectName("label") + self.label_2 = QtWidgets.QLabel(self.centralwidget) + self.label_2.setGeometry(QtCore.QRect(820, 70, 10, 40)) + self.label_2.setObjectName("label_2") + self.tableWidget = QtWidgets.QTableWidget(self.centralwidget) + self.tableWidget.setGeometry(QtCore.QRect(20, 20, 640, 400)) + self.tableWidget.setObjectName("tableWidget") + self.tableWidget.setColumnCount(0) + self.tableWidget.setRowCount(0) + MainWindow.setCentralWidget(self.centralwidget) + self.menubar = QtWidgets.QMenuBar(MainWindow) + self.menubar.setGeometry(QtCore.QRect(0, 0, 850, 25)) + self.menubar.setObjectName("menubar") + self.menuOptions = QtWidgets.QMenu(self.menubar) + self.menuOptions.setObjectName("menuOptions") + MainWindow.setMenuBar(self.menubar) + self.actionSend_Animations = QtWidgets.QAction(MainWindow) + self.actionSend_Animations.setObjectName("actionSend_Animations") + self.actionSend_Configurations = QtWidgets.QAction(MainWindow) + self.actionSend_Configurations.setObjectName("actionSend_Configurations") + self.menuOptions.addAction(self.actionSend_Animations) + self.menuOptions.addAction(self.actionSend_Configurations) + self.menubar.addAction(self.menuOptions.menuAction()) + + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "Clever Drone Animation Player")) + self.pushButton.setText(_translate("MainWindow", "Preflight check")) + self.pushButton_2.setText(_translate("MainWindow", "Start animation")) + self.pushButton_3.setText(_translate("MainWindow", "Pause")) + self.pushButton_4.setText(_translate("MainWindow", "Stop")) + self.pushButton_5.setText(_translate("MainWindow", "Takeoff")) + self.pushButton_6.setText(_translate("MainWindow", "Land")) + self.pushButton_7.setText(_translate("MainWindow", "Disarm")) + self.label.setText(_translate("MainWindow", "Start after")) + self.label_2.setText(_translate("MainWindow", "s")) + self.menuOptions.setTitle(_translate("MainWindow", "Actions")) + self.actionSend_Animations.setText(_translate("MainWindow", "Send Animations")) + self.actionSend_Configurations.setText(_translate("MainWindow", "Send Configurations")) + + diff --git a/Server/server_gui.ui b/Server/server_gui.ui new file mode 100644 index 0000000..a3d9be5 --- /dev/null +++ b/Server/server_gui.ui @@ -0,0 +1,186 @@ + + + MainWindow + + + + 0 + 0 + 850 + 460 + + + + Clever Drone Animation Player + + + + + + 680 + 20 + 150 + 40 + + + + Preflight check + + + + + + 680 + 120 + 150 + 40 + + + + Start animation + + + + + + 760 + 70 + 50 + 40 + + + + + + + 680 + 170 + 150 + 40 + + + + Pause + + + + + + 680 + 220 + 150 + 40 + + + + Stop + + + + + + 680 + 280 + 150 + 40 + + + + Takeoff + + + + + + 680 + 330 + 150 + 40 + + + + Land + + + + + + 680 + 380 + 150 + 40 + + + + Disarm + + + + + + 680 + 70 + 71 + 40 + + + + Start after + + + + + + 820 + 70 + 10 + 40 + + + + s + + + + + + 20 + 20 + 640 + 400 + + + + + + + + 0 + 0 + 850 + 25 + + + + + Actions + + + + + + + + + Send Animations + + + + + Send Configurations + + + + + + From 16fe48c9c1f7e2ae8b6251ebfc16cef2fb579134 Mon Sep 17 00:00:00 2001 From: Arthur Date: Mon, 11 Mar 2019 12:29:06 +0300 Subject: [PATCH 2/3] Create test program with server with new gui --- Server/server_qt.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 Server/server_qt.py diff --git a/Server/server_qt.py b/Server/server_qt.py new file mode 100644 index 0000000..460f396 --- /dev/null +++ b/Server/server_qt.py @@ -0,0 +1,26 @@ +from PyQt5 import QtWidgets + +# Импортируем нашу форму. +from server_gui import Ui_MainWindow +import sys + + +class main_window(QtWidgets.QMainWindow): + def __init__(self): + super(main_window, self).__init__() + self.ui = Ui_MainWindow() + self.ui.setupUi(self) + + self.ui.tableWidget.setColumnCount(6) + self.ui.tableWidget.setRowCount(20) + self.ui.tableWidget.setHorizontalHeaderLabels( + ('copter ID', 'animation ID', 'battery V', 'battery %', 'selfcheck', 'time UTC') + ) + self.ui.tableWidget.horizontalHeader().setStretchLastSection(True) + + +app = QtWidgets.QApplication([]) +application = main_window() +application.show() + +sys.exit(app.exec()) \ No newline at end of file From eb2f929c462abddf9b5ad4737e63b51798988f13 Mon Sep 17 00:00:00 2001 From: Arthur Date: Mon, 11 Mar 2019 17:07:54 +0300 Subject: [PATCH 3/3] Change QTableWidget to model-based QTableView --- Server/server_gui.py | 8 +++----- Server/server_gui.ui | 2 +- Server/server_qt.py | 17 ++++++++++++----- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/Server/server_gui.py b/Server/server_gui.py index db8a5ae..f8a4405 100644 --- a/Server/server_gui.py +++ b/Server/server_gui.py @@ -45,11 +45,9 @@ class Ui_MainWindow(object): self.label_2 = QtWidgets.QLabel(self.centralwidget) self.label_2.setGeometry(QtCore.QRect(820, 70, 10, 40)) self.label_2.setObjectName("label_2") - self.tableWidget = QtWidgets.QTableWidget(self.centralwidget) - self.tableWidget.setGeometry(QtCore.QRect(20, 20, 640, 400)) - self.tableWidget.setObjectName("tableWidget") - self.tableWidget.setColumnCount(0) - self.tableWidget.setRowCount(0) + self.tableView = QtWidgets.QTableView(self.centralwidget) + self.tableView.setGeometry(QtCore.QRect(20, 20, 640, 400)) + self.tableView.setObjectName("tableView") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 850, 25)) diff --git a/Server/server_gui.ui b/Server/server_gui.ui index a3d9be5..2d0f5d5 100644 --- a/Server/server_gui.ui +++ b/Server/server_gui.ui @@ -141,7 +141,7 @@ s - + 20 diff --git a/Server/server_qt.py b/Server/server_qt.py index 460f396..0bdaddd 100644 --- a/Server/server_qt.py +++ b/Server/server_qt.py @@ -1,4 +1,9 @@ from PyQt5 import QtWidgets +from PyQt5.QtGui import QStandardItem +from PyQt5.QtGui import QStandardItemModel +from PyQt5.QtCore import QModelIndex +from PyQt5.QtCore import Qt +from PyQt5.QtCore import pyqtSlot # Импортируем нашу форму. from server_gui import Ui_MainWindow @@ -10,13 +15,15 @@ class main_window(QtWidgets.QMainWindow): super(main_window, self).__init__() self.ui = Ui_MainWindow() self.ui.setupUi(self) - - self.ui.tableWidget.setColumnCount(6) - self.ui.tableWidget.setRowCount(20) - self.ui.tableWidget.setHorizontalHeaderLabels( + model = QStandardItemModel() + item = QStandardItem() + model.setHorizontalHeaderLabels( ('copter ID', 'animation ID', 'battery V', 'battery %', 'selfcheck', 'time UTC') ) - self.ui.tableWidget.horizontalHeader().setStretchLastSection(True) + model.setColumnCount(6) + model.setRowCount(20) + self.ui.tableView.setModel(model) + self.ui.tableView.horizontalHeader().setStretchLastSection(True) app = QtWidgets.QApplication([])