0

我有一个填充的 tableWidget,我想在双击时选择行标题并抓住行标题中的文本,然后用它填充 textEdit。

我有:

        connect(ui->tableWidget, SIGNAL(itemDoubleClicked(QTableWidget*)),ui->textEdit, SLOT(on_tableWidget_itemDoubleClicked(QTableWidgetItem*)));

void on_tableWidget_itemDoubleClicked(QTableWidgetItem *item)
{
    QString selectedName = item->text();
    ui->textEdit->setText(selectedName);
}

当我运行代码时,不仅焦点没有改变,而且 textEdit 也没有发生任何事情……我在这里遗漏了什么吗?

4

2 回答 2

2

连接应该是

connect(ui->tableWidget, SIGNAL(itemDoubleClicked(QTableWidget*)),
        this, SLOT(on_tableWidget_itemDoubleClicked(QTableWidgetItem*)));

前提是插槽是在您的类中定义的。

于 2011-11-01T14:57:12.297 回答
0

使用插槽名称格式(“ on_widgetName_signalName”)并且由于tableWidget属于生成的 ui,连接应该由ui->setupUi(this);您在构造函数中的行自动完成。

因此,您可以删除该connect调用,但您应该检查它on_tableWidget_itemDoubleClicked是否被声明为一个插槽,并且该宏Q_OBJECT是否包含在类定义中。

于 2011-11-02T20:46:10.977 回答