在日常项目中,有这么需求,还想窗口移动,还想 右侧关闭 还能tab栏点击显影的需求,不得使用 qt模拟点击事件 进行功能优化
特大杯 大杯 控制 窗口显影,
咖啡 按钮 显示窗口
可乐 豆浆 不显示窗口
四个按钮的 互斥关系,采用 模拟点击功能 进行 功能完善
同时不影响 窗口缩放功能!!!!!!!!!
void xxxxWidget::parentWgtMoveSlot()
{if (ui->pushButton_DeviceList->isChecked()){isDefaultOpenVideo = true;}if (ui->pushButton_Emergencies->isChecked()){isDefaultOpenVideo = false;}if (ui->pushButton_PatrolList->isChecked()){isDefaultOpenVideo = false;}double dScale = (m_mainWindow->isFullScreen() || m_mainWindow->isMaximized()) ? 1.0 : 0.8;if (ui->btn_stow->isChecked()){setFixedSize(MIN_WIDTH * dScale, MAX_HEIGHT * dScale);}else{setFixedSize(MAX_WIDTH * dScale, MAX_HEIGHT * dScale);}move(m_mainWindow->mapToGlobal(QPoint(10, 98)));// 隐藏 右侧 窗口hideRightWidget();
}void xxxxWidget::hideRightWidget()
{if (!ui->btn_stow->isChecked() && !isDefaultOpenVideo){//对pushButton实现模拟点击 模拟对 收缩窗口 点击//定义左键点击事件,Qt::NoModifier代表无其他修饰键被按下QMouseEvent mouseEvent(QEvent::MouseButtonPress, QPoint(1, 1), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);//定义左键释放事件,Qt::NoModifier代表无其他修饰键被按下QMouseEvent mouseEvent_1(QEvent::MouseButtonRelease, QPoint(1, 1), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);QApplication::sendEvent(ui->btn_stow, &mouseEvent);QApplication::sendEvent(ui->btn_stow, &mouseEvent_1);}// 右侧 按钮选中 巡查按钮也选中,模拟释放 选中 状态if (ui->btn_stow->isChecked() && ui->pushButton_PatrolList->isChecked()){//对pushButton实现模拟点击 模拟对 收缩窗口 点击//定义左键点击事件,Qt::NoModifier代表无其他修饰键被按下QMouseEvent mouseEvent(QEvent::MouseButtonPress, QPoint(1, 1), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);//定义左键释放事件,Qt::NoModifier代表无其他修饰键被按下QMouseEvent mouseEvent_1(QEvent::MouseButtonRelease, QPoint(1, 1), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);QApplication::sendEvent(ui->pushButton_PatrolList, &mouseEvent);QApplication::sendEvent(ui->pushButton_PatrolList, &mouseEvent_1);}// 右侧 按钮选中 事件按钮也选中,模拟释放 选中 状态if (ui->btn_stow->isChecked() && ui->pushButton_Emergencies->isChecked()){//对pushButton实现模拟点击 模拟对 收缩窗口 点击//定义左键点击事件,Qt::NoModifier代表无其他修饰键被按下QMouseEvent mouseEvent(QEvent::MouseButtonPress, QPoint(1, 1), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);//定义左键释放事件,Qt::NoModifier代表无其他修饰键被按下QMouseEvent mouseEvent_1(QEvent::MouseButtonRelease, QPoint(1, 1), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);QApplication::sendEvent(ui->pushButton_Emergencies, &mouseEvent);QApplication::sendEvent(ui->pushButton_Emergencies, &mouseEvent_1);}
}