PooHочень тяжело оказывается объяснить “ более предметно” не себе но я попробывал.
врядли получилось сильно понятно но на другое умения не хватило
(класс CreationAllBlocks не рабочий (обозначены только ожидаемые методы))
вот код:
import ConfigMod
cfg = ConfigMod.CfgPars()
"""
модуль нужен что бы выдать четыре параметра (класс CreationAllBlocks):
1) имена изображений (4 или 5) в зависимости от того какие блоки задействованы
список кортежей например [8, (108, 208, 308, 408)]
2) номера (позиции) (4 или 5) QLabel (всего 18) (билб.PyQt) на которые выводится изображения
список кортежей например - [7, (1, 2, 3, 4)] -
3) каталог из которого беруться изображения зависит от аргумента - grafical
если "image" то каталог с изображением предметов
если "numeric" то каталог с изображением цифр
4) номера (позиций) QLabel на которые выводится фото - пустышки
например - [(1, 3)]
"""
gNameImageMod = "image"
gNameNumericMod = "numeric"
SequenceRandom = 'Random'
SequenceSeries = 'Series'
SequenceSeriesRever = 'SeriesRevers'
SequenceContinuousRandom = "ContinuousRandom"
class CreatedTopBlock:
blockRange = (100, 499) # диапазон цифр верхнего блока
steprange = 100
def __init__(self, grafical=gNameImageMod, visibleCollumns=None):
self.visibleCollumns = visibleCollumns
self.grafical = grafical
def getNumbers(self, num):
return [x+num for x in range(self.blockRange[0], self.blockRange[1], self.steprange)]
def getGrafical(self):
return self.grafical
class CreatedBottomBlock(CreatedTopBlock):
blockRange = (500, 899)
class CreatedKeyBlock(CreatedTopBlock):
blockRange = (0, 99)
def __init__(self, grafical=gNameImageMod):
self.grafical = grafical
class CreatedNineBlock(CreatedKeyBlock):
blockRange = (900, 999)
class CreationAllBlocks:
"""
аргументы: настраиваются пользователем чере Gui (используется модуль ConfigParser)
logic_sequence=SequenceRandom
control_time=controlTime,
penalty_place=penaltyPlace,
topBlock=True,
botBlock=False,
keyBlock=False,
nineBlock=False
"""
layoutSingleTetraBlock = (7, 8, 9, 10) # позиции если инициализирован только один из экземпляров
layoutPairTetraBlock = (1, 2, 3, 4)
layoutKeyBlock = 7
layoutNineBlock = 8
controlTime = 30
penaltyPlace = 10
def __init__(self,
logic_sequence=SequenceRandom, # используемая последоватеьность см.глобальные переменные
control_time=controlTime, # время через которое цифра будет добавлена обратно в список
penalty_place=penaltyPlace, # позиция на которую отбрасывается цифра
topBlock=True, # """ вкл - выкл блоки; \
botBlock=False, # может быть включено максимум два блока, \
keyBlock=False, # один из которых обязатеьно 'keyBlock' """
nineBlock=False):
self.logic_sequence = logic_sequence
self.control_time = control_time
self.penalty_place = penalty_place
self.topBlock = topBlock
self.botBlock = botBlock
self.keyBlock = keyBlock
self.nineBlock = nineBlock
def getLayoutBlock(self):
''' вернуть номера надписей (QLabel)'''
pass
def getNameFoto(self, num):
''' получить случайное число из класса генератора;
вернуть имена изображений'''
pass
def getDirFoto(self):
""" вернуть путь к каталогу"""
pass
def getNotVisiblePos(self):
''' вернуть номера надписей (QLabel) на которые выведены пустые фото'''
pass
allBlock = CreationAllBlocks(logic_sequence=cfg.seq(),
control_time=cfg.control_time(),
penalty_place=cfg.penalty_place(),
topBlock=cfg.topBlock(),
botBlock=cfg.botBlock(),
keyBlock=cfg.keyBlock(),
nineBlock=cfg.nineBlock())
на фото скрин как это примерно выглядит в Gui