我想我给自己制造了一个问题。。。。在
我有两个函数和一个全局文件描述符(file object)def fileController():
global fd
fName = ui.fileEdit.text()
if ui.lineByLine.isChecked:
ui.fileControl.setText('Next Line')
ui.fileControl.clicked.connect(nextLine)
fd = open(fName, 'r')
def nextLine():
global fd
lineText = fd.readline()
print lineText
def main():
app = QtGui.QApplication(sys.argv)
global ui
ui = uiClass()
ui.fileControl.clicked.connect(fileController)
ui.lineByLine.stateChanged.connect(lineByLineChange)
sys.exit(app.exec_())
if __name__ == '__main__':
main()
调用nextLine()时,它返回第一行。
如果再次调用它,则返回第一行和第二行。
如果再次调用它,则返回第一行、第二行和第三行。
等等
文件描述符是一个全局变量会导致这种情况吗?在
可以找到完整的未编校代码here
感谢所有的帮助!在
编辑:包含更多上下文代码
EDIT2:已添加指向github项目文件的链接
已解决:
问题是:
^{pr2}$
不会断开先前的信号。所以每次单击file Control()时,都会添加一个“signal and slot”,以便多次调用newLine()。当fileController仍被调用时,文件被重新打开。所以我看到了上面的行为。谢谢你的建议!在