【问题标题】:How to handle QTableView long press?如何处理 QTableView 长按?
【发布时间】:2013-07-10 06:29:55
【问题描述】:

我正在为带有触摸屏的设备开发嵌入式应用程序,需要单独处理 QTableView 项目上的单击和长按。单击应该打开编辑对话框,长按应该只选择项目。问题是 Qt 中只有“按下”信号,我不知道处理长按的正确方法是什么。有人可以建议怎么做吗?

【问题讨论】:

    标签: qt user-interface embedded signals-slots


    【解决方案1】:

    不要直接使用QTableView,而是继承它然后实现虚函数:-

    void mousePressEvent(QMouseEvent *)
    void mouseReleaseEvent(QMouseEvent *)
    

    然后您可以决定如何处理这些事件,创建一个计时器来查看在发布事件之前是否已经过了某个时间。

    【讨论】:

      【解决方案2】:

      在视图的viewport() 小部件上安装事件过滤器并处理其鼠标事件。使用view->indexAt() 找出点击了哪个项目。另见Event Filters

      【讨论】:

        猜你喜欢
        • 2012-03-24
        • 1970-01-01
        • 2020-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多