Ejemplo n.º 1
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.layout = QHBoxLayout(self)

        # connects to the database
        self.db = Database()
        self.db.connectToDatabase()

        #retrieves data for the logs.
        logsCount = self.db.countPictures()

        # creates the table for the log view
        self.logsTable = QTableWidget(logsCount[0], 4)
        self.logsTable.setHorizontalHeaderLabels(
            ["Date", "Location", "Response", "User"])
        self.populateTable()

        # Formats the table to fill up all avaliable space
        self.logsTable.horizontalHeader().setSectionResizeMode(
            QHeaderView.ResizeMode(1))
        self.logsTable.horizontalHeader().setSectionResizeMode(
            0, QHeaderView.ResizeMode(3))

        self.layout.addWidget(self.logsTable)
Ejemplo n.º 2
0
    def __init__(self, parent):
        super(CentralWidget, self).__init__(parent)
        logger.debug("CentralWidget instance created.")
        self.setupUi(self)
        self.dirty = False
        self.configManager = None
        self.recorder = iomediator.Recorder(self.scriptPage)

        self.cutCopiedItems = []
        for column_index in range(3):
            self.treeWidget.setColumnWidth(
                column_index,
                cm.ConfigManager.SETTINGS[cm.COLUMN_WIDTHS][column_index])

        h_view = self.treeWidget.header()
        h_view.setSectionResizeMode(
            QHeaderView.ResizeMode(QHeaderView.Interactive
                                   | QHeaderView.ResizeToContents))

        self.logHandler = None
        self.listWidget.hide()

        self.factory = None  # type: ak_tree.WidgetItemFactory
        self.context_menu = None  # type: QMenu
        self.action_clear_log = self._create_action("edit-clear-history",
                                                    "Clear Log", None,
                                                    self.on_clear_log)
        self.listWidget.addAction(self.action_clear_log)
        self.action_save_log = self._create_action("edit-clear-history",
                                                   "Save Log As…", None,
                                                   self.on_save_log)
        self.listWidget.addAction(self.action_save_log)
Ejemplo n.º 3
0
    def setup(self):
        self.info_tree.header().hide()
        self.info_tree.setColumnCount(3)
        # self.info_tree.setColumnWidth(0, 100)
        # self.info_tree.setColumnWidth(1, 100)
        # self.info_tree.setColumnWidth(2, 100)
        self.info_tree.setHeaderLabels(['Key','Value',''])
        self.info_tree.header().setSectionResizeMode(QHeaderView.ResizeMode(3))
        self.root.setText(0, "信息")
        self.root.setText(1, "")
        self.n_item_basic_info = QTreeWidgetItem(self.root)
        self.n_item_basic_info.setText(0, "子切片信息: ")
        self.n_item_index = self.add_item(self.n_item_basic_info, '目标编号:', '-')
        self.n_item_width = self.add_item(self.n_item_basic_info, '切片宽度:', '-')
        self.n_item_height = self.add_item(self.n_item_basic_info, '切片高度:', '-')
        self.n_item_is_pos = self.add_item(self.n_item_basic_info, '是否存在阳性区域:', '-')
        self.n_item_rate = self.add_item(self.n_item_basic_info, '阳性区域占比:', '-')

        self.item_basic_info = QTreeWidgetItem(self.root)
        self.item_basic_info.setText(0, '当前全切片信息:')
        self.item_index = self.add_item(self.item_basic_info, '全切片编号:', '-')
        self.item_width = self.add_item(self.item_basic_info, '全切片宽度:', '-')
        self.item_height = self.add_item(self.item_basic_info, '全切片高度:', '-')
        self.item_channels = self.add_item(self.item_basic_info, '通道数:', '-')
        self.item_rate = self.add_item(self.item_basic_info, '阳性区域占比:', '-')
        self.item_pixel_acc = self.add_item(self.item_basic_info, '平均像素精度:', '-')
        self.item_dice = self.add_item(self.item_basic_info, 'Dice:', '-')
        self.item_jaccard = self.add_item(self.item_basic_info, 'jaccard:', '-')
        self.item_recall = self.add_item(self.item_basic_info, 'recall: ', '-')
        self.item_precision = self.add_item(self.item_basic_info, 'precision: ', '-')
        self.info_tree.addTopLevelItem(self.root)
        self.info_tree.expandAll()
