Qt Style Sheet翻訳(中)--cssに類似


//これはなかなか訳せません.
 
マイクロコントロール:
複雑なスタイルを作るために
widget
ああ、それは必須です
widget
の微細な制御.たとえば
QComboBox

drop-down
ボタン、または
QSpinBox
で行ないます.セレクタには、ルールの適用を制限する微細な制御が含まれる場合があります.
widget
微細な制御.例:
QComboBox::drop-down { image: url(dropdown.png) }
      

上のルールはすべてスタイル化されています
QComboBox
で行ないます.二重コロンにもかかわらず:文像
CSS3

Pseudo-Elements
.
Qt
の微細な制御はこれらとは異なり,異なるカスケード意味を持つ.
微細な制御は常に別の要素に基づいて位置決めされます
--―
参照要素.この参照要素は
widget
あるいはもう一つの微細な制御.たとえば、
QComboBox
の:
drop-down
配置、デフォルト、
QComboBox
基板矩形の右上隅.
::drop-down
配置され、デフォルト:
drop-down
内容矩形の中心を微調整します.見て
List of Stylable Widgets
風が吹いて格式化する
widget
彼らのデフォルトの位置と.
出発点を変えて使うことで
subcontrol-origin
.例えば、位置を特定したい場合は
drop-down
にある
QComboBox
デフォルトの基板部分の代わりに空白があります.
QComboBox {
      
     margin-right: 20px;
      
 }
      
 QComboBox::drop-down {
      
     subcontrol-origin: margin;
      
 }
      

drop-down
の位置合わせは、subcontrol-positionによって空白の矩形範囲で変更できます.幅と高さのアトリビュートを使用して、微調整のサイズを制御できます.注意:画像の潜在的な微調整のサイズを設定します.
相対位置の設定方法(position:relative)は、微調整された位置が元の位置を相殺することを可能にする.例えば、QComboBoxのdrop-downボタンが押されると、押される効果が欲しくなるかもしれません.次のようになります.
QComboBox::down-arrow {
      
     image: url(down_arrow.png);
      
 }
      
 QComboBox::down-arrow:pressed {
      
     position: relative;
      
     top: 1px; left: 1px;
      
 }
      

絶対位置の設定方法(position:absolute)では、微調整の位置とサイズが参照要素に関連するように変更できます.いったん位置決めされると、彼らはwidgetと同じように、box modelを使用することでスタイル化することができます.List of Sub-Controlsがサポートする微調整を参照してください.
注意:QComboBoxやQScrolBarなどの複雑なwidgetでは、1つのプロパティまたは微調整がカスタマイズされている場合、他のすべてのプロパティまたは微調整もカスタマイズする必要があります.
虚偽の状態:
セレクタには、widgetステータスルールに基づくアプリケーションを制限する虚偽のステータスが含まれる場合があります.ダミーステータスは、セレクタの最後に表示され、コロン(:)が使用されます.たとえば
QPushButton:hover { color: white }
      

虚偽の状態は逆にされ、感嘆符を使って操作されます.たとえば
QRadioButton:!hover { color: red }
      

虚偽の状態が接続され、論理に相当する.たとえば
QCheckBox:hover:checked { color: white }
      
QPushButton:hover:!pressed { color: blue; }
      

カンマで代用することもできます
QCheckBox:hover, QCheckBox:checked { color: white }
      

偽りの状態も微調整と結びつく
QComboBox::drop-down:hover { image: url(dropdown_bright.png) }
      

競合解決:
競合が発生し、いくつかのスタイル文が同じプロパティを変更すると、異なる値が使用されます.次のスタイル文を考慮します.
QPushButton#okButton { color: gray }
      
 QPushButton { color: red }
      

この競合を解決するには、セレクタの特性を理解する必要があります.上記の例では、
QPushButton#okButton
特別だと思われるより
QPushButton
、彼は単一のオブジェクトを代表しているので、すべてのクラスの例ではありません.
同様に,虚偽状態を持つセレクタは,虚偽状態がないものよりも特別である.したがって、次のスタイル文は、
マウスが滑ると
QPushButton
白い
text
、そうでなければ赤
text
.
QPushButton:hover { color: white }
      
 QPushButton { color: red }
      

これは複雑です.
QPushButton:hover { color: white }
      
 QPushButton:enabled { color: red }
      

2つのセレクタは同じ特性を持っているので、マウスがボタンを滑って機能すると、2番目のルールが優先されます.もし私たちがtextをそのような状況で白色にしたいなら、私たちはこのようにすることができます.
QPushButton:enabled { color: red }
      
 QPushButton:hover { color: white }
      

