固定サイズのウィンドウがありましたが、これは、すべてのテキストサイズを拡大するために適用されたWindowsのアクセシビリティ設定が含まれている場合、それに含まれるすべてのテキストに適合する大きさではありませんでした。 Windowsではdpiを増やしてこれを行います。私はosの倍率をretreivingしてこれを修正し、私のウィンドウのサイズとそのレイアウトのいくつかを調整しました(私は何らかの理由で自動的に拡大縮小できませんでした)。
ここで( "WindowsDpiScale.h" と呼ばれるファイルに)私は、DPIスケールを得た方法は次のとおりです。
#ifndef WINDOWSDPISCALE_H
#define WINDOWSDPISCALE_H
#include <QtGlobal>
#ifdef Q_OS_WIN
#include <windows.h>
const float DEFAULT_DPI = 96.0;
float windowsDpiScale()
{
HDC screen = GetDC(0);
FLOAT dpiX = static_cast<FLOAT>(GetDeviceCaps(screen, LOGPIXELSX));
ReleaseDC(0, screen);
return dpiX/DEFAULT_DPI;
}
#endif //Q_OS_WIN
#endif // WINDOWSDPISCALE_H
そして、私は私の場合には、それを適用する方法:
...
#include "WindowsDpiScale.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
...
// Enlarge the window and various child widgets to accomendate
// OS display scaling (i.e. accessibily options)
setScaleToOsSettings();
...
}
void MainWindow::setScaleToOsSettings()
{
#ifdef Q_OS_WIN
setScale(windowsDpiScale());
#endif
}
void MainWindow::setScale(float scale)
{
// Resize the window
this->setFixedSize((int)(scale * this->maximumWidth()),
(int)(scale * this->maximumHeight()));
// Resize the layouts within the stacked widget
foreach(QVBoxLayout * layout,
windowUi_->pagerStackedWidget->findChildren<QVBoxLayout *>())
layout->parentWidget()->setFixedSize(
(int)(scale * layout->parentWidget()->contentsRect().width()),
(int)(scale * layout->parentWidget()->contentsRect().height()));
}
私は同じ問題を抱えている、あなたはこの問題に関するすべてのソリューションを持っているとアウトでqt5.6バージョンを使用して、助けてください – lucifer