我有一个包含一些行编辑的 QWidget。当 Line 编辑获得焦点时,我必须弹出一个新的 Numpad 小部件。当我单击 Numpad 小部件时,焦点必须保留在 Line 编辑小部件中。所以我尝试使用
bool NumPadWidget::nativeEvent(const QByteArray &eventType, void *message, long *result)
{
#ifdef Q_OS_WIN
if(eventType == "windows_generic_MSG")
{
const MSG *msg = reinterpret_cast<MSG *>(message);
if(msg->message == WM_MOUSEACTIVATE)
{
*result = MA_NOACTIVATE;
return true;
}
}
#endif
return false;
}
这对于小键盘小部件的鼠标点击效果很好,但我使用的是触摸屏。当我触摸 Numpad 小部件时,LineEdit 小部件上有闪烁(标题栏闪烁效果)。所以谁能告诉我我必须使用哪个宏来阻止小部件在触摸屏上的焦点。
我尝试使用WM_Touch宏,这导致没有正确的输出。请帮忙……</p>