单击垂直标题获取QTableWidget的行索引?

时间:2013-12-22 22:26:39

标签: c++ qt qtablewidget

我有一个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);

然后我收到链接错误。

我觉得我正在制作一个非常糟糕的混乱,并且必须有一个更简单的方法。

1 个答案:

答案 0 :(得分:1)

请注意,{em>双击会触发sectionDoubleClicked信号,而您的问题是单击。如果您愿意,也可以使用sectionClicked信号。

您的广告位声明为cTermSelect,但您在使用的代码termSelect中引用它。可能这是问题的原因。其余的代码很好。

当用户单击垂直标题时,单击的行将被选中并默认为当前行。我希望你不想在标题点击上做一些令人惊讶的不同,因为它会破坏用户体验。因此跟踪表选择应该足够了。您可以使用QTableWidget的{​​{1}}或itemSelectionChanged信号进行检测。