Ejemplo n.º 4
0
def InitMainWindow():
    global listViewMode
    ui.m3u8_url.setText("https://bilibili.xiang-kuyun.com/20210214/11576_c9f0a0ea/index.m3u8?sign=3e7bf3669d4d88a86e5c57d7e3d67387")
    ui.save_file.setText('Z:/碰撞地球')
    listViewMode = QStandardItemModel(0, 3)
    listViewMode.setHorizontalHeaderLabels([' # ', '视频流地址', '状态'])
    #for row in range(3):
    #        for column in range(3):
    #            item=QStandardItem('row %s,column %s'%(row,column))
    #            listViewMode.setItem(row,column,item)
    ui.tableView.setModel(listViewMode)
    ui.tableView.setColumnWidth(0, 40)
    ui.tableView.setColumnWidth(1, 600)

    stylesheet = "QHeaderView::section{background:#99CCFF;font: bold 11px;border-width: 2px;}"
    ui.tableView.horizontalHeader().setStyleSheet(stylesheet)

    #ui.tableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
    ui.tableView.horizontalHeader().setSectionResizeMode(2, QHeaderView.ResizeMode())
    ui.tableView.horizontalHeader().setSectionResizeMode(1, QHeaderView.Stretch)
    ui.tableView.verticalHeader().setVisible(False)
    ui.tableView.horizontalHeader().setHighlightSections(False)

    stylesheet = "QTableView{background-color:white;alternate-background-color: rgb(233, 248, 254)};}"
    ui.tableView.setStyleSheet(stylesheet)
Ejemplo n.º 5
0
    def deviceRemove(self):
        """
            Summary: Displays a table of ever device for users to remove
        """
        removeDeviceDialog = QDialog()

        dialogLayout = QVBoxLayout(removeDeviceDialog)

        devices = self.db.getDevices()
        deviceCount = len(devices)

        self.removeDeviceTable = QTableWidget(self.db.countDevices()[0], 5,
                                              self)
        self.removeDeviceTable.setHorizontalHeaderLabels(
            ["Name", "Purpose", "Importance", "Location", "Remove"])

        # Formats the table to fill up all avaliable space
        self.removeDeviceTable.horizontalHeader().setSectionResizeMode(
            QHeaderView.ResizeMode(1))
        self.removeDeviceTable.horizontalHeader().setSectionResizeMode(
            4, QHeaderView.ResizeMode(2))

        # Here is where all of the information is unpacked and inserted into the table
        for deviceIndex in range(0, deviceCount):
            deviceName = QTableWidgetItem("{}".format(devices[deviceIndex][0]))
            devicePurpose = QTableWidgetItem("{}".format(
                devices[deviceIndex][1]))
            deviceImportance = QTableWidgetItem("{}".format(
                devices[deviceIndex][2]))
            deviceLocation = QTableWidgetItem("{}".format(
                devices[deviceIndex][3]))
            deviceRemove = QPushButton("Kill")

            self.removeDeviceTable.setItem(deviceIndex, 0, deviceName)
            self.removeDeviceTable.setItem(deviceIndex, 1, devicePurpose)
            self.removeDeviceTable.setItem(deviceIndex, 2, deviceImportance)
            self.removeDeviceTable.setItem(deviceIndex, 3, deviceLocation)
            self.removeDeviceTable.setCellWidget(deviceIndex, 4, deviceRemove)

            deviceRemove.clicked.connect(self.killDevice)

        dialogLayout.addWidget(self.removeDeviceTable)

        removeDeviceDialog.exec_()
Ejemplo n.º 6
0
    def __init__(self, iface, parent=None):
        super(GpsInfo4ZemokostMainDlg, self).__init__(parent)

        # setup the geometry of the dialog
        self.setupUi(self)

        # didn't seem to work in Linux, but probably in Windows
        self.setWindowIcon(
            QIcon(
                ':/plugins/gpsinfo4zemokost/images/gpsinfo_logo_pink_24px.png')
        )

        # set icon for "Abfrage starten" button
        try:
            self.run.setIcon(
                QIcon(':/plugins/gpsinfo4zemokost/images/check_icon.png'))
        except:
            pass

        # get the list of polygon layers. At this point, we know that it's nonempty.
        self.poly_dic, self.poly_ind = fm.load_layers(iface)

        # populate the layer selection combobox
        self.fill_combobox(iface)
        # update to enable/disable "only selected features" checkbox
        # at this point, we already know that there is at least 1 non-empty polygon layer
        self.update()

        # setup progress bar such that it shows 0%
        self.progressBar.setMinimum(0)
        self.progressBar.setMaximum(10)  # some number different from 0
        self.progressBar.setTextVisible(True)
        self.setProgressValue(0)

        # disable save button
        self.saveButton.setEnabled(False)

        # setup the header of the result table
        self.resultTable.setColumnCount(4)
        self.resultTable.setRowCount(0)
        self.resultTable.setEnabled(False)
        self.resultTable.horizontalHeader().setSectionResizeMode(
            QHeaderView.ResizeMode(0))
        # ResizeMode(0) means resizeable by user
        self.resultTable.setHorizontalHeaderItem(
            1, QTableWidgetItem('Polygonschwerpunkt [(m, m)]'))
        self.resultTable.setHorizontalHeaderItem(
            2, QTableWidgetItem(u'Fläche [km\u00b2]'))
        self.resultTable.setHorizontalHeaderItem(
            3, QTableWidgetItem('Hangneigung [1]'))

        # connect the buttons to functions
        self.closeButton.clicked.connect(self.reject)
        self.run.clicked.connect(self.start_preprocess)
        self.selectLayer.currentIndexChanged.connect(self.update)
        self.onlySelFeat.stateChanged.connect(self.clear_result)
        self.saveButton.clicked.connect(self.save_result)
        self.about_dlg = GpsInfo4ZemokostAbout()
        self.aboutButton.clicked.connect(self.about_dlg.show)
        self.helpButton.clicked.connect(self.openHelp)
        self.rasterBrowse.clicked.connect(self.getRasterFilename)
        self.rasterCheck.stateChanged.connect(self.enableSaveRaster)

        # for now disable rasterSave
        # self.rasterCheck.setEnabled(False)

        # instantiate clipboard for copy and paste purpose
        self.clip = QApplication.clipboard()
