如何将 'on double clicked' 事件添加到 QTableWidget 中的整行?

How to add an 'on double clicked' event to an entire row in a QTableWidget?

我想向我的 QTableWidget 中的每一行添加一个 'on double clicked' 事件。我怎样才能做到这一点?

以下函数向 QTableWidget 添加 1 行:

void ViewController::addReceivedFileToTable(QString sopInstanceUID, QString sopClassUID, QString fileName)
{
    m_mainWindow.getReceivedFilesTableWidget()->insertRow(0);
    m_mainWindow.getReceivedFilesTableWidget()->setItem(0,0,new QTableWidgetItem(sopInstanceUID));
    m_mainWindow.getReceivedFilesTableWidget()->setItem(0,1,new QTableWidgetItem(sopClassUID));
    m_mainWindow.getReceivedFilesTableWidget()->setItem(0,2,new QTableWidgetItem(fileName));
}

我需要这样的东西:

connect(m_mainWindow.getReceivedFilesTableWidget()->[getRow]->[onDoubleClicked], ....)

您需要连接到 QAbstractItemView 基础中可用的 doubleClicked 信号 class:

connect(m_mainWindow.getReceivedFilesTableWidget(), SIGNAL(doubleClicked(QModelIndex const&)), this, SLOT(onTableItemDoubleClicked(QModelIndex const&)));

您的 onTableItemDoubleClicked 实现必须使用 QTableWidget::itemFromIndex 在 QModelIndex 和 QTreeWidgetItem 之间进行转换。