Вот достаточно простой вариант, возможно поможет. Код полностью работоспособен, можешь загрузить и посмотреть всю логику.
# -*- coding: utf-8 -*-
from PyQt4 import QtGui, QtCore
import sys
class MyWindow(QtGui.QWidget):
def __init__(self, file, parent=None):
QtGui.QWidget.__init__(self,parent)
self.spisok= ['a','b','c']
self.btn = QtGui.QPushButton('try!',self)
self.btn.setGeometry(25,25,25,25)
self.btn.clicked.connect(self.onClickTry)
self.i = 0
def onClickTry(self):
try:
if self.i <=len(self.spisok):
print(self.spisok[self.i])
self.i+=1
except:
print('stop!')
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
window = MyWindow(sys.argv)
window.resize(400,240)
window.show()
sys.exit(app.exec_())
Кстати, если интересно, убери конструкцию try except и посмотри что будет. Вот так меня учили питону))