2

たとえば、フォームに 20 個のウィジェットがあります。画面の解像度に基づいてサイズを変更する必要があるため、ここに私の方法があります

newHeight=(desktopHeight * ui->widget1->height())/768;
newWidth=(desktopWidth * ui->widget1->width())/1024;
newY=(desktopHeight * ui->widget1->y())/768;
newX=(desktopWidth * ui->widget1->x())/1024;
ui->widget1->setGeometry(newX,
              newY,
              newWidth,
              newHeight);
newFontSize=(desktopHeight * ui->widget1->font().pointSize())/768;
ui->widget1->setFont(QFont ("Ubuntu",newFontSize, QFont::Bold));

残りの 19 個のウィジェットについても、この方法を繰り返します。すべてのウィジェットを取得して do while ステートメントを作成し、ウィジェットがパラメーターである関数を作成する方法はありますか?

4

2 に答える 2

2

レジー!やり方が間違っていると思いませんか?

レイアウトについて

Qtにはレイアウト管理と呼ばれるボックスソリューションからすぐに使用できるため、あなたのアプローチは非常に特殊なケースに使用されます。

ここでそれについて読むことができます:レイアウト管理、また、使用例とQtデザイナーでの直感的な使用方法を参照してください

フォントについて: がありQApplication::setFontますので、プログラム全体でフォントを変更できます。しかし、公式ドキュメントには次のものがあります。

この関数を使用すると、デフォルトのフォントをオーバーライドできます。ただし、たとえば、一部のロケールでは特殊文字をサポートするために非常に大きなフォントが必要なため、オーバーライドは悪い考えかもしれません。

于 2013-08-12T07:24:44.080 に答える