我有一个QTableWidget
,并希望按下CTRL,同时点击列标题标记整个列。要获得列索引不是问题,因为有一个sectionPressed信号,它给了我点击的列的当前索引。如何在单击列时获取键盘修饰符的状态?如何检测修改键在Qt中的鼠标点击
回答
尝试QApplication::keyboardModifiers()它始终可用
在Qt 5上,请尝试QGuiApplication::keyboardModifiers()。
可以通过调用从QInputEvent继承的modifiers()函数来找到键盘修饰键的状态。
我知道,但我有关联的插槽内没有对象sectionPressed其他则列索引。没有事件,没有发件人,没有。 – tfl 2010-06-23 08:50:04
也许你可以在mouseReleaseEvent中保存修饰符状态,这应该发生在信号之前。 – 2010-06-23 09:11:35
这实在是烦人,我必须安装一个eventFilter并删除sectionPressed处理
ui->tableWidget->horizontalHeader()->viewport()->installEventFilter(this);
内eventFilter我可以请检查是否一个键被按下,像这样
bool MainWindow::eventFilter(QObject *object, QEvent *event)
{
if(event->type() == QEvent::MouseButtonPress)
{
if(Qt::ControlModifier == QApplication::keyboardModifiers())
{
QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);
if(mouseEvent)
{
if(mouseEvent->button()== Qt::LeftButton)
{
ui->tableWidget->selectColumn(ui->tableWidget->itemAt(mouseEvent->pos())->column());
return true;
}
}
}
}
return QWidget::eventFilter(object,event);
}
这适用于我。
if (QApplication::keyboardModifiers().testFlag(Qt::ControlModifier) == true) {
您可以使用QGuiApplication::queryKeyboardModifiers()
这是更简单的使用方法:
if(QGuiApplication::queryKeyboardModifiers().testFlag(Qt::ShiftModifier))
{
// Do a few things
}
- 1. 如何检测鼠标中键点击?
- 2. 如何检测鼠标点击python 3.6.1
- 3. 如何检测鼠标点击QLineEdit
- 4. 如何检测鼠标点击
- 5. GLUT鼠标点击检测
- 6. 检测鼠标点击
- 7. SFML鼠标点击检测
- 8. Qt双击检查左键鼠标
- 9. 检测到鼠标点击并没有在javascript中的鼠标点击
- 10. 如何检测鼠标点击在pyside中绘制的椭圆?
- 11. 在NetLogo中检测鼠标点击/鼠标上移
- 12. 我可以检测鼠标左键吗?或Ctrl +右键点击?
- 13. 如何检测WPF中的鼠标双击左键?
- 14. Qt鼠标点击检测一直不能工作
- 15. 如何在GtkComboBox中检测鼠标点击?
- 16. 如何在vb.net中检测鼠标点击?
- 17. 检测鼠标右键何时被点击
- 18. 检测鼠标点击时的移动,并检测双击
- 19. VB.NET:如何检测集中控制之外的鼠标点击
- 20. 如何检测jQuery中的鼠标点击位置
- 21. 如何检测Javascript中的侧滑鼠标点击?
- 22. 如何检测在Linux上的Python 3鼠标点击?
- 23. Qt - 键盘按键做与鼠标点击相同的东西
- 24. 测试在C++中鼠标左键和右键点击
- 25. 检测用户的鼠标点击并输入按键
- 26. 检测点击鼠标动作
- 27. 检测鼠标点击最后一排
- 28. 检测多个鼠标点击
- 29. wxPython:检测鼠标点击位图
- 30. 检测鼠标点击事件
我发现了这一切 – tfl 2010-06-24 05:29:40
现在我偶然发现了这个答案!在我把所有东西都改写成凌乱的子类之后,我就可以看到事件对象:-)哦,哦! – 2013-05-02 17:38:55
与@Freedom_Ben类似,我也在查看所有提示子类或事件过滤器的示例......但是由于我的持久性(可能是懒惰:P),我找到了这个答案。像魅力一样......就像我想要的一样!感谢Roku的帮助! – zeFree 2013-05-09 06:13:16