하나의 py 파일에서 qt designer를 통해 만든 파일(확장자 ui)을 form_class 와 class XXX(form_class) 를 통해 파일을 연 후에, 또 다른 py 파일에서 그와 동일한 ui 파일을 그대로 사용하고 싶은 경우에는 어떻게 해야 할까?
동작 도식도
그 방법은 의외로 단순하고 간단하다.
사전 이해
gui file 내에는 아래와 같은 화면으로 구성되어 있다. 다만 lineEdit 은 boss.py에서 사용할 것이고, 여기에 1이라는 값이 입력되면 algorithm_1.py 파일이 실행되며 algorithm_1.py 파일 내에서는 lineEdit_2 와 lineEdit_3 에 입력된 값을 받아와서 코드를 실행할 것이다.
클래스 상속
boss.py 파일 내에서 lineEdit 을 사용하기 위해서는 self.lineEdit.setText("내용") 과 같은 형태의 코드를 사용한다. 그렇다면 lineEdit_2 와 lineEdit_3 를 algorithm_1.py 파일 내에서 사용하기 위해서도 동일하게 self.lineEdit_2.setText("내용") 과 같은 형태를 사용하면 될까? 아니다.
다시 말해, algorithm_1.py 파일 내에서 boss.py 파일 내에 있는 클래스를 인스턴스로 생성(아래의 코드에서는 tradesystem이라는 클래스를 boss라는 인스턴스로 생성했다.)한 후 그 인스턴스와 함께 lineEdit_2 또는 lineEdit_3 를 사용하면 된다.
from boss import tradesystem ## tradesystem이 boss.py 내의 클래스 이름이다.
class algo_1():
def __init__(self):
boss = tradesystem() ## 클래스를 boss라는 인스턴스로 생성한다.
boss.lineEdit_2.setText("내용") ## boss라는 인스턴스와 함께 gui 객체를 사용한다.
load = boss.lineEdit_3.text() ## 내용을 가져오는 건 .text()를 사용하면 된다.