def __init__(self): super().__init__('Construct New Building') self.formset = [] self.set_margin(10) lot = BuyBuilding.lot building_list = Map.getList() # Create list of functions to buy the buildings i = 0 bboxes = [] leftside = [] self._buttons = [None] * 7 self.buyfuncs = [None] * 7 def get_buy_func(building): def buy(): if global_vars.university.buy(building.constructionCost): global_vars.map.construct_building(lot.pos, building) KeyStroker.AltF4() return buy for building in building_list: self.buyfuncs[i] = None #b1box = ControlToolBox() #b1box.value = [] b1box = [] b1box.append(building.name) effects = wrap_text(building.effects, 60) for eff in effects: b1box.append(eff) b1box.append('Price: $' + str(building.constructionCost)) b1box.append('Build Time: ' + str(building.constructionTime) + ' months') buy_button = ControlButton("Begin Construction") buy_button.value = get_buy_func(building) self._buttons[i] = buy_button b1box.append('_button' + str(i + 1)) bboxes.append(b1box) if i % 2 == 0: leftside = bboxes[i] else: self.formset.append((leftside, ' ', bboxes[i])) i += 1 if i % 2 == 1: self.formset.append((' ', leftside, ' ')) self._button1 = self._buttons[0] self._button2 = self._buttons[1] self._button3 = self._buttons[2] self._button4 = self._buttons[3] self._button5 = self._buttons[4] self._button6 = self._buttons[5] self._button7 = self._buttons[6]
def __init__(self): super().__init__('Upgrade Building') self.formset = [] prog_map = global_vars.programs building = UpgradeBuilding.building progs = prog_map[building.name] def buy1(): progs[0].trigger() KeyStroker.AltF4() def buy2(): progs[1].trigger() KeyStroker.AltF4() def buy3(): progs[2].trigger() KeyStroker.AltF4() def buy4(): progs[3].trigger() KeyStroker.AltF4() buycmd = [buy1, buy2, buy3, buy4] buttons = [None, None, None, None] b = ControlButton("test") print(b) def get_buy_func(index): return buycmd[index] p = 0 self.formset.append('Pick a program to implement in the ' + str(building.name)) for prog in progs: self.formset.append(prog.title) self.formset.append(prog.desc) if prog.unlocked: button = ControlButton("Implement this program") button.value = get_buy_func(p) buttons[p] = button self.formset.append('_button' + str(p + 1)) else: self.formset.append("Program already implemented") p += 1 self._button1 = buttons[0] self._button2 = buttons[1] self._button3 = buttons[2] self._button4 = buttons[3]
def _set_desired_button(self, button_txt: str, button_action: callable, trgt_attr_name: str): """ Setts desired button using provided button spec Parameters ---------- button_txt: str text to be displayed over button button_action: callable action to execute when button is clicked trgt_attr_name: str the target attribute name of view Returns ------- """ # trgt_object = ConfigParamCreatorCtrl.ctrld_cfg_f_creator trgt_object = self.ctrld_cfg_param_creator curr_butt = ControlButton() curr_butt.label = button_txt curr_butt.value = button_action setattr(trgt_object, trgt_attr_name, curr_butt)
class CsvParserDialog(BaseWidget): def __init__(self, parent=None): super(CsvParserDialog, self).__init__('CSV Choose the columns', parent_win = parent) self._filename = None # Definition of the forms fields self._filename = ControlFile('CSV File') self._separator = ControlText('Separator', default=';') self._startingrow = ControlNumber('Starting row', default=0) self._frameCol = ControlNumber('Frame column', default=0, minumum=0, maximum=100) self._xCol = ControlNumber('X column', default=1, minumum=0, maximum=100) self._yCol = ControlNumber('Y column', default=2, minumum=0, maximum=100) self._zCol = ControlNumber('Z column', default=3, minumum=0, maximum=100) self._filePreview = ControlList('Preview') self._loadButton = ControlButton('Load') self._formset = [('_filename','_startingrow'), ('_separator', '_frameCol', '_xCol', '_yCol', '_zCol', '_loadButton'), '_filePreview'] self._separator.changed_event = self.__refreshPreview self._filename.changed_event = self.__refreshPreview self._startingrow.changed_event = self.__refreshPreview #self._filename.value = '/home/ricardo/Downloads/2012.12.01_13.48_3D_POSITIONS_version_03.06.2015.csv' @property def filename(self): return self._filename.value @filename.setter def filename(self, value): self._filename.value = value self.__refreshPreview() @property def load_file_event(self): return self._loadButton.value @load_file_event.setter def load_file_event(self, value): self._loadButton.value = value @property def separator(self): return self._separator.value @property def starting_row(self): return self._startingrow.value @starting_row.setter def starting_row(self, value): self._startingrow.value = value @property def frameColumn(self): return self._frameCol.value @frameColumn.setter def frameColumn(self, value): self._frameCol.value = value @property def xColumn(self): return self._xCol.value @xColumn.setter def xColumn(self, value): self._xCol.value = value @property def yColumn(self): return self._yCol.value @yColumn.setter def yColumn(self, value): self._yCol.value = value @property def zColumn(self): return self._zCol.value @zColumn.setter def zColumn(self, value): self._zCol.value = value @property def loadButton(self): return self._loadButton @property def xField(self): return self._xCol @property def yField(self): return self._yCol @property def zField(self): return self._zCol def __iter__(self): if self._filename.value != None and self._filename.value != '': csvfile = open(self._filename.value, 'U') self._spamreader = csv.reader(csvfile, delimiter=self._separator.value) for i in range(int(self._startingrow.value)): next(self._spamreader, None) # skip the headers self._cols = [self.frameColumn] if self.xField.visible: self._cols.append(self.xColumn) if self.yField.visible: self._cols.append(self.yColumn) if self.zField.visible: self._cols.append(self.zColumn) else: self._spamreader = None return self # For compatibility with python 3 def __next__(self): return self.next() def next(self): if self._spamreader != None: row = next(self._spamreader) return [row[int(col)] for col in self._cols] else: raise StopIteration() def __refreshPreview(self): if self._filename.value != None and self._filename.value != '': with open(self._filename.value, 'U') as csvfile: spamreader = csv.reader(csvfile, delimiter=self._separator.value) for i in range(int(self._startingrow.value)): next(spamreader, None) # skip the headers self._filePreview.value = [] self._filePreview.horizontalHeaders = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", ] for i, row in enumerate(spamreader): self._filePreview += row if i >= 10: break def load(self): self.__refreshPreview() self._loadButton.value()