def init_camera(self): # Camera Control Dock layout_vbox_camera = QVBoxLayout() slider_spinbox_direction = SliderSpinBox("Angle", 360, self.update_angle) slider_spinbox_direction.setStatusTip("Rotate image") label_camera = QLabel("Available Cameras") # Create instances of radio buttons radio_sync = QRadioButton("Sync") radio_sync.setChecked(True) radio_sync.setStatusTip("Camera Capture in Main() thread") radio_sync.toggled.connect(lambda: self.radio_toggle(radio_sync)) radio_async = QRadioButton("Async") radio_async.setStatusTip("Camera Capture in respective thread") radio_async.toggled.connect(lambda: self.radio_toggle(radio_async)) # Set up layout and add child widgets to the layout radio_h_box = QHBoxLayout() radio_h_box.addWidget(label_camera) radio_h_box.addStretch() # used to help arrange widgets in a layout manager. radio_h_box.addWidget(radio_sync) radio_h_box.addWidget(radio_async) # Set a specific layout manager inside a parent window or widget radio_contents = QWidget() radio_contents.setLayout(radio_h_box) # Create button that will allow user to select camera self.button_select_camera.clicked.connect(self.select_camera) layout_vbox_camera.addWidget(radio_contents) layout_vbox_camera.addWidget(self.list_cameras) layout_vbox_camera.addWidget(slider_spinbox_direction) layout_vbox_camera.addWidget(self.button_select_camera) # Create child widgets and layout self.camera_contents.setLayout(layout_vbox_camera)
def __init__(self, detector, app): """ Initialization of the window. :param detector: Detector with Retinanet model :param app: QApplication """ super(Window, self).__init__() self.files = [] self.output_name = None self.output_type = None self.detector = detector self.app = app self.tmp_dir = 'tmp/' self.setMinimumSize(1000, 700) self.setWindowTitle('People Detector') self.setWindowIcon(QIcon('../icon/agent.jpg')) self.statusBar() create_folder(self.tmp_dir) open_action = QAction('&Open', self) open_action.setShortcut('Ctrl+O') open_action.setStatusTip( 'Select input image or video for people detection') open_action.triggered.connect(self.select_input) save_action = QAction('&Save', self) save_action.setShortcut('Ctrl+S') save_action.setStatusTip('Save output image/video as') save_action.triggered.connect(self.save_output) run_action = QAction('&Run', self) run_action.setShortcut('Ctrl+R') run_action.setStatusTip('Run recognition') run_action.triggered.connect(self.run_recognition) # help_action = QAction('&Help', self) # help_action.setShortcut('Ctrl+H') # help_action.setStatusTip('Show help contents') # help_action.triggered.connect(self.show_help) # settings_action = QAction('&Settings', self) # settings_action.setShortcut('Ctrl+Alt+S') # settings_action.setStatusTip('Edit application settings') # settings_action.triggered.connect(self.settings) exit_action = QAction('&Exit', self) exit_action.setShortcut('Ctrl+Q') exit_action.setStatusTip('Quit People Detector') exit_action.triggered.connect(self.closeEvent) main_menu = self.menuBar() menu = main_menu.addMenu('&Menu') menu.addAction(open_action) menu.addAction(save_action) menu.addAction(run_action) # menu.addAction(help_action) # menu.addAction(settings_action) menu.addAction(exit_action) window = QWidget() grid = QGridLayout() grid.setColumnMinimumWidth(1, 320) grid.setColumnMinimumWidth(2, 320) self.input_label = QLabel() self.input_label.setFrameShape(QFrame.Box) self.input_label.setMinimumSize(320, 180) self.input_label.setObjectName('InputImage') self.output_label = QLabel() self.output_label.setFrameShape(QFrame.Box) self.output_label.setMinimumSize(320, 180) self.output_label.setObjectName('OutputImage') open_btn = QPushButton('Select Input') open_btn.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) open_btn.setFixedHeight(35) open_btn.setStatusTip( 'Select input image or video for people detection') open_btn.clicked.connect(self.select_input) save_btn = QPushButton('Save Output As') save_btn.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) save_btn.setFixedHeight(35) save_btn.setStatusTip('Save output image/video as') save_btn.clicked.connect(self.save_output) head_path_label = QLabel('Temporary output path:') head_path_label.setObjectName('HeadingOutputPath') self.path_label = QLabel() self.path_label.setObjectName('OutputPath') run_btn = QPushButton('Run Recognition') run_btn.setStatusTip('Run recognition') run_btn.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) run_btn.setFixedHeight(35) run_btn.clicked.connect(self.run_recognition) video_btn = QRadioButton('Image/video with borders around people') video_btn.setStatusTip( 'Output will be image or video with borders around people') video_btn.clicked.connect(self.set_output_type_video) video_btn.setChecked(True) self.output_type = OutputType.BORDERS img_btn = QRadioButton('Panorama image with trajectories of people') img_btn.setStatusTip( 'Output will be panorama image with trajectories of people') img_btn.clicked.connect(self.set_output_type_img) self.progress_bar = QProgressBar() self.progress_bar.setFixedHeight(35) self.progress_bar.setValue(0) grid.addWidget(self.input_label, 1, 1) grid.addWidget(self.output_label, 1, 2) grid.addWidget(open_btn, 2, 1) grid.addWidget(save_btn, 2, 2) grid.addWidget(video_btn, 3, 1) grid.addWidget(img_btn, 4, 1) grid.addWidget(head_path_label, 3, 2) grid.addWidget(self.path_label, 4, 2) grid.addWidget(run_btn, 5, 1, 1, 2) grid.addWidget(self.progress_bar, 6, 1, 1, 2) self.message_box = QMessageBox() # Just temporarily settings # combo_box = QComboBox(self) # combo_box.addItem("CDE") # combo_box.addItem("Cleanlooks") # combo_box.addItem("GTK+") # combo_box.addItem("Motif") # combo_box.addItem("Plastique") # combo_box.addItem("Windows") # combo_box.move(500, 100) # combo_box.activated[str].connect(self.style_choice) # grid.addWidget(combo_box, 7, 2) window.setLayout(grid) self.setCentralWidget(window) self.show()
class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(1920, 1080) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.gridLayout_3 = QtWidgets.QGridLayout(self.centralwidget) self.gridLayout_3.setObjectName("gridLayout_3") self.Tab1 = QtWidgets.QTabWidget(self.centralwidget) self.Tab1.setLocale( QtCore.QLocale(QtCore.QLocale.Russian, QtCore.QLocale.Russia)) self.Tab1.setObjectName("Tab1") self.tab = QtWidgets.QWidget() self.tab.setObjectName("tab") self.gridLayout = QtWidgets.QGridLayout(self.tab) self.gridLayout.setObjectName("gridLayout") self.groupBoxButtons = QGroupBox(self.tab) self.groupBoxButtons.setObjectName(u"groupBoxButtons") self.groupBoxButtons.setMaximumSize(QSize(100, 16777215)) self.formLayout = QFormLayout(self.groupBoxButtons) self.gridLayout.addWidget(self.groupBoxButtons, 0, 1, 6, 1) self.ButtonAddLeg = QtWidgets.QPushButton(self.groupBoxButtons) self.ButtonAddLeg.setObjectName("ButtonAddLeg") self.formLayout.setWidget(2, QFormLayout.LabelRole, self.ButtonAddLeg) self.pushButtonDelLeg = QtWidgets.QPushButton(self.groupBoxButtons) self.pushButtonDelLeg.setObjectName(u"pushButtonDelLeg") self.pushButtonDelLeg.setText(u"Del Leg") self.formLayout.setWidget(3, QFormLayout.LabelRole, self.pushButtonDelLeg) self.calendarWidget = QtWidgets.QCalendarWidget(self.tab) self.calendarWidget.setObjectName("calendarWidget") self.gridLayout.addWidget(self.calendarWidget, 0, 0, 6, 1, QtCore.Qt.AlignLeft) self.calendarWidget.setGridVisible(True) self.ButtonAddAC = QtWidgets.QPushButton(self.groupBoxButtons) self.ButtonAddAC.setObjectName("ButtonAddAC") self.formLayout.setWidget(0, QFormLayout.LabelRole, self.ButtonAddAC) self.pushButtonDelAC = QtWidgets.QPushButton(self.groupBoxButtons) self.pushButtonDelAC.setObjectName("pushButtonDelAC") self.pushButtonDelAC.setText(u"Del A/C") self.formLayout.setWidget(1, QFormLayout.LabelRole, self.pushButtonDelAC) self.tableViewAcft = QtWidgets.QTableView(self.tab) self.tableViewAcft.setObjectName(u"tableViewAcft") self.gridLayout.addWidget(self.tableViewAcft, 0, 2, 6, 1, QtCore.Qt.AlignLeft) self.tableViewAcft.setSelectionBehavior( QtWidgets.QAbstractItemView.SelectRows) self.tableViewAcft.horizontalHeader().setStretchLastSection(False) self.tableViewAcft.setMaximumSize(QSize(140, 16777215)) self.model = QtGui.QStandardItemModel(self.tab) self.tableLog = QtWidgets.QTableView(self.tab) self.tableLog.setModel(self.model) self.tableLog.setObjectName("tableLog") self.gridLayout.addWidget(self.tableLog, 6, 0, 1, 6) self.tableLog.setSelectionBehavior( QtWidgets.QAbstractItemView.SelectRows) self.tableLog.horizontalHeader().setStretchLastSection(False) self.tableLog.setSortingEnabled(True) self.tableLog.setAlternatingRowColors(True) self.Tab1.addTab(self.tab, "") self.tab_2 = QtWidgets.QWidget() self.tab_2.setObjectName("tab_2") self.Tab1.addTab(self.tab_2, "") self.gridLayout_3.addWidget(self.Tab1, 0, 0, 1, 1) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 1920, 30)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.lcdNumber = QtWidgets.QLCDNumber(self.tab) self.lcdNumber.setObjectName(u"lcdNumber") self.lcdNumber.setMinimumSize(QtCore.QSize(300, 0)) self.lcdNumber.setDigitCount(8) self.gridLayout.addWidget(self.lcdNumber, 2, 5, 2, 1, QtCore.Qt.AlignLeft) self.lcdNumberBLK = QtWidgets.QLCDNumber(self.tab) self.lcdNumberBLK.setObjectName(u"lcdNumberBLK") self.lcdNumberBLK.setMinimumSize(QtCore.QSize(300, 0)) self.lcdNumberBLK.setDigitCount(8) self.gridLayout.addWidget(self.lcdNumberBLK, 0, 5, 2, 1, QtCore.Qt.AlignLeft) self.lcdNumberNight = QtWidgets.QLCDNumber(self.tab) self.lcdNumberNight.setObjectName(u"lcdNumberNight") self.lcdNumberNight.setMinimumSize(QtCore.QSize(300, 0)) self.lcdNumberNight.setDigitCount(8) self.gridLayout.addWidget(self.lcdNumberNight, 4, 5, 2, 1, QtCore.Qt.AlignLeft) self.label_3 = QtWidgets.QLabel(self.tab) self.label_3.setObjectName(u"label_3") self.label_3.setEnabled(True) font = QtGui.QFont() font.setPointSize(30) font.setBold(True) font.setWeight(75) self.label_3.setFont(font) self.label_3.setText( u"<html><head/><body><p>Night Time </p></body></html>") self.label_3.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.gridLayout.addWidget(self.label_3, 4, 4, 2, 1, QtCore.Qt.AlignLeft) self.label_2 = QtWidgets.QLabel(self.tab) self.label_2.setObjectName(u"label_2") self.label_2.setFont(font) self.label_2.setText( u"<html><head/><body><p>Flight Time </p></body></html>") self.label_2.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.gridLayout.addWidget(self.label_2, 2, 4, 2, 1, QtCore.Qt.AlignLeft) self.label = QtWidgets.QLabel(self.tab) self.label.setObjectName(u"label") self.label.setFont(font) self.label.setText( u"<html><head/><body><p>Block Time </p></body></html>") self.label.setTextFormat(QtCore.Qt.AutoText) self.label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.gridLayout.addWidget(self.label, 0, 4, 2, 1, QtCore.Qt.AlignLeft) self.groupBoxFilters = QGroupBox(self.tab) self.groupBoxFilters.setObjectName(u"groupBoxFilters") self.groupBoxFilters.setToolTip(u"") self.groupBoxFilters.setStatusTip(u"") self.groupBoxFilters.setWhatsThis(u"") self.groupBoxFilters.setAccessibleName(u"") self.groupBoxFilters.setAccessibleDescription(u"") self.groupBoxFilters.setTitle(u"Filters") self.gridLayout_2 = QGridLayout(self.groupBoxFilters) self.gridLayout_2.setObjectName(u"gridLayout_2") self.gridLayout.addWidget(self.groupBoxFilters, 0, 3, 6, 1, QtCore.Qt.AlignLeft) self.radioButton12Month = QRadioButton(self.groupBoxFilters) self.buttonGroupFilter = QButtonGroup(MainWindow) self.buttonGroupFilter.setObjectName(u"buttonGroupFilter") self.buttonGroupFilter.addButton(self.radioButton12Month) self.radioButton12Month.setObjectName(u"radioButton12Month") self.radioButton12Month.setToolTip(u"") self.radioButton12Month.setStatusTip(u"") self.radioButton12Month.setWhatsThis(u"") self.radioButton12Month.setAccessibleName(u"") self.radioButton12Month.setAccessibleDescription(u"") self.radioButton12Month.setText(u"Last 12 Month") self.gridLayout_2.addWidget(self.radioButton12Month, 2, 1, 1, 1) self.radioButtonDateToDate = QRadioButton(self.groupBoxFilters) self.buttonGroupFilter.addButton(self.radioButtonDateToDate) self.radioButtonDateToDate.setObjectName(u"radioButtonDateToDate") self.radioButtonDateToDate.setToolTip(u"") self.radioButtonDateToDate.setStatusTip(u"") self.radioButtonDateToDate.setWhatsThis(u"") self.radioButtonDateToDate.setAccessibleName(u"") self.radioButtonDateToDate.setAccessibleDescription(u"") self.radioButtonDateToDate.setText(u"From Date To Date") self.gridLayout_2.addWidget(self.radioButtonDateToDate, 4, 1, 1, 1) self.radioButtonPrDay = QRadioButton(self.groupBoxFilters) self.buttonGroupFilter.addButton(self.radioButtonPrDay) self.radioButtonPrDay.setObjectName(u"radioButtonPrDay") self.radioButtonPrDay.setToolTip(u"") self.radioButtonPrDay.setStatusTip(u"") self.radioButtonPrDay.setWhatsThis(u"") self.radioButtonPrDay.setAccessibleName(u"") self.radioButtonPrDay.setAccessibleDescription(u"") self.radioButtonPrDay.setText(u"Previous Day") self.gridLayout_2.addWidget(self.radioButtonPrDay, 0, 0, 1, 1) self.radioButton30days = QRadioButton(self.groupBoxFilters) self.buttonGroupFilter.addButton(self.radioButton30days) self.radioButton30days.setObjectName(u"radioButton30days") self.radioButton30days.setToolTip(u"") self.radioButton30days.setStatusTip(u"") self.radioButton30days.setWhatsThis(u"") self.radioButton30days.setAccessibleName(u"") self.radioButton30days.setAccessibleDescription(u"") self.radioButton30days.setText(u"Last 30 Days") self.gridLayout_2.addWidget(self.radioButton30days, 0, 1, 1, 1) self.radioButtonPrYear = QRadioButton(self.groupBoxFilters) self.buttonGroupFilter.addButton(self.radioButtonPrYear) self.radioButtonPrYear.setObjectName(u"radioButtonPrYear") self.radioButtonPrYear.setToolTip(u"") self.radioButtonPrYear.setStatusTip(u"") self.radioButtonPrYear.setWhatsThis(u"") self.radioButtonPrYear.setAccessibleName(u"") self.radioButtonPrYear.setAccessibleDescription(u"") self.radioButtonPrYear.setText(u"Previous Year") self.gridLayout_2.addWidget(self.radioButtonPrYear, 4, 0, 1, 1) self.radioButtonPrMonth = QRadioButton(self.groupBoxFilters) self.buttonGroupFilter.addButton(self.radioButtonPrMonth) self.radioButtonPrMonth.setObjectName(u"radioButtonPrMonth") self.radioButtonPrMonth.setToolTip(u"") self.radioButtonPrMonth.setStatusTip(u"") self.radioButtonPrMonth.setWhatsThis(u"") self.radioButtonPrMonth.setAccessibleName(u"") self.radioButtonPrMonth.setAccessibleDescription(u"") self.radioButtonPrMonth.setText(u"Previous Month") self.gridLayout_2.addWidget(self.radioButtonPrMonth, 2, 0, 1, 1) self.dateEditFilterFrom = QDateEdit(self.groupBoxFilters) self.dateEditFilterFrom.setObjectName(u"dateEditFilterFrom") self.dateEditFilterFrom.setToolTip(u"") self.dateEditFilterFrom.setStatusTip(u"") self.dateEditFilterFrom.setWhatsThis(u"") self.dateEditFilterFrom.setAccessibleName(u"") self.dateEditFilterFrom.setAccessibleDescription(u"") self.dateEditFilterFrom.setSpecialValueText(u"") self.dateEditFilterFrom.setDisplayFormat(u"dd.MM.yyyy") self.dateEditFilterFrom.setCalendarPopup(True) self.dateEditFilterFrom.setTimeSpec(Qt.UTC) self.gridLayout_2.addWidget(self.dateEditFilterFrom, 5, 0, 1, 1) self.dateEditFilterTo = QDateEdit(self.groupBoxFilters) self.dateEditFilterTo.setObjectName(u"dateEditFilterTo") self.dateEditFilterTo.setToolTip(u"") self.dateEditFilterTo.setStatusTip(u"") self.dateEditFilterTo.setWhatsThis(u"") self.dateEditFilterTo.setAccessibleName(u"") self.dateEditFilterTo.setAccessibleDescription(u"") self.dateEditFilterTo.setSpecialValueText(u"") self.dateEditFilterTo.setDisplayFormat(u"dd.MM.yyyy") self.dateEditFilterTo.setCalendarPopup(True) self.dateEditFilterTo.setTimeSpec(Qt.UTC) self.gridLayout_2.addWidget(self.dateEditFilterTo, 5, 1, 1, 1) self.pushButtonAppFilter = QPushButton(self.groupBoxFilters) self.pushButtonAppFilter.setObjectName(u"pushButtonAppFilter") self.pushButtonAppFilter.setToolTip(u"") self.pushButtonAppFilter.setStatusTip(u"") self.pushButtonAppFilter.setWhatsThis(u"") self.pushButtonAppFilter.setAccessibleName(u"") self.pushButtonAppFilter.setAccessibleDescription(u"") self.pushButtonAppFilter.setText(u"Apply Filter") self.gridLayout_2.addWidget(self.pushButtonAppFilter, 7, 0, 1, 1) self.pushButtonResetFilter = QPushButton(self.groupBoxFilters) self.pushButtonResetFilter.setObjectName(u"pushButtonResetFilter") self.pushButtonResetFilter.setToolTip(u"") self.pushButtonResetFilter.setStatusTip(u"") self.pushButtonResetFilter.setWhatsThis(u"") self.pushButtonResetFilter.setAccessibleName(u"") self.pushButtonResetFilter.setAccessibleDescription(u"") self.pushButtonResetFilter.setText(u"Reset Filter") self.gridLayout_2.addWidget(self.pushButtonResetFilter, 7, 1, 1, 1) self.retranslateUi(MainWindow) self.Tab1.setCurrentIndex(0) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle( _translate("Yet Another Log Book", "Yet Another Log Book")) self.ButtonAddLeg.setText(_translate("MainWindow", "Add Leg")) self.ButtonAddAC.setText(_translate("MainWindow", "Add A/C")) self.Tab1.setTabText(self.Tab1.indexOf(self.tab), _translate("MainWindow", "Log Book")) self.Tab1.setTabText(self.Tab1.indexOf(self.tab_2), _translate("MainWindow", "Tab 2"))