繼承自QtCore.Qobject的對象都可以發射信號。python
若是咱們單擊一個按鈕,那麼一個clicked()信號就會被觸發。app
如下代碼將演示若是手動發射一個信號。函數
import sys from PyQt4 import QtCore, QtGui class MainWindow(QtGui.QWidget): def __init__(self, parent = None): QtGui.QWidget.__init__(self, parent) self.setWindowTitle('emit') self.resize(250, 150) # 建立一個新的信號closeEmitApp(),該信號在按下鼠標事件發生時被髮射 self.connect(self, QtCore.SIGNAL('closeEmitApp()'), QtCore.SLOT('close()')) # 使用connect函數將手動建立的closeEmitApp()信號和程序的close()槽函數鏈接起來。這樣在用戶按下鼠標的任意鍵時,程序就會結束。 def mousePressEvent(self, event): self.emit(QtCore.SIGNAL('closeEmitApp()')) #使用PyQt內建的emit函數發射信號closeEmitApp() app = QtGui.QApplication(sys.argv) main = MainWindow() main.show() sys.exit(app.exec_())