首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在QTableWidget中获取单元格详细信息

在QTableWidget中获取单元格详细信息
EN

Stack Overflow用户
提问于 2012-07-06 19:28:14
回答 1查看 1.2K关注 0票数 0

我的应用程序中有一个QTableWidget。我在运行时将QPushButton小部件添加到表小部件的单元格中。现在,当单击这个新添加的按钮时,我需要执行一些操作。我需要获取包含此按钮的单元格的行和列的详细信息。如何获取这些详细信息?我是Qt新手,正在寻求帮助。

谢谢你,拉凯什

EN

回答 1

Stack Overflow用户

发布于 2013-03-19 21:19:20

一种方法是利用Qt的属性系统,并在插入按钮时向按钮添加动态的行和列属性。下面是一个例子。

代码语言:javascript
运行
复制
# table_button_11361328.pro
QT       += core gui
TARGET = table_button_11361328
TEMPLATE = app
SOURCES += main.cpp

代码语言:javascript
运行
复制
// main.cpp
#include <QApplication>
#include <QTableWidget>
#include <QPushButton>
#include <QLabel>

class Display : public QLabel
{
    Q_OBJECT
public:
    Display(QWidget* parent = 0) : QLabel(parent) {}
public slots:
    void indicate() {
        QWidget * w = qobject_cast<QWidget*>(sender());
        if (w == 0) return;
        int row = w->property("tableRow").toInt();
        int column = w->property("tableColumn").toInt();
        setText(QString("* %1,%2 *").arg(row).arg(column));
    }
};

QWidget * setWidget(QTableWidget* table, int row, int column, QWidget * w)
{
    w->setProperty("tableRow", row);
    w->setProperty("tableColumn", column);
    table->setCellWidget(row, column, w);
    return w;
}

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QTableWidget table;
    Display * d = new Display();
    table.setRowCount(3);
    table.setColumnCount(2);
    table.setCellWidget(2, 0, d);
    d->connect(setWidget(&table, 0, 0, new QPushButton("0,0")), SIGNAL(clicked()), SLOT(indicate()));
    d->connect(setWidget(&table, 0, 1, new QPushButton("0,1")), SIGNAL(clicked()), SLOT(indicate()));
    d->connect(setWidget(&table, 1, 0, new QPushButton("1,0")), SIGNAL(clicked()), SLOT(indicate()));
    d->connect(setWidget(&table, 1, 1, new QPushButton("1,1")), SIGNAL(clicked()), SLOT(indicate()));
    table.show();
    return a.exec();
}

#include "main.moc"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11361328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档