我有一个QTableWidget,包含各种数学函数的输出。用户需要能够单击行旁边的数字(垂直标题),我需要获取被单击的行的索引。我一直在寻找,但我找不到我需要的东西。我已经阅读了有关使用verticalHeader()sectionDoubleClicked()信号的内容,但我无法使其工作。通常情况下,我只需右键单击设计器中的小部件,然后转到我想要的插槽,但它不存在。
我试过
QObject::connect(ui->table->verticalHeader(),SIGNAL(sectionDoubleClicked(int)),this,SLOT(termSelect(int)));
其中termSelect为
void termSelect(int index)
{
cout << "row selected: " << index;
}
但我得到一个没有这样的插槽错误。
我尝试在头文件中执行此操作
public Q_SLOTS:
void cTermSelect(int);
然后我收到链接错误。
我觉得我正在制作一个非常糟糕的混乱,并且必须有一个更简单的方法。
答案 0 :(得分:1)
请注意,{em>双击会触发sectionDoubleClicked
信号,而您的问题是单击。如果您愿意,也可以使用sectionClicked
信号。
您的广告位声明为cTermSelect
,但您在使用的代码termSelect
中引用它。可能这是问题的原因。其余的代码很好。
当用户单击垂直标题时,单击的行将被选中并默认为当前行。我希望你不想在标题点击上做一些令人惊讶的不同,因为它会破坏用户体验。因此跟踪表选择应该足够了。您可以使用QTableWidget
的{{1}}或itemSelectionChanged
信号进行检测。