Список циклов Python при вызове функции - PullRequest
0 голосов
/ 24 сентября 2018

Это мой первый вопрос по StackOverflow.Я всегда находил то, что искал, просто гуглил, но на этот раз я застрял и не могу понять.

Я начинающий программист на Python и все еще многому учусь.

Я хочу изменить поле dateEdit в пользовательском интерфейсе с небольшим кодом, чтобы установить текущую дату и время.код выглядит следующим образом.

self.dateEdit_2.setDateTime(QtCore.QDateTime.currentDateTime())

Теперь я хочу, чтобы все поля dateEdit менялись одинаково, начиная с 2 и заканчивая 29, без ввода каждой отдельной строки.

Я попытался создать цикл for с заполненным списком.и я получаю его, чтобы распечатать то, что я хочу, но как я могу получить "set_date_numb" в качестве атрибута, который делает то, что я хочу.

надеюсь, вы понимаете, спасибо.

    dateTimeList = ['2','3','4','5','6','7','8','9',
    '10','11','12','13','14','15','16','17','18','19','20',
    '21','22','23','24','25','26','27','28','29']
    indexval = 0
    for i in range(len(dateTimeList)):
        date_numb = (dateTimeList[indexval])
        set_date_numb ='self.dateEdit_{}.setDateTime(QtCore.QDateTime.currentDateTime())'.format(date_numb)
        print(set_date_numb)
        indexval += 1

1 Ответ

0 голосов
/ 24 сентября 2018

Вы можете использовать getattr(), см. Документацию здесь .Поскольку функции, за которыми вы работаете, являются членами вашего экземпляра, вы можете захватывать их с именами в виде строк (что, я думаю, является основной проблемой, с которой вы сталкиваетесь):

dateTimeList = [str(x) for x in range(2,30)]

for dt in dateTimeList:
    name = "dateEdit_{}".format(dt)
    currentDateEdit = getattr(self, name)
    currentDateEdit.setDateTime(QtCore.QDateTime.currentDateTime())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...