Ejemplo n.º 7
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.path = os.path.dirname(os.path.abspath(__file__))

        manageUsersLayout = QGridLayout(self)
        addUsersLayout = QGridLayout()

        self.db = Database()
        self.db.connectToDatabase()

        # TODO: Change this from relative to absolute
        os.chdir(self.path)
        os.chdir("../Facial_Recognition/dataset")
        #//////////////////////////////////////////////////////////////////////////////// Form layout
        #TODO: add additional options for time frame when guest is selected

        #TODO: Make the combo box only accept certain characters
        # Widget for the access combo box
        self.accessBox = QComboBox()
        self.accessBox.setEditable(False)

        # Gets rooms from the database and adds them to the combo box
        rooms = self.db.getRooms()
        for room_index in range(0, self.db.countRooms()[0]):
            self.accessBox.addItem(rooms[room_index][0])

        self.firstName = QLineEdit()
        self.lastName = QLineEdit()
        self.bluetooth = QLineEdit()
        self.bluetooth.setMaxLength(12)

        # Layout which holds all of the user data input fields
        self.form = QFormLayout()
        self.form.addRow(QLabel("First Name"), self.firstName)
        self.form.addRow(QLabel("Last Name"), self.lastName)
        self.form.addRow(QLabel("BluetoothID"), self.bluetooth)
        self.form.addRow(QLabel("Access"), self.accessBox)

        # Connect fields
        self.firstName.textChanged.connect(self.enableAddUserButton)
        self.lastName.textChanged.connect(self.enableAddUserButton)
        self.bluetooth.textChanged.connect(self.enableAddUserButton)

        # Here is the button section of the grid layout for uploading and submitting
        submitUserButtonLayout = QHBoxLayout()

        self.add = QPushButton("Add User")
        self.clear = QPushButton("Clear Form")
        self.edit = QPushButton("Change")

        self.add.setDisabled(True)
        self.add.clicked.connect(self.createUser)

        self.clear.clicked.connect(self.clearForm)

        self.edit.setDisabled(True)
        self.edit.clicked.connect(self.Modify)

        submitUserButtonLayout.addWidget(self.add)
        submitUserButtonLayout.addWidget(self.edit)
        submitUserButtonLayout.addWidget(self.clear)

        addUsersLayout.addLayout(self.form, 0, 0)
        addUsersLayout.addLayout(submitUserButtonLayout, 1, 0)

        #//////////////////////////////////////////////////////////////////////////////// Progress bar layout
        SubmitLayout = QVBoxLayout()
        buttonLayout = QHBoxLayout()

        self.progress = QProgressBar()
        self.progress.setValue(0)
        self.progress.setTextVisible(True)
        self.progress.setAlignment(Qt.AlignCenter)

        self.upload = QPushButton("Upload")
        self.submit = QPushButton("Submit")

        self.submit.setDisabled(True)
        self.submit.clicked.connect(self.encodeFace)

        self.upload.setDisabled(True)
        self.upload.clicked.connect(self.uploadPicutes)

        buttonLayout.addWidget(self.upload)
        buttonLayout.addWidget(self.submit)

        SubmitLayout.addWidget(self.progress)
        SubmitLayout.addLayout(buttonLayout)

        addUsersLayout.addLayout(SubmitLayout, 0, 1)

        #//////////////////////////////////////////////////////////////////////////////// Table Layout
        # Here are all of Database interface functions needed to get the user information
        #TODO: code unpacking
        userCount = self.db.countUsers()

        # Creates empty table widget with headers
        self.userTable = QTableWidget(userCount[0] + 1, 4, self)
        self.userTable.setHorizontalHeaderLabels(
            ["User Name", "BluetoothID", "Bedroom", "Remove User"])

        self.userTable.horizontalHeader().setSectionResizeMode(
            QHeaderView.ResizeMode(1))
        self.userTable.horizontalHeader().setSectionResizeMode(
            3, QHeaderView.ResizeMode(2))

        self.populateTable()

        #//////////////////////////////////////////////////////////////////////////////// Main Layout Configuration
        widgetTitle = QLabel("Manage Users")
        widgetTitle.setAlignment(Qt.AlignCenter)

        manageUsersLayout.addWidget(widgetTitle, 0, 0)
        manageUsersLayout.addLayout(addUsersLayout, 1, 0)
        manageUsersLayout.addWidget(self.userTable, 2, 0)
