0

QCheckBox の TICK の色を黒から濃い青に変更したいので、QSS を試しましたが、うまくいきません:

QCheckBox {
  background-color:blue;
  color:blue;
}

QSS を使用すると背景色のみが変更されますが、目盛りの色を変更したいと考えています。

そのpaintEventをDo Itにオーバーロードする必要がありますか?

ありがとう。

-----------</p>

今私はそれを解決するためにQSSを試みています、

 QCheckBox {
   spacing: 5px;
}

 QCheckBox::indicator {
 width: 13px;
 height: 13px;
 }

 QCheckBox::indicator:unchecked {
   image: url(:/images/checkbox_unchecked.png);
 }

 QCheckBox::indicator:unchecked:hover {
   image: url(:/images/checkbox_unchecked_hover.png);
 }

 QCheckBox::indicator:unchecked:pressed {
   image: url(:/images/checkbox_unchecked_pressed.png);
 }

 QCheckBox::indicator:checked {
   image: url(:/images/checkbox_checked.png);
 }

 QCheckBox::indicator:checked:hover {
   image: url(:/images/checkbox_checked_hover.png);
 }

 QCheckBox::indicator:checked:pressed {
   image: url(:/images/checkbox_checked_pressed.png);
 }

 QCheckBox::indicator:indeterminate:hover {
   image: url(:/images/checkbox_indeterminate_hover.png);
 }

 QCheckBox::indicator:indeterminate:pressed {
   image: url(:/images/checkbox_indeterminate_pressed.png);
 }

これは Qt ref の qss の例ですが、PATH を取得するにはどうすればよいですか? どういう意味?

4

1 に答える 1

4

StyleSheets (および一般的な Qt) のパス

:/images/checkbox_checked.png

qstylesheetPATHリファレンスで使用されている はリソース ファイルです。Qt Creator でリソース ファイルを作成すると、exe にコンパイルされるビルトイン ディレクトリにイメージを保存できます。

exe:/内のこのリソース パスのルートも同様です。

http://qt-project.org/doc/qt-4.8/resources.html

PATHQStyleSheet 内から exe を取得できるとは思いません。実行時に QStyleSheet を次のように構築することで、実行時に配置できます。

widget->setStyleSheet(QString("first part of stylesheet") 
    + path_string + QString("another part of stylesheet"));

おそらくこれを処理する方法は、相対パスを使用することです。そのため、代わりに:/images/image.png./images/image.png「images」フォルダーが exe の隣にある を使用できます。

./application/application.exe
./application/images/image.png

そして、それが相対パスの仕組みです。

また、アプリケーションディレクトリではなく、おそらく作業パスがチェックされることに注意してください。

QDir::currentPath();

http://qt-project.org/doc/qt-5.0/qtcore/qdir.html#setCurrent

http://en.wikipedia.org/wiki/Working_directory

作業ディレクトリ (つまり、exe が実行されるフォルダー) が exe の実際のパスと異なる場合は、イメージ フォルダーを別のディレクトリに配置して、それらを見つけられるようにする必要があります。

.との表記を使用..して、作業ディレクトリ内を上下に移動してフォルダーまたはファイルを見つける方法を説明することもできます。.は現在のディレクトリを..意味し、ルートに近い 1 つ上のディレクトリを意味します。

アプリケーション ディレクトリと現在の作業ディレクトリを取得する方法の詳細については、静的メソッドの QDir と QApplication に関するドキュメントを参照してください。

時々、コードに次の行を挿入し、出力を見て作業ディレクトリを確認します。

system("dir"); // for windows

また

system("pwd"); // for linux/mac

とは:どういう意味ですか?

また、:QStyleSheet の は、すぐ左にある項目のサブ コンポーネントまたはプロパティを参照しています。css とほぼ同じように動作しますが、css.では代わりに です。

したがって、次のようなものです。

MyClassName::component-of-class:property-of-component:option-of-property
{
    property-of-option: setting-for-that-options-property;
}

設定の大きなツリーをドリルダウンするようなものです。プロパティ ペインで Qt Designer を掘り下げることで、それらの多くを視覚化できます。

それが役立つことを願っています。

于 2013-07-23T05:24:06.880 に答える