示例#1
0
 def slot_tableHeaderClicked(self, i):
     ascending = (
         self.tableView.horizontalHeader().sortIndicatorSection()
         == i) and (self.tableView.horizontalHeader().sortIndicatorOrder()
                    == Qt.AscendingOrder)
     if (ascending):
         self.model.sort(i, Qt.DescendingOrder)
     else:
         self.model.sort(i, Qt.AscendingOrder)
     print("sorting by header" + Record.getHeaders()[i])
示例#2
0
    def initUI(self):
        # buttons
        self.addRecordButton = QPushButton("Add Record")
        self.addRecordFromFileButton = QPushButton("Add Record From File")
        self.eraseAllRecordButton = QPushButton("Erase All Record")
        self.searchButton = QPushButton("Refresh Data")
        self.clearFilterButton = QPushButton("Clear")

        # table
        self.tableView = QTableView()
        self.model = QStandardItemModel()
        self.model.setHorizontalHeaderLabels(Record.getHeaders())
        self.tableView.setModel(self.model)
        self.tableView.setEditTriggers(QAbstractItemView.NoEditTriggers)

        # buttons to table for column and count
        self.occupationButton = QPushButton("Occupation")
        self.addressButton = QPushButton("Adress")

        # layouts
        hbox = QHBoxLayout()
        hbox.addWidget(self.addRecordButton)
        hbox.addWidget(self.addRecordFromFileButton)
        hbox.addWidget(self.eraseAllRecordButton)
        hbox.addStretch(1)

        editdbGroupBox = QGroupBox("Modify DataBase")
        editdbGroupBox.setLayout(hbox)

        searchGroupBox = QGroupBox("Search")
        searchBox = QHBoxLayout()
        searchBox.addWidget(self.searchButton)
        searchBox.addWidget(self.clearFilterButton)
        searchGroupBox.setLayout(searchBox)

        vbox = QVBoxLayout()
        vbox.addWidget(editdbGroupBox)
        vbox.addWidget(searchGroupBox)
        vbox.addWidget(self.tableView)

        groupByBox = QGroupBox("Group By")
        groupByButtonsLayout = QVBoxLayout()
        groupByButtonsLayout.addStretch(1)
        groupByButtonsLayout.addWidget(self.occupationButton)
        groupByButtonsLayout.addWidget(self.addressButton)
        groupByButtonsLayout.addStretch(1)
        groupByBox.setLayout(groupByButtonsLayout)

        mainPanel = QHBoxLayout()
        mainPanel.addLayout(vbox)
        mainPanel.addWidget(groupByBox)

        self.setLayout(mainPanel)

        # signals and slots
        self.addRecordButton.clicked.connect(self.slot_addOneRecord)
        self.addRecordFromFileButton.clicked.connect(
            self.slot_addRecordFromFile)
        self.eraseAllRecordButton.clicked.connect(self.slot_eraseAllRecord)

        self.searchButton.clicked.connect(self.slot_showData)
        self.clearFilterButton.clicked.connect(self.slot_clearFilter)

        self.occupationButton.clicked.connect(self.slot_groupByOccupation)
        self.addressButton.clicked.connect(self.slot_groupByAddress)

        self.tableView.horizontalHeader().sectionClicked.connect(
            self.slot_tableHeaderClicked)

        # setup
        self.setGeometry(200, 100, 800, 600)
        self.setWindowTitle('Records Manager')
        self.show()