파이썬 코드 줄이기 pyqt5클래스 내에서 반복적인 코드 줄이는 방법

조회수 542회

안녕하세요,

독학으로 코딩 공부하고 있는 초보입니다.

PYQT5 통해서 프로그래밍 하던 중, 반복적인 코드가 있어서 이를 줄여보고 싶어서 연구하는데 잘 안되서 질문 드립니다.


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(791, 915)
        .
        .
        .#중략
        .
        .
    def URLclean(self):
        self.lineEdit_1.clear()
        self.lineEdit_2.clear()
        self.lineEdit_3.clear()
        self.lineEdit_4.clear()
        self.lineEdit_5.clear()
        self.lineEdit_6.clear()
        self.lineEdit_7.clear()
        self.lineEdit_8.clear()
        self.lineEdit_9.clear()
        self.lineEdit_10.clear()

제가 줄이고 싶은 부분은 def URLclean(self) 부분입니다. 해당 부분에서 어차피 lineEdit_1~10 이고, 반복되어서 for문을 통해

    def URLclean(self):
        a = lineEdit_
        for nums in range(1,11):
            self.a+nums.clear()

이렇게 줄여보려고 했는데 self. 클래스 뒤에 a+nums 가 변수로 아예 인식이 안되는거 같습니다.

어떻게 해결해야 할까요?

감사합니다.

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기
    def setupUi(self, MainWindow):
        # ...
        self.lineEdit = [ QLineEdit(self) for _ in range(10) ]
        # ...
    
    def UrlClean(self):
        for edit in self.lineEdit:
            edit.clear()
    

    lineEdit_n 같은 변수명을 쓰는 것 보다는 lineEdit 이라는 배열 안에 필요한 갯수 만큼의 위젯을 만들어서 lineEdit[0], lineEdit[1], ... 이런식으로 만들면, for 등으로 한꺼번에 처리하기가 좋겠습니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)