QT实现窗口大小随分辨率变化而变化

先上三张效果图,分别是原窗口、等比放大窗口和等比缩小窗口。
QT实现窗口大小随分辨率变化而变化_第1张图片QT实现窗口大小随分辨率变化而变化_第2张图片

QT实现窗口大小随分辨率变化而变化_第3张图片
实现原理,就是借用QGraphicsView的缩放功能来实现的,并且做好QGraphicsView的防锯齿设置,就能完美的适应各种不同分辨率的显示器上了。
分辨率转换原理,如果窗口需要放在大分辨率的显示器上,需要将原窗口view大小调整到大分辨率的窗口对应的大小,然后将view进行scate放大;如果窗口需要放在小分辨率的显示器上,也需要将原窗口view大小调整到小分辨率的窗口对应的大小,需要将view进行scate缩小。
代码如下:

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();

    QGraphicsView* view = new QGraphicsView;
    QGraphicsScene* scene = new QGraphicsScene();
    QGraphicsProxyWidget* wt = scene->addWidget(&w);
    view->setStyleSheet("background:transparent");
    view->

你可能感兴趣的:(QT,qt,ui,开发语言)