【问题标题】:Gettting row and colums from one left mouse click on QTableView?在 QTableView 上单击鼠标左键获取行和列?
【发布时间】:2013-11-14 17:00:01
【问题描述】:

我在QTableView 中显示多张图片。现在我想跟踪用户按下鼠标左键一次的图像,我想跟踪它,因为我将在更大的窗口中准确地显示该图像。我怎样才能做到这一点?我的意思是如何获取用户按下鼠标左键一次的图像的行和列索引?

我在 QTableView 中看不到任何直接的clicked() SIGNAL,那么提供 QTableView 的行或列的工具是什么?

编辑: 我想我还应该提到我使用QStandardItemModel 将模型设置在QTableView 中。首先我设置模型的行和列,然后在QStandardItem 中输入每个QImage 类型项(我将QImage 转换为QIcon),然后将QStandardItem 放入QStandardItemModel,一次QStandardItemModel 已设置或已填写,我输入了 QTableView

谢谢。

【问题讨论】:

    标签: c++ qt qtableview


    【解决方案1】:

    为了获得按下项目的行和列值,您需要将QTableViewpressed() 信号连接到插槽。像这样的:

    connect(tableView, SIGNAL(pressed(const QModelIndex &)), this, SLOT(onItemPressed(const QModelIndex &));
    

    这里是处理鼠标动作的槽:

    void MyClass::onItemPressed(const QModelIndex &index)
    {
        int row = index.row();
        int column = index.column();
        [..]
    }
    

    【讨论】:

    • 非常感谢。它有助于检测单个选定的项目,你能建议一些选择多个项目的东西吗?
    • @the_naive,看看QAbstractItemView::selectedIndexes()函数。它将返回当前选定项目的列表。
    猜你喜欢
    • 1970-01-01
    • 2019-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多