标题:给QTableView中的一列添加按钮,如何获取按钮的点击事件和行号。
作者:蚂蚁power
日期:2016-01-20 11:58
内容:
如图所示:当我点击“发送控制”按钮时如何获取当前按钮所在的行。(按钮是循环动态添加的)
for(int i = 0;isetIndexWidget(model->index(model->rowCount()-1,6),m_button);
}
tpbq1data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAM0AAACxCAIAAADoPq6EAAANk0lEQVR4nO2cTU/b2B7Gz4chEnG+CHQxaGzxLVrKBpCaIGXZYVMY1nRDwkjoLttq9tOupqa9V7kja9BMW0pbhpuKl5AXHEe5C9vHx/Y5diD/1Cl+fjqL2D4+Pv77lwNlxg8bgjQuLy+znsJ3w+XlpbRc7NtP5bvj4uIi6yl8N1xcXEjLBc/SgWejc3FxcX5+Ht8Pz9KBZ6MDz26PtHBAyvn5+dnZWXx/gmeNaqlUbUxuSvJLLu6PMhnp3PYXmXj2/iKT9pGSdKeZeba/6E0rNutQlfxuGTywGK5njjOI7I961qiW5A8i9EQivcS7Dh3yD8QeuaIkSs8iB6T9vHLLTQpmIrluygOSfkG/BaJnwv1G7n6aNBuenZ3JPev2bGmrG0yvyw91e28rmnC0bjDGN99WNK1yYHd7dvdgXWPu51905u/s+Ye0dbPnHkrAqPvj+2iVA9usaJE93d7bisEHNO ..
#1 [lemonzll 01-20 13:46]
你可以循环创建按钮的时候对按钮用setProperty("row", row)和setProperty("column", col)设置行列,点击按钮的时候你用property函数取出row和column就行了
#2 回 lemonzll 的帖子 [蚂蚁power 01-20 14:14]
lemonzll:你可以循环创建按钮的时候对按钮用setProperty("row", row)和setProperty("column", col)设置行列,点击按钮的时候你用property函数取出row和column就行了 (2016-01-20 13:46)
这样确实可以取到设置的行列值。但是 不是我想要的。可能上面我没有说清楚。因为是在循环里面new的按钮 然后加了信号槽。这样导致当你点击任何一行上面的按钮 他都会触发最后一个按钮的槽函数。所以得到的还是最后一行的 行列值。
#3 [jxgyzhang 01-20 14:52]
槽里这么获取按钮
QPushButton *btn = (QPushButton *) sender();
QString row= btn->property("row").toString();
#4 [lemonzll 01-20 16:30]
用sender()那个方式是对的,这样得到的就是对应的你点击的按钮,然后用property("row")转成int就行了
#5 [蚂蚁power 01-21 09:24]
3楼和4楼正解。按照他们说的 解决了。谢谢 二位。