这是我倾向于设计的:
当tablewidget发生变化时(比如它的rowcount),
标签将显示rowcount。但是当我尝试它时,Qtcreator说:
Object::connect: No such signal QTableWidget::rowCountChanged(int,int) in ..\ui\mainwindow.cpp:55
为什么呢? rowCountChanged(int,int)是从QTableView继承的一个插槽,我认为......
由于
答案 0 :(得分:2)
正如梅林所说,那是一个受保护的插槽。
但你可以要求基础模型:
(因为widget继承自继承自AbstractView的tableView)
QAbstractItemModel * QAbstractItemView::model () const
连接模型信号:
void QAbstractItemModel::rowsInserted ( const QModelIndex & parent, int start, int end ) [signal]
void QAbstractItemModel::rowsRemoved ( const QModelIndex & parent, int start, int end ) [signal]
Here你得到了所有模型信号
事实上,我还有另一种探索方式:
对QTableWidget进行子类化,(公共)您可以访问该受保护的插槽。
所以,创建自己的信号:
void YourTableWidget::rowCountChanged(int,int)
{
QTableWidget::rowCountChanged(int,int);
emit your_signal(...);
}
答案 1 :(得分:1)
从rowCountChanged的定义可以看出: -
void QTableView::rowCountChanged(int oldCount, int newCount) [protected slot]
这是受保护的插槽,因此您看到的“没有此类信号”的错误是正确的。您可能需要做的是检查附加到QTableView的模型数据的更改。