これは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
を使用できます。こちら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())
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加