2016-12-24 1 views
1

나는 pyqt4로 파이썬 2.7에서 GUI를 만들고있다. 나는 스크립트에 단추를 연결하고 싶어하고 누군가가 나에게 다음 코드 제공 : 당신이 my_function에 대한 인수로 event=None을 통과 왜이벤트 사용에 관해서

from PyQt4 import QtGui 
import sys 

# --- functions --- 

def my_function(event=None): 
    print 'Button clicked: event:', event 
    print linetext.text() 

    # run your code 

# --- main --- 

app = QtGui.QApplication(sys.argv) 

window = QtGui.QWidget() 

# add "layout manager" 
vbox = QtGui.QVBoxLayout() 
window.setLayout(vbox) 

# add place for text 
linetext = QtGui.QLineEdit(window) 
vbox.addWidget(linetext) 

# add button 
button = QtGui.QPushButton("Run", window) 
vbox.addWidget(button) 

# add function to button 
button.clicked.connect(my_function) 

window.show() 

sys.exit(app.exec_()) 

가 이해가 안가. 이벤트 부분없이 스크립트를 실행하면 정상적으로 작동합니다.

답변

1

필요하지 않습니다.

Qt에서 이벤트와 신호/슬롯은 두 개의 개별 시스템입니다. 일반적으로 이벤트는 응용 프로그램의 외부 (예 : 키보드 프레스, 마우스 이동 등)의에서 발생하며 신호는 에서 응용 프로그램의으로 나타납니다.

클릭은 처음에는 Qt에서 내부적으로 처리되는 이벤트 조합 (마우스 누름 + 마우스 누름)입니다. 그런 다음 이벤트 핸들러는 적절할 때마다 clicked 신호를 내 보냅니다.

clicked 신호가 실제로 그 체크 상태 (즉 True 또는 False)보다는 이벤트 객체를 전송한다. 하지만 그것은 스크립트에서 실제로 관련이 없습니다 (즉, 인수를 제공 할 필요가 없습니다).