• 19616阅读
  • 10回复

QTableView双击事件? [复制链接]

上一主题 下一主题
离线zy765
 

只看楼主 倒序阅读 楼主  发表于: 2009-02-21
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
关键词: QTableView
我想双击QTableView的行弹出一个窗口,把该行数据显示在窗口中。测试代码如下:
connect(dataTabView_, SIGNAL(doubleclicked(QModelIndex)), this, SLOT(rowDoubleClicked(QModelIndex)));

void ABED::rowDoubleClicked(QModelIndex indx)
{
    QMessageBox::information(NULL, "here", "Row was double clicked");
}

但是不工作,请大家帮忙看看什么问题?
离线weizhy
只看该作者 1楼 发表于: 2009-02-21
看看你的connect返回是否为TRUE?

doubleclicked? 还是 doubleClicked?
doubleClicked参数为const QModelIndex&
而rowDoubleClicked参数为QModelIndex
槽函数的参数不能从信号函数的参数中赋值
即将const QModelIndex& 赋值给 QModelIndex 是非法的
不同的编译器不太一样,但至少是个warning

另外,你看看调试方式下你的程序输出(output窗口),是不是有什么提书
离线zy765

只看该作者 2楼 发表于: 2009-02-21
十分感谢,双击该行的任意一个单元格可以响应信号了,正如weizhy所说需要注意以下两点点:
1、doubleClicked信号
2、const QModelIndex &不能带参数名称

connect(dataTabView_, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(slotRowDoubleClicked(const QModelIndex &)));

void ABED::slotRowDoubleClicked(QModelIndex indx)
{
    QMessageBox::information(NULL, "here", "Row was double clicked");
}
这样就可以工作了,但是还有一个问题,如何实现整行选择?
离线XChinux

只看该作者 3楼 发表于: 2009-02-21
设置TableView的选择模式为选择行(Rows),而非单元格(Items)
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线zy765

只看该作者 4楼 发表于: 2009-02-21
tableView->setSelectionBehavior(QAbstractItemView::SelectRows);

谢谢大家!
离线robertkun

只看该作者 5楼 发表于: 2009-08-04
不错
                                              简单的生活使人快乐!
离线zhang8418370
只看该作者 6楼 发表于: 2011-06-13
好方法!
离线garywei
只看该作者 7楼 发表于: 2011-08-25
应该是itemDoubleClicked 吧

This signal is emitted whenever an item in the table is double clicked. The item specified is the item that was double clicked.

即这个信号随时发送表内的一个数据的双击事件
离线颖鹰
只看该作者 8楼 发表于: 2012-05-04
双击后怎么把那一行里的数据取出来?
离线alexltr

只看该作者 9楼 发表于: 2012-05-04
    QModelIndex index = ui->tableView->currentIndex();
    if (index.isValid())
    {
        QSqlRecord record = model->record(index.row());
        QString value = record.value("xxxxxxx").toString();
        .................
    }
我不从事IT,只是喜欢Qt。
我不是程序员,只是与程序有缘。
我写程序,只是为了让工作变得简单有序!

                      ----  一个一直在入门的编程学习者
离线tuoya220

只看该作者 10楼 发表于: 2012-11-20
很有帮助,这个信号槽害我弄了一晚上
快速回复
限100 字节
 
上一个 下一个