根据分辨率保持横纵比初始化窗口大小
//缩小倍数
float minification=0.2f;
//获取主屏幕分辨率
QScreen *screen=QGuiApplication::primaryScreen();
int screenWith=screen->availableGeometry().width();
int screenHeight=screen->availableGeometry().height();
//根据横纵比初始化窗口大小
int defaultWith=screenWith-screenWith*minification;
int defaultHeight=defaultWith*screenHeight/screenWith;
this->resize(defaultWith,defaultHeight);
只需修改coefficient系数即可。如0.5缩小一倍,0.1缩小1/10倍
缩小0.2被效果
image.png这样做的好处是无需管屏幕到底多大,设置的窗口大小也不会因为其他设备分辨率小而显示异常。
获取子控件在全局的位置
ui->widget_graph->mapToGlobal(ui->widget_graph->pos());
鼠标相对控件的距离
ui->widget_graph->mapFromGlobal(QCursor::pos());
控件相对于父控件的距离
ui->widget_graph->mapFromGlobal(this->pos());
网友评论