我在每一行都有一个删除按钮。我正在尝试使用clicked()
的{{1}} SIGNAL来获取当前索引,然后相应地执行某些操作,但在这种情况下不会调用此插槽。出于某种原因,它无法正常工作,我在连接QTableview
SIGNAL时遇到了一些错误吗?
clicked()
答案 0 :(得分:1)
其中一个解决方案可能如下所示:
class Button : public QPushButton
{
Q_OBJECT
public:
Button(int row, QWidget *parent = 0) : QPushButton(parent), m_row(row)
{
connect(this, SIGNAL(clicked()), this, SLOT(onClicked()));
}
signals:
void clicked(int row);
private slots:
void onClicked()
{
emit clicked(m_row);
}
private:
int m_row;
};
Button
类包含一个自定义信号clicked(int)
,其中行号作为参数。要在表格视图中使用它,您需要执行以下操作:
Button *btn = new Button(rowNumber, this);
connect(btn, SIGNAL(clicked(int)), this, SLOT(onButtonClicked(int)));