0

(私の悪い英語をお詫びしますが、私は最善を尽くします)

私は現在、いくつかのQDockWidgetsのスタイルをカスタマイズしようとしています。Qtドキュメント->スタイルシートで見つけた唯一の解決策は、右マウスクリック->スタイルシートとちょっとしたハードコード(cssに似ています)を設定して、QtDesignerViewのオブジェクトにスタイルシートを設定することです。残念ながら、私はQtDesignerを使用していませんが、QtCreatorのEditorViewでグラフィカルなものをコーディングしています。

今の私の質問-通常のエディターでウィジェットをカスタマイズすることは可能ですか?

widget.setObjectName("widget")

次に、次のようにコンストラクターを介してスタイルシートを設定します。

this->setStyleSheet("QDockWidget#widget{ background-color: red;........}");

これは簡単なプッシュボタンでは問題なく機能しますが、文字列として数十行をまとめることは最善の解決策ではありませんか?ネット上でそれについて多くを見つけることができないので、私はいくつかのヒントについてうれしいです、しかし私のcpp/Qtの既知のレッジはまだ最高ではありません:(

ありがとう

4

2 に答える 2

1

これは最善の解決策ではないかもしれませんが、おそらく次のようなことをしたいと思います:

  • 目的のスタイルシートを .css ファイルに作成します
  • サブクラスQDockWidget
  • .css ファイルのロード/解析に使用するメソッドを追加しQFile、スタイルなどを設定します
  • それから私は夢中になりQStyle、他の関連クラスでいくつかのことをするかもしれません
于 2011-08-04T16:18:15.837 に答える
0

プログラムから setStyleSheet を呼び出します。

例:

pb->setStyleSheet(QApplication::translate("failoverCrit", "color: rgb(0, 0, 0);background-color: qlineargradient(spread:pad, x1:0.922018, y1:0.574, x2:0.385321, y2:0.159, stop:0 rgba(106, 106, 106, 255), stop:1 rgba(255, 255, 255, 255));", 0, QApplication::UnicodeUTF8));

例 2:

ui.pbAssign->setStyleSheet(QString::fromUtf8("QPushButton {\n"
     "    border: 1px solid green;"
     "    border-radius: 3px;"
     "    padding: 4px;"
     "    background-color: qlineargradient(spread:pad, x1:1, y1:1, x2:1, y2:0, stop:0 rgb(255,255,153), stop:0.668182 rgba(255, 255, 255, 255));"
     " }\n"
     ""));

スタイリングを削除するには:

ui.pbAssign->setStyleSheet("");
于 2011-08-04T16:54:47.803 に答える