【问题标题】:QTableWidget itemDoubleClicked signal link to textEditQTableWidget itemDoubleClicked 信号链接到文本编辑
【发布时间】:2011-11-01 14:54:53
【问题描述】:

我有一个填充的 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 也没有发生任何事情......我在这里遗漏了什么吗?

【问题讨论】:

    标签: qt signals-slots qtablewidget qtablewidgetitem


    【解决方案1】:

    连接应该是

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2013-04-09
        • 2018-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-11
        • 1970-01-01
        • 2012-02-01
        • 1970-01-01
        相关资源
        最近更新 更多