選択として、最初のルールをより特別にすることもできます.
QPushButton:hover:enabled { color: white }
      
 QPushButton:enabled { color: red }
      

同じ問題が発生し、
QPushButton { color: red }
      
 QAbstractButton { color: gray }
      

両方の規則はQPShButtonに適用される.QPShButtonはQABstractButtonを継承するため、QPShButtonがQABstractButtonよりも特別であると仮定しようとする可能性がある.それでも、スタイル計算では、すべてのタイプセレクタが同じ特性を持ち、最後に現れるルールが優先されます.言い換えれば、色は、QPShButtonを含むすべてのQABstractButtonに対してgrayが設定される.もし私たちが本当にQPShButtonに赤いtextがほしいなら、ルールを再設定することができます.
ルールの特性を決定するために、Qt Style SheetsはCSS 2 Specificationに倣う.
セレクタのプロパティは次のように計算されます.
数ID属性数はセレクタにあります.=a
他の属性と虚偽のクラスの数をセレクタに指定します.=b
数要素の名前の数はセレクタにあります.
=c
虚偽の属性を無視
3つの接続数
a-b-c
(1つの数のシステムに大きな基数を持つ)特性を与える.
*             {}  /* a=0 b=
      
      
       0 c
      =0 -> specificity =   0 */
      
 LI            {}  /* a=0 b=
      
       0 c
      =1 -> specificity =   1 */
      
 UL LI         {}  /* a=0 b=
      
       0 c
      =2 -> specificity =   2 */
      
 UL OL+LI      {}  /* a=0 b=
      
       0 c
      =3 -> specificity =   3 */
      
 H1 + *[REL=up]{}  /* a=0 b=
      
       1 c
      =1 -> specificity =  11 */
      
 UL OL LI.red  {}  /* a=0 b=
      
       1 c
      =3 -> specificity =  13 */
      
 LI.red.level  {}  /* a=0 b=
      
       2 c
      =1 -> specificity =  21 */
      
 #x34y         {}  /* a=1 b=
      
       0 c
      =0 -> specificity = 100 */
      

カスケード:
Style sheet
設定できる
QApplication
を選択します.気ままな
widget
効果的に
style sheet
統合によって設定された
widget
の祖先の
style sheet
に設定されています.
QApplication
ツールバーの
style sheet
.
衝突が発生すると
widget
自分の
style sheet
いつも好きなものを
style sheet
を選択します.親ウィンドウの
style sheet
祖父のほうが好きです.
このような結果は
style
ルールは1つ
widget
自動的に、彼に優先権を与えて他の規則を祖先に押した.
widget

style sheet
または
QApplication style sheet
.次の例を考えると、
qApp->setStyleSheet("QPushButton { color: white }"); myPushButton->setStyleSheet("* { color: blue }");
      
 
myPushButton->setStyleSheet("color: blue");
      
  QPushButtonStyle sheetStyle sheetCSS2 Specificationqtimportant 
 
    CSSitem             ,        。   qt style sheetwidget 
qApp->setStyleSheet("QGroupBox { color: red; } ");
      
QPushButton           。  ,          QGroupBox,      。          QGroupBox     ,    : 
qApp->setStyleSheet("QGroupBox, QGroupBox * { color: red; }");
      
    ,         ,  QWidget::setFont() QWidget::setPalette()     widget 
Widgets c++      
            widgets 
class MyPushButton : public QPushButton {
      
     // ...
      
 }
      

    
      
    
 // ...
      
 qApp->setStyleSheet("MyPushButton { background: yellow; }");
      
Qt style sheet  QObject::className()widgetQObject::className()  <namespace>::<classname>.        。        ,               widget,      “::”  “-- 
namespace ns {
      
     class MyPushButton : public QPushButton {
      
         // ...
      
     }
      
 }
      

    
      
    
 // ...
      
 qApp->setSytleSheet("ns--MyPushButton { background: yellow; }");
      

オブジェクトのプロパティを設定するには、次の手順に従います.
から
qt4.3
以上のバージョンと、設計可能なもの
Q_PROPERTY
使用できるように設定されています
qproperty-
文.
MyLabel { qproperty-pixmap: url(pixmap.png); }
      
 MyGroupBox { qproperty-titleColor: rgb(100, 200, 100); }
      
 QPushButton { qproperty-iconSize: 20px 20px; }
      

属性が1つ参照されている場合
enum
を選択します.
Q_ENUMS,
彼の定数を参考にして名前を通すことができます.彼らの数字ではありません.