【问题标题】:Getting row index of QTableWidget by clicking vertical header?通过单击垂直标题获取 QTableWidget 的行索引?
【发布时间】:2014-01-11 03:37:19
【问题描述】:

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

然后我得到一个链接错误。

我觉得我把这件事弄得一团糟,而且必须有一个更简单的方法。

【问题讨论】:

  • 您是否忘记在您的类定义中添加Q_OBJECT 宏?

标签: c++ qt qtablewidget


【解决方案1】:

请注意sectionDoubleClicked 信号是在双击 时触发的,而您的问题是关于单击的。如果您愿意,也可以使用sectionClicked 信号。

您的插槽声明是cTermSelect,但您在使用termSelect 的代码中引用它。可能这就是问题的原因。其余代码没问题。

当用户单击垂直标题时,单击的行被选中并默认变为当前行。我希望您不想在标题点击时做一些令人惊讶的不同事情,因为它会破坏用户体验。所以跟踪表选择应该足够了。您可以使用QTableWidgetitemSelectionChangedcurrentCellChanged 信号来检测它。

【讨论】:

    猜你喜欢
    • 2017-04-13
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    • 2012-08-06
    • 1970-01-01
    • 2011-07-22
    • 2017-03-10
    • 1970-01-01
    相关资源
    最近更新 更多