2011-08-31 2 views
0

정말 복잡한 파이썬 코드를 만들었지 만, 기본적으로 입력을 요구 한 다음 입력에 따라 거대한 DNA 시퀀스를 출력하고 그래프와 많은 방정식을 출력합니다. 이 코드를 wxPython이나 Tkinter로 만들 가능성이있는 사용자 인터페이스에이 코드를 삽입하고 싶습니다. 내 코드를 사용자 인터페이스에 연결하는 방법을 모르겠다. 도와주세요! 감사!GUI에 파이썬 코드 삽입하기

답변

0

GUI가 입력과 출력을 모두 처리합니다. 따라서 코드가 현재 콘솔에서 읽고 쓰는 크고 긴 스크립트 인 경우 가장 먼저 할 일은 입력을 가져 오는 클래스 또는 독립 실행 형 함수 세트 (코드에 따라 다름)로 리팩터링하는 것입니다. 인수로 반환하고 결과를 반환합니다. 제대로 작성하면 콘솔 응용 프로그램을 유지하면서 다른 응용 프로그램에서 사용할 수있는 클래스 나 함수를 가져올 수도 있습니다.

의사 코드 예 :

# stuff.py 

class StuffDoer: 
    def __init__(self, val1, val2, ...): 
     self.val1 = val1 
     self.val2 = val2 

    def calculate_sequence(self): 
     # do some stuff 
     return sequence 

    def create_graph(self, target_folder): 
     # generate the graph and save it 
     return path_to_graph 

if __name__ == '__main__': 
    # the console interface 
    val1 = raw_input('Enter value 1:') 
    val2 = raw_input('Enter value 2:') 

    s = StuffDoer(val1, val2) 
    seq = s.calculate_sequence() 
    print('Sequence: %s' % seq) 
    path = s.create_graph('/temp') 
    print('Wrote graph to %s' % path) 

당신은 이미 알고 있습니다,하지만 당신이 직접 모듈을 실행하는 경우 if __name__ == '__main__': 내부의 코드는 실행됩니다. 다른 모듈 (예 : GUI 코드)에서 import stuff을 가져온 경우 stuff.StuffDoer 클래스의 정의에 액세스 할 수 있습니다.

다음은 GUI 코드의 예입니다. 버튼을 클릭하는 것과 같은 인터페이스 이벤트에서 양식의 일부 필드에서 입력을 가져 와서 StuffDoer의 인스턴스로 가져오고 결과를 생성하는 데 필요한 클래스 함수를 호출하는 함수를 호출합니다. 문제가 없으면 양식을 생성 된 결과로 업데이트하면 완료됩니다. 이를 수행하는 방법에 대한 자세한 내용은 GUI 툴킷에 따라 다릅니다.

사용자의 GUI는 DNA 서열을 계산하는 방법을 알 필요가 없으며 DNA 시퀀싱 모듈은 입력이 어디에서 오는 것인지 출력이 표시되는지 알 필요가 없습니다.

0

당신의 질문은 끔찍하지 않지만 원하는 사용자 입력이 파이썬 코드라면, GUI 툴킷을위한 파이썬 코드 편집기 위젯을 찾고 싶습니다. 당신이 PyQt는을 사용하고있는 경우

예를 들어, 당신은 QScintilla를 사용할 수 here for an example

+0

예, 저는 두 가지를 함께 참여 시키길 원합니다. 내가 만든 gui 코드를 만들었지 만, 어떻게해야하는지 이해하지 못합니다. – MIT

1

당신에게 가장 좋은 조언은 실제 GUI를 만들려고하지 않는 것입니다. GUI 프로그래밍을 배우는 것은 사소한 일이 아니므로 천천히 시작하여 실제 작업을해야합니다.

프레임 워크 (Tkinter, wxPython, Qt)를 선택하고 가장 간단한 튜토리얼부터 시작하십시오. 그런 다음 실제 작업을 잘 수행 할 수있을 때까지 점차적으로 더 많은 작업을 시도하십시오.