我目前正在研究用于各种应用程序的基本 QTGui 表。我想要的一个功能是能够双击列的标题并调用排序函数。我一直在网上浏览文档和各种帖子,但我还没有完全掌握整体思路。我知道我需要将 doubleClicked 信号连接到我的 handleDoubleClick 插槽,但它并没有真正起作用。
许多示例涉及创建您自己的自定义类以及如何为该类设置信号,但是当 QHeaderView 已经内置了信号时,我需要这样做吗?有没有办法将内置信号连接到我的插槽?
这基本上就是我所拥有的。
QHeaderView *headerView = mainTable->horizontalHeader();
headerView->setMovable(true);
headerView->setClickable(true);
QObject::connect(headerView, SIGNAL(sectionDoubleClicked()), headerView, SLOT(sortByHeader()));
void sortByHeader()
{
cout << "Double clicked";
}
已解决:Abhijith 的方法有效,但事实证明我还需要传递参数类型。所以这是一个语法错误。
所以它是这样的
Class1* myclass = new Class1();
QObject::connect(headerView, SIGNAL(sectionDoubleClicked(int)), myclass, SLOT(sortByHeader(int)));