4

私はタブレット環境用にプログラミングしているので、一部のウィジェットは小さすぎてタッチ操作できません。QSpinBoxのボタンを具体的に大きくしたい。

いくつかの検索の後、 setStyleSheet 関数が表示される唯一の方法が見つかりましたが、その使用方法についてはあまり説明されていません。Qtリファレンスへのこのリンクでは、setStyleSheet関数に何を渡す必要があるかが説明されていますが、その一部を使用できるかどうか、または1つだけを変更したい場合でもすべてを使用する必要があるかどうかは明確ではありません。

とにかく、テキストの一部または全体を使用すると、この設定を適用した後、私の QDoubleSpinBox はデフォルトのように見えます。mi uiファイルで描いたので、今よりもさらに大きくなりました。もちろん、背景を黄色にペイントしたり (動作しているかどうかを確認するためだけに)、ボタンを大きくしたりしているわけではありません。

私はこの機能を使用しています:

customizeSpinBox(ui.doubleSpinBoxDistanciaLocalizador);
                ui.doubleSpinBoxDistanciaLocalizador->setVisible(true);

void MyClass::customizeSpinBox(QDoubleSpinBox *spinBox){

qApp->setStyleSheet("QSpinBox { border: 3px solid red; border-radius: 5px; background-color: yellow; }"
                       "QSpinBox::up-arrow { border-left: 17px solid none;"
                       "border-right: 17px solid none; border-bottom: 17px solid black; width: 0px; height: 0px; }"
                       "QSpinBox::up-arrow:hover { border-left: 17px solid none;"
                       "border-right: 17px solid none; border-bottom: 17px solid black; width: 0px; height: 0px; }"
                       "QSpinBox::up-button { width: 80px; height: 77px; background-color: yellow; }"
                       "QSpinBox::up-button:hover { width: 80px; height: 77px; background-color: yellow; }"

                       "QSpinBox::down-arrow { border-left: 17px solid none;"
                       "border-right: 17px solid none; border-top: 17px solid black; width: 0px; height: 0px; }"
                       "QSpinBox::down-arrow:hover { border-left: 17px solid none;"
                       "border-right: 17px solid none; border-top: 17px solid black; width: 0px; height: 0px; }"
                       "QSpinBox::down-button { width: 80px; height: 77px; background-color: yellow; }"
                       "QSpinBox::down-button:hover { width: 80px; height: 77px; background-color: yellow; }"
    );

}

何か助けはありますか?

4

3 に答える 3

5

まず第一に、このスタイルシート コードは機能しません。一部の行で末尾の「}」が抜けています。

QSpinBox の最小サイズを設定するには、これを試してください: QSpinBox { border: 3px solid red; border-radius: 5px; background-color: yellow; min-width: 200px; min-height: 200px; }

この方法を使用すると、このスタイルの大きくて醜いスピンボックスが得られます。

"QSpinBox { border: 3px solid red; border-radius: 5px; background-color: yellow; min-height: 150px; min-width: 150px; }"
"QSpinBox::up-arrow { border-left: 17px solid none;"
"border-right: 17px solid none; border-bottom: 17px solid black; width: 0px; height: 0px; }"
"QSpinBox::up-arrow:hover { border-left: 17px solid none; "
"border-right: 17px solid none; border-bottom: 17px solid black; width: 0px; height: 0px; }"
"QSpinBox::up-button { min-width: 80px; min-height: 77px; background-color: yellow; }"
"QSpinBox::up-button:hover { min-width: 80px; min-height: 77px; background-color: yellow; }"
"QSpinBox::down-arrow { border-left: 17px solid none;"
"border-right: 17px solid none; border-top: 17px solid black; width: 0px; height: 0px; }"


"QSpinBox::down-arrow:hover { border-left: 17px solid none;"
"border-right: 17px solid none; border-top: 17px solid black; width: 0px; height: 0px; }"
"QSpinBox::down-button { min-width: 80px; min-height: 77px; background-color: yellow; }"
"QSpinBox::down-button:hover { min-width: 80px; min-height: 77px; background-color: yellow; }"

ここに画像の説明を入力

于 2012-06-14T10:56:32.383 に答える
0

遅れてすみません。これを確認してください。私が気付いたのは、「subcontrol-origin: ...」と「subcontrol-position: ...」の両方をダウンボタンとアップボタンに設定する必要があるということでした。私はpython + pyqtを使用しています。それがあなたを助けることを願っています。

于 2015-02-27T15:13:44.753 に答える
0

スタイルシート文字列の最後の行にセミコロンを入れます。

使用する

"QSpinBox::down-button:hover { width: 80px; height: 77px; background-color: yellow; };"

それ以外の

"QSpinBox::down-button:hover { width: 80px; height: 77px; background-color: yellow; }"
于 2012-06-14T11:10:25.470 に答える