mirror of
https://github.com/CopterExpress/clever-show.git
synced 2026-05-27 15:39:32 +00:00
Server: Update user interface
This commit is contained in:
@@ -33,7 +33,7 @@ class CopterDataModel(QtCore.QAbstractTableModel):
|
||||
|
||||
def __init__(self, parent=None):
|
||||
super(CopterDataModel, self).__init__(parent)
|
||||
self.headers = ('copter ID', 'animation ID', 'battery V', 'battery %', 'sys status', 'calibration status', 'selfcheck', 'time delta')
|
||||
self.headers = ('copter ID', 'animation ID', 'battery V', 'battery %', 'system status', 'calibration status', 'selfcheck', 'time delta')
|
||||
self.data_contents = []
|
||||
|
||||
def insertRows(self, contents, position='last', parent=QtCore.QModelIndex()):
|
||||
@@ -93,6 +93,9 @@ class CopterDataModel(QtCore.QAbstractTableModel):
|
||||
elif role == Qt.CheckStateRole and col == 0:
|
||||
return self.data_contents[row].checked
|
||||
|
||||
if role == QtCore.Qt.TextAlignmentRole and col != 0:
|
||||
return QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter
|
||||
|
||||
def update_model(self, index=QtCore.QModelIndex()):
|
||||
#self.modelReset.emit()
|
||||
self.selected_ready_signal.emit(set(self.user_selected()).issubset(self.selfchecked_ready()))
|
||||
|
||||
@@ -2,16 +2,17 @@
|
||||
|
||||
# Form implementation generated from reading ui file 'server_gui.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.11.3
|
||||
# Created by: PyQt5 UI code generator 5.12.2
|
||||
#
|
||||
# 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(1284, 740)
|
||||
MainWindow.resize(1220, 600)
|
||||
self.centralwidget = QtWidgets.QWidget(MainWindow)
|
||||
self.centralwidget.setEnabled(True)
|
||||
self.centralwidget.setObjectName("centralwidget")
|
||||
@@ -26,18 +27,30 @@ class Ui_MainWindow(object):
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.tableView.sizePolicy().hasHeightForWidth())
|
||||
self.tableView.setSizePolicy(sizePolicy)
|
||||
self.tableView.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContentsOnFirstShow)
|
||||
self.tableView.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectItems)
|
||||
self.tableView.setTextElideMode(QtCore.Qt.ElideMiddle)
|
||||
self.tableView.setSortingEnabled(True)
|
||||
self.tableView.setWordWrap(True)
|
||||
self.tableView.setObjectName("tableView")
|
||||
self.tableView.horizontalHeader().setCascadingSectionResizes(False)
|
||||
self.tableView.horizontalHeader().setDefaultSectionSize(125)
|
||||
self.tableView.horizontalHeader().setMinimumSectionSize(100)
|
||||
self.tableView.horizontalHeader().setStretchLastSection(True)
|
||||
self.horizontalLayout.addWidget(self.tableView)
|
||||
self.verticalLayout = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout.setSizeConstraint(QtWidgets.QLayout.SetMaximumSize)
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.formLayout = QtWidgets.QFormLayout()
|
||||
self.formLayout.setLabelAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
|
||||
self.formLayout.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
|
||||
self.formLayout.setObjectName("formLayout")
|
||||
self.check_button = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.check_button.setEnabled(True)
|
||||
self.check_button.setObjectName("check_button")
|
||||
self.formLayout.setWidget(1, QtWidgets.QFormLayout.SpanningRole, self.check_button)
|
||||
self.start_text = QtWidgets.QLabel(self.centralwidget)
|
||||
self.start_text.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.start_text.setObjectName("start_text")
|
||||
self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.start_text)
|
||||
self.start_delay_spin = QtWidgets.QSpinBox(self.centralwidget)
|
||||
@@ -54,9 +67,6 @@ class Ui_MainWindow(object):
|
||||
self.stop_button = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.stop_button.setObjectName("stop_button")
|
||||
self.formLayout.setWidget(5, QtWidgets.QFormLayout.SpanningRole, self.stop_button)
|
||||
self.emergency_button = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.emergency_button.setObjectName("emergency_button")
|
||||
self.formLayout.setWidget(6, QtWidgets.QFormLayout.SpanningRole, self.emergency_button)
|
||||
self.verticalLayout.addLayout(self.formLayout)
|
||||
self.line = QtWidgets.QFrame(self.centralwidget)
|
||||
self.line.setFrameShape(QtWidgets.QFrame.HLine)
|
||||
@@ -64,30 +74,62 @@ class Ui_MainWindow(object):
|
||||
self.line.setObjectName("line")
|
||||
self.verticalLayout.addWidget(self.line)
|
||||
self.formLayout_2 = QtWidgets.QFormLayout()
|
||||
self.formLayout_2.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
|
||||
self.formLayout_2.setObjectName("formLayout_2")
|
||||
self.disarm_button = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.disarm_button.setObjectName("disarm_button")
|
||||
self.formLayout_2.setWidget(7, QtWidgets.QFormLayout.SpanningRole, self.disarm_button)
|
||||
self.emergency_button = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.emergency_button.setObjectName("emergency_button")
|
||||
self.formLayout_2.setWidget(6, QtWidgets.QFormLayout.SpanningRole, self.emergency_button)
|
||||
self.verticalLayout.addLayout(self.formLayout_2)
|
||||
self.line_2 = QtWidgets.QFrame(self.centralwidget)
|
||||
self.line_2.setFrameShape(QtWidgets.QFrame.HLine)
|
||||
self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken)
|
||||
self.line_2.setObjectName("line_2")
|
||||
self.verticalLayout.addWidget(self.line_2)
|
||||
self.formLayout_3 = QtWidgets.QFormLayout()
|
||||
self.formLayout_3.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
|
||||
self.formLayout_3.setVerticalSpacing(6)
|
||||
self.formLayout_3.setObjectName("formLayout_3")
|
||||
self.leds_button = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.leds_button.setObjectName("leds_button")
|
||||
self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.SpanningRole, self.leds_button)
|
||||
self.takeoff_button = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.takeoff_button.setEnabled(True)
|
||||
self.takeoff_button.setObjectName("takeoff_button")
|
||||
self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.SpanningRole, self.takeoff_button)
|
||||
self.land_button = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.land_button.setObjectName("land_button")
|
||||
self.formLayout_2.setWidget(3, QtWidgets.QFormLayout.SpanningRole, self.land_button)
|
||||
self.disarm_button = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.disarm_button.setObjectName("disarm_button")
|
||||
self.formLayout_2.setWidget(4, QtWidgets.QFormLayout.SpanningRole, self.disarm_button)
|
||||
self.leds_button = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.leds_button.setObjectName("leds_button")
|
||||
self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.SpanningRole, self.leds_button)
|
||||
self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.SpanningRole, self.takeoff_button)
|
||||
self.flip_button = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.flip_button.setObjectName("flip_button")
|
||||
self.formLayout_2.setWidget(2, QtWidgets.QFormLayout.SpanningRole, self.flip_button)
|
||||
self.verticalLayout.addLayout(self.formLayout_2)
|
||||
self.formLayout_3.setWidget(2, QtWidgets.QFormLayout.SpanningRole, self.flip_button)
|
||||
self.land_button = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.land_button.setObjectName("land_button")
|
||||
self.formLayout_3.setWidget(3, QtWidgets.QFormLayout.SpanningRole, self.land_button)
|
||||
self.verticalLayout.addLayout(self.formLayout_3)
|
||||
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.verticalLayout.addWidget(self.line_3)
|
||||
self.formLayout_4 = QtWidgets.QFormLayout()
|
||||
self.formLayout_4.setFormAlignment(QtCore.Qt.AlignBottom|QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft)
|
||||
self.formLayout_4.setObjectName("formLayout_4")
|
||||
self.reboot_fcu = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.reboot_fcu.setObjectName("reboot_fcu")
|
||||
self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.SpanningRole, self.reboot_fcu)
|
||||
self.calibrate_gyro = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.calibrate_gyro.setObjectName("calibrate_gyro")
|
||||
self.formLayout_4.setWidget(1, QtWidgets.QFormLayout.SpanningRole, self.calibrate_gyro)
|
||||
self.calibrate_level = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.calibrate_level.setObjectName("calibrate_level")
|
||||
self.formLayout_4.setWidget(2, QtWidgets.QFormLayout.SpanningRole, self.calibrate_level)
|
||||
self.verticalLayout.addLayout(self.formLayout_4)
|
||||
self.horizontalLayout.addLayout(self.verticalLayout)
|
||||
self.horizontalLayout.setStretch(0, 1)
|
||||
self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 1)
|
||||
MainWindow.setCentralWidget(self.centralwidget)
|
||||
self.menubar = QtWidgets.QMenuBar(MainWindow)
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 1284, 21))
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 1220, 25))
|
||||
self.menubar.setObjectName("menubar")
|
||||
self.menuOptions = QtWidgets.QMenu(self.menubar)
|
||||
self.menuOptions.setObjectName("menuOptions")
|
||||
@@ -105,6 +147,12 @@ class Ui_MainWindow(object):
|
||||
|
||||
self.retranslateUi(MainWindow)
|
||||
QtCore.QMetaObject.connectSlotsByName(MainWindow)
|
||||
MainWindow.setTabOrder(self.check_button, self.start_delay_spin)
|
||||
MainWindow.setTabOrder(self.start_delay_spin, self.start_button)
|
||||
MainWindow.setTabOrder(self.start_button, self.pause_button)
|
||||
MainWindow.setTabOrder(self.pause_button, self.stop_button)
|
||||
MainWindow.setTabOrder(self.stop_button, self.disarm_button)
|
||||
MainWindow.setTabOrder(self.disarm_button, self.tableView)
|
||||
|
||||
def retranslateUi(self, MainWindow):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
@@ -114,25 +162,19 @@ class Ui_MainWindow(object):
|
||||
self.start_delay_spin.setSuffix(_translate("MainWindow", " seconds"))
|
||||
self.start_button.setText(_translate("MainWindow", "Start animation"))
|
||||
self.pause_button.setText(_translate("MainWindow", "Pause"))
|
||||
self.stop_button.setText(_translate("MainWindow", "Stop"))
|
||||
self.emergency_button.setText(_translate("MainWindow", "Emergency land"))
|
||||
self.takeoff_button.setText(_translate("MainWindow", "Takeoff"))
|
||||
self.land_button.setText(_translate("MainWindow", "Land"))
|
||||
self.stop_button.setText(_translate("MainWindow", "Stop and land all"))
|
||||
self.disarm_button.setText(_translate("MainWindow", "Disarm"))
|
||||
self.emergency_button.setText(_translate("MainWindow", "Emergency land"))
|
||||
self.leds_button.setText(_translate("MainWindow", "Test leds"))
|
||||
self.takeoff_button.setText(_translate("MainWindow", "Takeoff"))
|
||||
self.flip_button.setText(_translate("MainWindow", "Flip"))
|
||||
self.land_button.setText(_translate("MainWindow", "Land"))
|
||||
self.reboot_fcu.setText(_translate("MainWindow", "Reboot FCU"))
|
||||
self.calibrate_gyro.setText(_translate("MainWindow", "Calibrate gyro"))
|
||||
self.calibrate_level.setText(_translate("MainWindow", "Calibrate level"))
|
||||
self.menuOptions.setTitle(_translate("MainWindow", "Actions"))
|
||||
self.action_send_animations.setText(_translate("MainWindow", "Send Animations"))
|
||||
self.action_send_configurations.setText(_translate("MainWindow", "Send Configurations"))
|
||||
self.action_send_Aruco_map.setText(_translate("MainWindow", "Send Aruco map"))
|
||||
|
||||
|
||||
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_())
|
||||
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1284</width>
|
||||
<height>740</height>
|
||||
<width>1220</width>
|
||||
<height>600</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@@ -31,6 +31,33 @@
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QAbstractScrollArea::AdjustToContentsOnFirstShow</enum>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectItems</enum>
|
||||
</property>
|
||||
<property name="textElideMode">
|
||||
<enum>Qt::ElideMiddle</enum>
|
||||
</property>
|
||||
<property name="sortingEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<attribute name="horizontalHeaderCascadingSectionResizes">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<attribute name="horizontalHeaderDefaultSectionSize">
|
||||
<number>125</number>
|
||||
</attribute>
|
||||
<attribute name="horizontalHeaderMinimumSectionSize">
|
||||
<number>100</number>
|
||||
</attribute>
|
||||
<attribute name="horizontalHeaderStretchLastSection">
|
||||
<bool>true</bool>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
@@ -40,6 +67,12 @@
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
<property name="labelAlignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="formAlignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
</property>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="check_button">
|
||||
<property name="enabled">
|
||||
@@ -55,6 +88,9 @@
|
||||
<property name="text">
|
||||
<string>Start after</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
@@ -87,14 +123,7 @@
|
||||
<item row="5" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="stop_button">
|
||||
<property name="text">
|
||||
<string>Stop</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="emergency_button">
|
||||
<property name="text">
|
||||
<string>Emergency land</string>
|
||||
<string>Stop and land all</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -109,6 +138,47 @@
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QFormLayout" name="formLayout_2">
|
||||
<property name="formAlignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<item row="7" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="disarm_button">
|
||||
<property name="text">
|
||||
<string>Disarm</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="emergency_button">
|
||||
<property name="text">
|
||||
<string>Emergency land</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Line" name="line_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QFormLayout" name="formLayout_3">
|
||||
<property name="formAlignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="verticalSpacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="leds_button">
|
||||
<property name="text">
|
||||
<string>Test leds</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="takeoff_button">
|
||||
<property name="enabled">
|
||||
@@ -119,6 +189,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="flip_button">
|
||||
<property name="text">
|
||||
<string>Flip</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="land_button">
|
||||
<property name="text">
|
||||
@@ -126,24 +203,38 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="disarm_button">
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Line" name="line_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QFormLayout" name="formLayout_4">
|
||||
<property name="formAlignment">
|
||||
<set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
|
||||
</property>
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="reboot_fcu">
|
||||
<property name="text">
|
||||
<string>Disarm</string>
|
||||
<string>Reboot FCU</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="leds_button">
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="calibrate_gyro">
|
||||
<property name="text">
|
||||
<string>Test leds</string>
|
||||
<string>Calibrate gyro</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="flip_button">
|
||||
<widget class="QPushButton" name="calibrate_level">
|
||||
<property name="text">
|
||||
<string>Flip</string>
|
||||
<string>Calibrate level</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -160,8 +251,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1284</width>
|
||||
<height>21</height>
|
||||
<width>1220</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QMenu" name="menuOptions">
|
||||
@@ -190,6 +281,15 @@
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<tabstops>
|
||||
<tabstop>check_button</tabstop>
|
||||
<tabstop>start_delay_spin</tabstop>
|
||||
<tabstop>start_button</tabstop>
|
||||
<tabstop>pause_button</tabstop>
|
||||
<tabstop>stop_button</tabstop>
|
||||
<tabstop>disarm_button</tabstop>
|
||||
<tabstop>tableView</tabstop>
|
||||
</tabstops>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
||||
@@ -64,8 +64,8 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
|
||||
# Initiate table and table self.model
|
||||
self.ui.tableView.setModel(self.proxy_model)
|
||||
self.ui.tableView.horizontalHeader().setStretchLastSection(True)
|
||||
self.ui.tableView.setSortingEnabled(True)
|
||||
#self.ui.tableView.horizontalHeader().setStretchLastSection(True)
|
||||
#self.ui.tableView.setSortingEnabled(True)
|
||||
|
||||
# Connect signals to manipulate model from threads
|
||||
self.signals.update_data_signal.connect(self.model.update_item)
|
||||
|
||||
Reference in New Issue
Block a user