本文只是简单的实现了两种光标定位的问题:
(1)打开对话框后,在对话框里面光标定位到指定QWidget上面;(本文假设跳转带okbutton上面)
QWidget *widget = okbutton;
QPoint widget_center = widget->rect().center();(跳到okbutton中间上)
QCursor::setPos(widget->mapToGlobal(widget_center));
(2)操作后需要弹出类似于(警告,确认、通知等对话框)光标跳转到新对话框上指定按钮上(假设为okbutton)
在(警告,确认、通知等对话框)中重载resizeEvent(QResizeEvent *event)函数;
void WarningDialog::resizeEvent(QResizeEvent *event)
{
QDialog::resizeEvent(event);
int win_frame_height = frameGeometry().height() - height();(相对位置)
QRect rect = okbutton->rect();
QPoint button_center = rect.center();
button_center.setY(button_center.y() - win_frame_height);
QCursor::setPos(okbutton->mapToGlobal(button_center));
}