大一的期末作业,我知道写的很烂,学艺不精求轻喷。
这个函数大体就是执行的时候给数据表(每行)添加两个按钮,其中按钮的指针使用一个二维数组test[i][0]或者[i][1]储存,等用户手动按对应行数的按钮时,执行lamdba表达式的内容,程序确实跑起来了,功能也没有问题,但是我搞不懂为什么我点击对应行数的按钮可以确定connect函数中test[i][1或0]的i的值?如果connect函数不能被for主动执行的话,i的值应该停留在for的最后一个循环上,但是我运行的时候所有的按钮都能触发对应的指针。难道是点击按钮的时候会自动触发一次for循环来查找i的值?但是我用qdebug试了发现并没有,只要点击按钮,就可以找到对应的行数,而不需要遍历查找i的值。我不理解,希望有懂得dalao解答
%0A%09%7B%0A%09%09QPushButton*%20rebt%20%3D%20new%20QPushButton(%22%20%22)%3B%09%09%09%09%09%09%09%09%2F%2F%E5%88%9B%E5%BB%BA%E6%8C%89%E9%92%AE%E6%8C%87%E9%92%88%0A%09%09QPushButton*%20dlbt%20%3D%20new%20QPushButton(%22%20%22)%3B%0A%09%09dlbt-%3EsetStyleSheet(QString%3A%3AfromUtf8(%22border-image%3A%20url(%3A%2FStudentScoreManageSys%2Fimg%2FcloseButton.png)%3B%22))%3B%2F%2F%E6%8C%89%E9%92%AE%E5%9B%BE%E6%A0%87%0A%09%09rebt-%3EsetStyleSheet(QString%3A%3AfromUtf8(%22border-image%3A%20url(%3A%2FStudentScoreManageSys%2Fimg%2FResetBtn.png)%3B%22))%3B%2F%2F%E6%8C%89%E9%92%AE%E5%9B%BE%E6%A0%87%0A%09%09test%5Bi%5D%5B0%5D%20%3D%20rebt%3B%0A%09%09test%5Bi%5D%5B1%5D%20%3D%20dlbt%3B%09%09%09%09%09%09%09%09%09%09%09%09%09%09%09%2F%2F%E5%B0%86%E5%88%9B%E5%BB%BA%E7%9A%84%E6%8C%87%E9%92%88%E5%AD%98%E5%85%A5%E8%BF%AD%E4%BB%A3%E5%99%A8%EF%BC%8C%E8%B5%B7%E5%88%B0%E4%BF%9D%E5%AD%98%E7%9A%84%E4%BD%9C%E7%94%A8%0A%09%09ui.list-%3EsetCellWidget(i%20-%201%2C%203%2C%20rebt)%3B%09%09%09%09%09%09%09%09%09%09%2F%2F%E5%AD%98%E5%85%A5%E5%8D%95%E5%85%83%E6%A0%BC%E4%B8%AD%0A%09%09ui.list-%3EsetCellWidget(i%20-%201%2C%204%2C%20dlbt)%3B%0A%09%09connect(test%5Bi%5D%5B1%5D%2C%20%26QPushButton%3A%3Aclicked%2C%20this%2C%20%5B%3D%5D()%20mutable%20%7B%0A%09%09%09qDebug()%20%3C%3C%20%22%E6%88%91%E6%98%AF%22%20%3C%3C%20i%3B%0A%09%09%09GetComdInfo(i%20-%201%2C%20ui.comboBox-%3EcurrentText())%3B%20%09%2F%2F%E5%8F%82%E6%95%B0%20%EF%BC%9A%20%E5%BD%93%E5%89%8D%E6%8C%89%E7%BA%BD%EF%BC%8C%E5%BD%93%E5%89%8D%E4%B8%8B%E6%8B%89%E6%A0%8F%E6%96%87%E6%9C%AC%E3%80%82%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E9%80%89%E4%B8%AD%E7%9A%84%E8%A1%8C%E4%BF%A1%E6%81%AF%0A%09%09%09DeleteWindow.getOnlineAcc(OnlineAcc)%3B%0A%09%09%09DeleteWindow.SetUi(SubName%2C%20Score%2C%20Date%2CEdulevel%2CROWID)%3B%09%09%09%2F%2F%E5%8F%82%E6%95%B0%20%EF%BC%9A%20%E7%A7%91%E7%9B%AE%E5%90%8D%E7%A7%B0%20%E6%88%90%E7%BB%A9%20%E6%97%A5%E6%9C%9F%2C%E5%AD%A6%E5%8E%86%EF%BC%8C%E8%A1%8Cid%E3%80%82%0A%09%09%09DeleteWindow.show()%3B%20%0A%09%09%09%7D)%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%E5%AF%B9%E5%BA%94%E7%9A%84%E6%8C%87%E9%92%88%E4%BD%9C%E4%B8%BA%E4%BF%A1%E5%8F%B7%0A%0A%0A%09%09connect(test%5Bi%5D%5B0%5D%2C%20%26QPushButton%3A%3Aclicked%2C%20this%2C%20%5B%3D%5D()%20mutable%20%7B%0A%09%09%09GetComdInfo(i%20-%201%2C%20ui.comboBox-%3EcurrentText())%3B%09%20%2F%2F%E5%8F%82%E6%95%B0%20%EF%BC%9A%20%E5%BD%93%E5%89%8D%E6%8C%89%E7%BA%BD%EF%BC%8C%E5%BD%93%E5%89%8D%E4%B8%8B%E6%8B%89%E6%A0%8F%E6%96%87%E6%9C%AC%20%20%20%2C%E6%89%A7%E8%A1%8C%E5%90%8E%EF%BC%8C%E8%AF%A5%E6%96%87%E4%BB%B6%E5%86%85%E7%9A%84%E4%BF%A1%E6%81%AF%E5%85%A8%E9%83%A8%E4%B8%BA%E9%80%89%E4%B8%AD%E8%A1%8C%E7%9A%84%0A%09%09%09qDebug()%20%3C%3C%22%E6%88%91%E6%98%AF%E4%BC%A0%E5%85%A5%E7%9A%84onlin'%22%20%3C%3C%20OnlineAcc%3B%0A%09%09%09NewScoreIn.getOnLineAcc(OnlineAcc)%3B%0A%09%09%09qDebug()%20%3C%3C%20%22%E6%88%91%E6%98%AF%E4%BC%A0%E5%85%A5%E7%9A%84edu'%22%20%3C%3C%20Edulevel%3B%0A%09%09%09NewScoreIn.getEdu(Edulevel)%3B%0A%09%09%09qDebug()%20%3C%3C%20%22%E6%88%91%E6%98%AF%E4%BC%A0%E5%85%A5%E7%9A%84row'%22%20%3C%3CROWID%3B%0A%09%09%09NewScoreIn.getRowID(ROWID)%3B%0A%09%09%09NewScoreIn.show()%3B%0A%0A%09%09%09%7D)%3B%0A%09%7D)