diff --git a/Server/copter_table_models.py b/Server/copter_table_models.py index bd84cf9..d56df25 100644 --- a/Server/copter_table_models.py +++ b/Server/copter_table_models.py @@ -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())) diff --git a/Server/server_gui.py b/Server/server_gui.py index cf23ee1..73f41b9 100644 --- a/Server/server_gui.py +++ b/Server/server_gui.py @@ -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_()) - diff --git a/Server/server_gui.ui b/Server/server_gui.ui index dbcb660..ec97cc9 100644 --- a/Server/server_gui.ui +++ b/Server/server_gui.ui @@ -6,8 +6,8 @@ 0 0 - 1284 - 740 + 1220 + 600 @@ -31,6 +31,33 @@ 0 + + QAbstractScrollArea::AdjustToContentsOnFirstShow + + + QAbstractItemView::SelectItems + + + Qt::ElideMiddle + + + true + + + true + + + false + + + 125 + + + 100 + + + true + @@ -40,6 +67,12 @@ + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + @@ -55,6 +88,9 @@ Start after + + Qt::AlignCenter + @@ -87,14 +123,7 @@ - Stop - - - - - - - Emergency land + Stop and land all @@ -109,6 +138,47 @@ + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + Disarm + + + + + + + Emergency land + + + + + + + + + Qt::Horizontal + + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + 6 + + + + + Test leds + + + @@ -119,6 +189,13 @@ + + + + Flip + + + @@ -126,24 +203,38 @@ - - + + + + + + Qt::Horizontal + + + + + + + Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft + + + - Disarm + Reboot FCU - - + + - Test leds + Calibrate gyro - + - Flip + Calibrate level @@ -160,8 +251,8 @@ 0 0 - 1284 - 21 + 1220 + 25 @@ -190,6 +281,15 @@ + + check_button + start_delay_spin + start_button + pause_button + stop_button + disarm_button + tableView + diff --git a/Server/server_qt.py b/Server/server_qt.py index 0fce5e7..e49fbdd 100644 --- a/Server/server_qt.py +++ b/Server/server_qt.py @@ -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)