我对QTable的使用有一个基本的问题。请考虑以下示例。我想创建一个包含三列的表 - 名称,年龄和重量。 “添加”按钮应该能够在表格中添加一行。新添加的行显示在离开之前完全编辑(即应编辑所有三列)。是否有一个信号表明完整的行已经离开,或者当前行中的控件不再存在? 这样的信号将帮助我在所有三列中对输入值进行一些错误检查(例如,检查年龄是否为正数)(也是为了确保它们都不为空)。由于这似乎是一个非常基本的要求,我想我要么缺少支持这种工作的信号或机制。
答案 0 :(得分:0)
您应该使用QTableWidget或QTableView来代替QTable。
请参阅http://doc.qt.io/qt-4.8/porting4.html#qtable
现在,回答你的问题。
您是否尝试过使用itemSelectionChanged()或itemEntered()信号?
另一种方法是使用信号cellActivated()或“添加”按钮触发的信号 - 表示编辑已经开始。然后设置连接以捕获下一个鼠标按钮单击或返回按键按下信号以检测编辑结束。
编辑: 我想在你的应用程序中你继承QMainWindow或QWidget,如果是这样,重新实现QWidget :: mouseMoveEvent和/或QWidget :: keyPressedEvent来检测单击鼠标左键的时间(使用keyPressedEvent来检测何时按下返回键)。 / p>
中详细了解各种活动