Ejemplo n.º 8
0
    def initUI(self, tournamentName):

        window_layout = QHBoxLayout()
        self.setLayout(window_layout)
        window_layout.setSpacing(5)
        # Sets a horizontal layout for the window itself

        ### Enrolling Players Section ###
        
        add_player_layout = QVBoxLayout()
        add_player_layout.addStretch(1)

        first_name_layout = QHBoxLayout()
        first_name_layout.setSpacing(1)

        self.first_name_label = QLabel('First Name: ', self)

        self.player_first_name = QLineEdit()
        self.player_first_name.returnPressed.connect(self.addPlayer)
        self.player_first_name.setFocus(True)
        # Line that holds the player's first name

        first_name_layout.addWidget(self.first_name_label)
        first_name_layout.addWidget(self.player_first_name)

        add_player_layout.addLayout(first_name_layout)
        
        last_name_layout = QHBoxLayout()
        last_name_layout.setSpacing(2)

        self.lastNameLabel = QLabel('Last Name: ', self)

        self.player_last_name = QLineEdit()
        self.player_last_name.returnPressed.connect(self.addPlayer)
        # Line that holds the player's last name

        last_name_layout.addWidget(self.lastNameLabel)
        last_name_layout.addWidget(self.player_last_name)
        
        add_player_layout.addLayout(last_name_layout)

        button_layout = QHBoxLayout()

        self.enroll_button = QPushButton('Enroll Player', self)
        self.enroll_button.clicked.connect(self.addPlayer)
        self.enroll_button.setAutoDefault(True)

        button_layout.addWidget(self.enroll_button)

        self.clear_button = QPushButton('Clear', self)
        self.clear_button.clicked.connect(self.clear)
        self.clear_button.setAutoDefault(True)

        button_layout.addWidget(self.clear_button)

        add_player_layout.addLayout(button_layout)
        add_player_layout.addStretch(1)

        begin_tournament_layout = QHBoxLayout()

        begin_tournament_button = QPushButton('Begin Tournament', self)
        begin_tournament_button.clicked.connect(self.beginTournament)

        begin_tournament_layout.addStretch(1)

        begin_tournament_layout.addWidget(begin_tournament_button)

        add_player_layout.addLayout(begin_tournament_layout)

        ### Table View For Enrolled Players Section ###

        self.enrolled_table = QTableWidget()

        # The following options all change how the user interacts
        # with the table
        
        self.enrolled_table.setEditTriggers(QAbstractItemView.NoEditTriggers)
        # These prevent the user from editing the table cells,
        self.enrolled_table.setSelectionBehavior(QAbstractItemView.SelectRows)
        # Select the whole row when one is clicked
        self.enrolled_table.setSelectionMode(QAbstractItemView.SingleSelection)
        # Prevents selection of multiple rows.
        self.enrolled_table.verticalHeader().hide()
        # and hide the headers that appear to the left of the rows.
        
        self.enrolled_table.setColumnCount(2)
        self.enrolled_table.setHorizontalHeaderItem(0, QTableWidgetItem('Player'))
        self.enrolled_table.setHorizontalHeaderItem(1, QTableWidgetItem('ID'))
        self.enrolled_table.setColumnWidth(0, 235)
        self.enrolled_table.horizontalHeader().setSectionResizeMode(
            QHeaderView.ResizeMode(2))
        # ResizeMode(2) is fixed size, meaning the user can't change the size
        # of the table

        window_layout.addWidget(self.enrolled_table)

        ### Misc Window Settings ###

        window_layout.addLayout(add_player_layout)

        self.setGeometry(200, 200, 700, 500)
        self.setWindowTitle(tournamentName)

        self.player_first_name.setFocus(True)
        self.show()