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)
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)
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()
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)
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_()
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()
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)
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()