def data(self, index, role=None): try: row = index.row() column = index.column() if self.mode == 'Audio': if role == Qt.DisplayRole: if column == 0: return str(row + 1) elif column == 1: return self.playlist[row][0].split('/')[-1].split( '.')[0] elif column == 2: return str( datetime.timedelta( minutes=int(self.playlist[row][1])))[:-3] elif role == Qt.TextAlignmentRole: if column == 1: return Qt.AlignVCenter | Qt.AlignLeft elif column == 0: return Qt.AlignVCenter | Qt.AlignCenter elif role == Qt.TextColorRole: if row == self.activeInd: return QBrush(QColor(222, 142, 55)) if row in self.changed: return QBrush(QColor(222, 142, 55)) else: return QBrush(QColor(255, 255, 255)) elif role == Qt.BackgroundColorRole: if row in self.changed: return QBrush(QColor(200, 220, 200)) elif role == Qt.FontRole: f = QFont() f.setPointSize(11) f.setWeight(QFont.Bold) return f elif self.mode == 'Radio' or self.mode == 'Video': if role == Qt.DisplayRole: if column == 0: return str(row + 1) elif column == 1: return self.playlist[row][0]['name'] elif role == Qt.TextAlignmentRole: if column == 1: return Qt.AlignVCenter | Qt.AlignLeft elif column == 0: return Qt.AlignVCenter | Qt.AlignCenter elif role == Qt.TextColorRole: if row == self.activeInd: return QBrush(QColor(222, 142, 55)) else: return QBrush(QColor(255, 255, 255)) elif role == Qt.FontRole: f = QFont() f.setPointSize(11) f.setWeight(QFont.Bold) return f except Exception as e: print('Ошибка модели:', e)
def initUI(self): font = QFont() font.setWeight(50) font.setPixelSize(15) self.human_machine.setFont(font) self.machine_machine.setFont(font) self.vs_group.addButton(self.human_machine, 1) self.vs_group.addButton(self.machine_machine, 2) self.vs_group.buttonClicked.connect(self.radioClicked)
def setTopLayout(self): # list menu self.list_widget = QListWidget() self.list_widget.setMinimumHeight(25) self.list_widget.setFlow(QListWidget.LeftToRight) self.list_widget.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.list_widget.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.list_widget.setFrameShape(QListWidget.NoFrame) # list item for menu self.list_items = QStackedWidget() self.top_layout.addWidget(self.list_widget) self.top_layout.addWidget(self.list_items) self.top_layout.setStretchFactor(self.list_widget, 1) self.top_layout.setStretchFactor(self.list_items, 3) self.list_widget.currentRowChanged.connect( self.list_items.setCurrentIndex) self.list_widget.currentRowChanged.connect( self.item_choose) self.list_str = [ strings.PATTERN, strings.OPERATIONAL_PLANNING, strings.MAPS, strings.REPLAY, strings.SITUATION_INFORMATION, strings.MODEL_TRAIN] self.item_view = [ strings.CLASS_PATTERN, strings.CLASS_OPERATIONAL_PLANNING, strings.CLASS_MAPS, strings.CLASS_REPLAY, strings.CLASS_SITUATION_INFORMATION, strings.CLASS_MODEL_TRAIN] for i in range(len(self.list_str)): font = QFont() font.setBold(True) font.setWeight(50) font.setPixelSize(14) # add item to menu item = QListWidgetItem(self.list_str[i], self.list_widget) item.setFont(font) item.setTextAlignment(Qt.AlignCenter) if i == 0: item.setSelected(True) self.list_items.addWidget(eval(self.item_view[i]))
def initTab(self): # connect tab and item self.tab_widget.currentRowChanged.connect(self.item_widget.setCurrentIndex) self.tab_widget.currentRowChanged.connect(self.map_choose) for i in range(len(self.list_str)): # add item to tab font = QFont() font.setBold(True) font.setWeight(50) font.setPixelSize(14) item = QListWidgetItem(self.list_str[i], self.tab_widget) item.setSizeHint(QSize(30, 50)) item.setFont(font) item.setTextAlignment(Qt.AlignCenter) if i == 0: item.setSelected(True) # add item content if self.name == strings.TYPE_POLICY: self.item_widget.addWidget(eval(self.list_item[i])) elif self.name == strings.TYPE_MAP: self.item_widget.addWidget(MapDescription(self.list_str[i]))
def __init__(self): super(ModelTrain, self).__init__() self.setObjectName('ModelTrain') self.setStyleSheet( GetQssFile.readQss('../resource/qss/modelTrain.qss')) self.log = logging.getLogger('StarCraftII') # font font = QFont() font.setWeight(50) font.setPixelSize(15) # set widget of layout self.frame = QFrame(self) self.frame.setGeometry(QDesktopWidget().screenGeometry()) self.main_layout = QHBoxLayout(self) self.main_layout.setSpacing(20) self.setLayout(self.main_layout) # model tarin self.modelTrain = QPushButton() self.modelTrain.setObjectName('modelTrain') self.modelTrainLabel = QLabel('model train') self.modelTrainLabel.setFont(font) self.modelTrain_layout = QVBoxLayout() self.modelTrain_layout.addWidget(self.modelTrain, alignment=Qt.AlignCenter) self.modelTrain_layout.addWidget(self.modelTrainLabel, alignment=Qt.AlignCenter) self.main_layout.addLayout(self.modelTrain_layout) # a description dialog self.dialog = None # add stretch self.main_layout.addStretch(1) # initialization self.initUI()
def __init__(self): super(SituationInformation, self).__init__() self.setObjectName('SituationInformation') self.setStyleSheet( GetQssFile.readQss('../resource/qss/situationInformation.qss')) self.log = logging.getLogger('StarCraftII') # font font = QFont() font.setWeight(50) font.setPixelSize(15) # set widget of layout self.frame = QFrame(self) self.frame.setGeometry(QDesktopWidget().screenGeometry()) self.main_layout = QHBoxLayout(self) self.main_layout.setSpacing(20) self.setLayout(self.main_layout) # consumption action self.consumption = QPushButton() self.consumption.setObjectName('consumption') self.consumptionLabel = QLabel('consumption') self.consumptionLabel.setFont(font) self.consumption_layout = QVBoxLayout() self.consumption_layout.addWidget(self.consumption, alignment=Qt.AlignCenter) self.consumption_layout.addWidget(self.consumptionLabel, alignment=Qt.AlignCenter) self.main_layout.addLayout(self.consumption_layout) # resource action self.resource = QPushButton() self.resource.setObjectName('resource') self.resourceLabel = QLabel('resource') self.resourceLabel.setFont(font) self.resource_layout = QVBoxLayout() self.resource_layout.addWidget(self.resource, alignment=Qt.AlignCenter) self.resource_layout.addWidget(self.resourceLabel, alignment=Qt.AlignCenter) self.main_layout.addLayout(self.resource_layout) # score action self.score = QPushButton() self.score.setObjectName('score') self.scoreLabel = QLabel('score') self.scoreLabel.setFont(font) self.score_layout = QVBoxLayout() self.score_layout.addWidget(self.score, alignment=Qt.AlignCenter) self.score_layout.addWidget(self.scoreLabel, alignment=Qt.AlignCenter) self.main_layout.addLayout(self.score_layout) # output action self.output = QPushButton() self.output.setObjectName('output') self.outputLabel = QLabel('output') self.outputLabel.setFont(font) self.output_layout = QVBoxLayout() self.output_layout.addWidget(self.output, alignment=Qt.AlignCenter) self.output_layout.addWidget(self.outputLabel, alignment=Qt.AlignCenter) self.main_layout.addLayout(self.output_layout) # a description dialog self.dialog = None # add stretch self.main_layout.addStretch(1) # initialization self.initUI()
def __init__(self): super(OperationalPlanning, self).__init__() self.setObjectName('OperationalPlanning') self.setStyleSheet(GetQssFile.readQss('../resource/qss/operationalPlanning.qss')) self.log = logging.getLogger('StarCraftII') # test fix algorithm self.algorithm = None self.algorithmThread = None # font font = QFont() font.setWeight(50) font.setPixelSize(15) # set widget of layout self.frame = QFrame(self) self.frame.setGeometry(QDesktopWidget().screenGeometry()) self.main_layout = QHBoxLayout(self) self.main_layout.setSpacing(20) self.setLayout(self.main_layout) # start action self.start = QPushButton() self.start.setObjectName('start') self.startLabel = QLabel('start') self.startLabel.setFont(font) self.start_layout = QVBoxLayout() self.start_layout.addWidget(self.start, alignment=Qt.AlignCenter) self.start_layout.addWidget(self.startLabel, alignment=Qt.AlignCenter) self.main_layout.addLayout(self.start_layout) # pause action # self.pause = QPushButton() # self.pause.setObjectName('pause') # self.pauseLabel = QLabel('pause') # self.pauseLabel.setFont(font) # self.pause_layout = QVBoxLayout() # self.pause_layout.addWidget(self.pause, alignment=Qt.AlignCenter) # self.pause_layout.addWidget(self.pauseLabel, alignment=Qt.AlignCenter) # self.main_layout.addLayout(self.pause_layout) # stop action self.stop = QPushButton() self.stop.setObjectName('stop') self.stopLabel = QLabel('stop') self.stopLabel.setFont(font) self.stop_layout = QVBoxLayout() self.stop_layout.addWidget(self.stop, alignment=Qt.AlignCenter) self.stop_layout.addWidget(self.stopLabel, alignment=Qt.AlignCenter) self.main_layout.addLayout(self.stop_layout) # switch policy action self.switch = QPushButton() self.switch.setObjectName('switch') self.switchLabel = QLabel('switch policy') self.switchLabel.setFont(font) self.switch_layout = QVBoxLayout() self.switch_layout.addWidget(self.switch, alignment=Qt.AlignCenter) self.switch_layout.addWidget(self.switchLabel, alignment=Qt.AlignCenter) self.main_layout.addLayout(self.switch_layout) # simulation time self.lcd = QLCDNumber() self.lcd.setObjectName('lcd') self.lcd.setDigitCount(10) self.lcd.setMode(QLCDNumber.Dec) self.lcd.setSegmentStyle(QLCDNumber.Flat) self.lcd.setFrameStyle(QFrame.Panel | QFrame.Raised) self.lcd.display(time.strftime("%X", time.localtime())) self.lcdLabel = QLabel('simulation time') self.lcdLabel.setFont(font) self.lcd_layout = QVBoxLayout() self.lcd_layout.addWidget(self.lcd, alignment=Qt.AlignBottom) self.lcd_layout.addWidget(self.lcdLabel, alignment=Qt.AlignBottom) self.main_layout.addLayout(self.lcd_layout) # define time self.qtime = QTimer() self.qtime.timeout.connect(self.refresh) # define global variable global interval interval = 0 global start_or_pause start_or_pause = False global stop stop = True # map description self.map = QPushButton() self.map.setObjectName('map') self.mapLabel = QLabel('map description') self.mapLabel.setFont(font) self.map_layout = QVBoxLayout() self.map_layout.addWidget(self.map, alignment=Qt.AlignCenter) self.map_layout.addWidget(self.mapLabel, alignment=Qt.AlignCenter) self.main_layout.addLayout(self.map_layout) # add stretch self.main_layout.addStretch(1) # popup window self.dialog = None # initialization self.initUI()