gpt4 book ai didi

c++ - 从相应行的按钮中检索 tableWidget 行

转载 作者:太空宇宙 更新时间:2023-11-04 11:28:47 25 4
gpt4 key购买 nike

我有一个 tableWidget,我使用它动态创建行

ui.tableWidget->insertRow(0);
QTableWidgetItem *newItemText = new QTableWidgetItem("bla", 0);
QPushButton *goButton = new QPushButton("Go", ui.tableWidget);
connect(goButton, SIGNAL(clicked()), this, SLOT(on_pushButtonGo_clicked_custom() ));
ui.tableWidget->setItem(0, 0, newItemText);
ui.tableWidget->setCellWidget(0, 1, goButton);

在每一行中,我都有一个单元格“Go”和一个包含按钮的单元格。这些按钮都连接到插槽 on_pushButtonGo_clicked_custom。

现在在 on_pushButtonGo_clicked_custom 中,我需要检索单击按钮的相应行。我该怎么做?

非常感谢您的帮助!

最佳答案

QSignalMapper允许将字符串或整数与原始信号对象相关联。这意味着您可以将每个 goButton 与相应的行相关联。 Example in documentation看起来与您的问题相关。

你需要像这样修改你的代码:

...
#include <QSignalMapper>
...

QSignalMapper * signalMapper = new QSignalMapper (this);
ui.tableWidget->insertRow(0);
QTableWidgetItem *newItemText = new QTableWidgetItem("bla", 0);
QPushButton *goButton = new QPushButton("Go", ui.tableWidget);
signalMapper->setMapping (goButton, 0); // where 0 is row number.
connect(goButton, SIGNAL(clicked()), signalMapper, SLOT(map()));
// You need rewrite slot for passing number of row.
connect(signalMapper, SIGNAL(mapped(const int)), this, SLOT(on_pushButtonGo_clicked_custom(const int)));
ui.tableWidget->setItem(0, 0, newItemText);
ui.tableWidget->setCellWidget(0, 1, goButton);

行数将通过 on_pushButtonGo_clicked_custom(const int) 插槽的参数提供:

...
void MainWidget::on_pushButtonGo_clicked_custom(const int rowNumber)
{
qDebug () << "Row number is: " << rowNumber;
}

关于c++ - 从相应行的按钮中检索 tableWidget 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25654093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com