def __appendDirectoryItem(self, row, directoryItem): name = directoryItem name.setIcon(QIcon(self.FOLDER_ICON_PATH)) name.setCheckable(True) name.setTextAlignment(Qt.AlignCenter) name.setFlags(name.flags() & ~Qt.ItemIsEditable) self.setItem(row, 0, name) creation_time = QStandardItem(directoryItem.getDirectoryCreationTime()) creation_time.setTextAlignment(Qt.AlignCenter) creation_time.setFlags(creation_time.flags() & ~Qt.ItemIsEditable) self.setItem(row, 1, creation_time) size = QStandardItem(directoryItem.getDirectorySize()) size.setTextAlignment(Qt.AlignCenter) size.setFlags(size.flags() & ~Qt.ItemIsEditable) self.setItem(row, 2, size) extension = QStandardItem(self.FOLDER) extension.setTextAlignment(Qt.AlignCenter) extension.setFlags(extension.flags() & ~Qt.ItemIsEditable) self.setItem(row, 3, extension)
def __appendFileItem(self, row, fileItem): name = fileItem if fileItem.getFileExtension( ) == self.ZIP_EXTENSION or fileItem.getFileExtension( ) == self.RAR_EXTENSION: fileItem.setIcon(QIcon(self.ZIP_ICON_PATH)) name.setCheckable(True) name.setTextAlignment(Qt.AlignCenter) name.setFlags(name.flags() & ~Qt.ItemIsEditable) self.setItem(row, 0, name) else: fileItem.setIcon(QIcon(self.FILE_ICON_PATH)) name.setCheckable(True) name.setTextAlignment(Qt.AlignCenter) name.setFlags(name.flags() & ~Qt.ItemIsEditable) self.setItem(row, 0, name) creation_time = QStandardItem(fileItem.getFileCreationTime()) creation_time.setTextAlignment(Qt.AlignCenter) creation_time.setFlags(creation_time.flags() & ~Qt.ItemIsEditable) self.setItem(row, 1, creation_time) size = QStandardItem(fileItem.getFileSize()) size.setTextAlignment(Qt.AlignCenter) size.setFlags(size.flags() & ~Qt.ItemIsEditable) self.setItem(row, 2, size) extension = QStandardItem(fileItem.getFileExtension()) extension.setTextAlignment(Qt.AlignCenter) extension.setFlags(extension.flags() & ~Qt.ItemIsEditable) self.setItem(row, 3, extension)
def __init__(self): QAbstractListModel.__init__(self) self.__rows = 16 # 行数 self.__cols = 30 # 列数 self.__minesCount = 99 # 总地雷数 self.count_opened = 0 # 揭开的块的总数 self.markedCount = 0 # 已经标记地雷的总数 self.gameStatus = 0 # 游戏状态 0:等待,1:正在进行,2:成功,3:引爆了 self.__table = [] # * (self.__cols * self.__rows) for i in range(self.__rows * self.__cols): self.__table.append({ 'mineflag': False, 'openedflag': False, 'mark': "", 'minesaround': 0 }) item = QStandardItem(i, 0) item.setFlags(item.flags() | Qt.ItemIsEditable)
return StyleOptionGanttItem.Center if __name__ == '__main__': app = QApplication(sys.argv) view = GraphicsView() rowController = MyRowController() view.setReadOnly(True); view.setRowController(rowController); view.show(); model = MyStandardItemModel() for i in range(0, 10): items = [] for j in range(0, 10): item = QStandardItem() item.setText("Item " + str(i)) item.setData(2, KDGantt.ItemTypeRole); item.setData(QDateTime.currentDateTime().addDays(2 * j).addMSecs(100000 * i), KDGantt.StartTimeRole); item.setData(QDateTime.currentDateTime().addDays(2 * j + 1).addMSecs(100000 * i), KDGantt.EndTimeRole); item.setData(random_alignment(), Qt.TextAlignmentRole) item.setData(random_position(), KDGantt.TextPositionRole) item.setFlags(item.flags() & ~Qt.ItemIsSelectable) items.append(item) model.appendRow(items) rowController.setModel(model); view.setModel(model); sys.exit(app.exec_())