Qt рдореЗрдВ рджреЗрд╢реА рдЗрдВрдЯрд░рдлреЗрд╕

рдХреНрдпреВрдЯреА рд▓реЛрдЧреЛ



рдпрд╣ рд▓реЗрдЦ рдиреЛрдХрд┐рдпрд╛ рд╕реЗ рдХреНрдпреВрдЯреА рдврд╛рдВрдЪреЗ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдЬреАрдпреВрдЖрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рд╣рдо рд╡рд┐рдВрдбреЛрдЬ, рд▓рд┐рдирдХреНрд╕ рдФрд░ рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рджреЗрд╢реА рдкреНрд░рджрд░реНрд╢рди рдЗрдВрдЯрд░рдлреЗрд╕ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗред



рдкреНрд░рд╕реНрддреБрддрд┐ [1] рдХрд╛ рдиреЗрддреГрддреНрд╡ рдЬреЗрдиреНрд╕ рдмрд╛рдЪреЗ-рд╡рд╛рдИрдЧ (рдЬреЗрдиреНрд╕ рдмрд╛рдЪреЗ-рд╡рд╛рдИрдЧ ) рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдХреНрдпреВрдЯреА рдХреЗ рдбреЗрд╡рд▓рдкрд░ (2005 рд╕реЗ), рдЗрдВрдЯрд░рдлреЗрд╕ (рд▓реБрдХ рдФрд░ рдлреАрд▓) рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВред



рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ: рдЖрдЧреЗ, рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рд╕реНрд▓рд╛рдЗрдб рд╢реЛ рд╣реИ , рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрд╕рдВрднрд╡ рд╣реЛ рдореИрдВ рд╕реНрд▓рд╛рдЗрдб рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рджреВрдВрдЧрд╛ред рдХреБрдЫ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдХрдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдХреБрдЫ рдХреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ред



рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЗрди рдкрд░рд┐рд╡реЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдЗрдВрдЯрд░рдлреЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдирд┐рдпрдо (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢, UIG) рд╣реИред рдЗрдирдореЗрдВ рд╕реЗ рдореБрдЦреНрдп рд╣реИрдВ рд╡рд┐рдВрдбреЛрдЬ рдпреВрдЬрд░ рдПрдХреНрд╕рдкреАрд░рд┐рдпрдВрд╕ рдЗрдВрдЯрд░реЗрдХреНрд╢рди рдЧрд╛рдЗрдбрд▓рд╛рдЗрди, рдПрдкреНрдкрд▓ рд╣реНрдпреВрдорди рдЗрдВрдЯрд░рдлреЗрд╕ рдЧрд╛рдЗрдбрд▓рд╛рдЗрди, рдХреЗрдбреАрдИ рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдЧрд╛рдЗрдбрд▓рд╛рдЗрди рдФрд░ рдЧрдиреЛрдо рдЫрд┐рдкрд╛рдИред рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЧрд╛рдЗрдб рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ "рдмрдЯрди рдФрд░ рд░рд┐рдпреВрд╢реЛрдХ рдХреА рд╕реНрдерд┐рддрд┐" рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред Qt рдлреНрд░реЗрдорд╡рд░реНрдХ, рдмрджрд▓реЗ рдореЗрдВ, рдЗрди рд╕рднреА рдЧрд╛рдЗрдбреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдЕрдиреБрдХреВрд▓ рд╡рд┐рдЬреЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдорд┐рд▓рддреА рд╣реИред







QStyle





QStyle рдПрдХ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд╣реИ рдЬреЛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдлрд┐рдЯ рд╣реЛрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред



рдХреНрд░рдорд╢рдГ рд╡рд┐рдВрдбреЛрдЬ 7 рдФрд░ рдЙрдмрдВрдЯреВ 10.10 рдЗрдВрдЯрд░рдлреЗрд╕:

рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рдЙрдмрдВрдЯреВ



QStyle рдЙрдкрд╕реНрдерд┐рддрд┐, рдЖрдХрд╛рд░, рдЖрдХрд╛рд░ рдФрд░ рдХрд┐рд╕реА рднреА рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢реИрд▓реА рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рдХрд▓реНрдк (рдбрд┐рдЬрд╝рд╛рдЗрди рдереАрдо) рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИред



рдореМрдЬреВрджрд╛ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, QStyleOption рдХреНрд▓рд╛рд╕ рдЙрдирдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдореМрдЬреВрдж рд╣реИред рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг:

QStyleOption opt ; <br/>

opt. rect = arrowRect ; <br/>

opt. state = QStyle :: Sate_Item | QStyle :: State_Children ; <br/>



if ( expanded ) <br/>

opt. state |= QStyle :: State_Open ; <br/>

style ( ) -> drawPrimitive ( QStyle :: PE_IndicatorBranch , & opt , painter , this ) ;








QStyleOption рдХреНрд▓рд╛рд╕ рд╡рд░реНрдЧ QStyle рдлрд╝рдВрдХреНрд╢рдВрд╕ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред



рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╢реИрд▓реА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ QProxyStyle (Qt 4.6 рдХреЗ рд╕рд╛рде рдкреЗрд╢) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЖрдкрдХреЛ рд╕рд┐рд╕реНрдЯрдо рд╢реИрд▓реА рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд┐рдП рдмрд┐рдирд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

class MyProxyStyle : public QProxyStyle<br/>



{ <br/>

public : <br/>

int styleHint ( StyleHint hint , const QStyleOption * option = 0 , <br/>



const QWidget * widget = 0 , QStyleHintReturn * returnData = 0 ) const <br/>

{ <br/>

if ( hint == QStyle :: SH_UnderlineShortcut ) <br/>



return 0 ; <br/>

return QProxyStyle :: styleHint ( hint , option , widget , returnData ) ; <br/>



} <br/>

} ; <br/>

<br/>

int main ( int argc , char ** argv ) <br/>

{ <br/>

QApplication a ( argc , argv ) ; <br/>



a. setStyle ( new MyProxyStyle ) ; <br/>

//... <br/>

}








рд╕реНрдЯрд╛рдЗрд▓ рд╢реАрдЯ





рд╕реНрдЯрд╛рдЗрд▓ рд╢реАрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╛рд╡рдзрд╛рдиреА рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдмрд░реНрдмрд╛рдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рд╕рд┐рд╕реНрдЯрдо рдкреИрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП: рдЯреНрд░рд╛рдВрд╕рд▓реВрд╕реЗрдВрд╕реА рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдкреИрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред



рд░рдВрдЧ рдХреЛрдбрд┐рдВрдЧ рд╕реЗ рдмрдЪрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:

QString css = "QLabel { color:palette(highlight); }" ;







рдФрд░ рдЕрдЧрд░ рдЖрдкрдХреЛ рдЕрдкрдирд╛ рд░рдВрдЧ рдЪрд╛рд╣рд┐рдП:

QColor color ( 255 , 0 , 0 ) ; <br/>



QString css = QString ( "QLabel { color: %1; }" ) . arg ( color. name ( ) ) ;








рд╕реЗрдЧрдореЗрдВрдЯ рдмрдЯрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрдЯрди рдХреЗ рд▓рд┐рдП рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдЗрдореЗрдЬреЗрд╕ рдФрд░ рдЬреЙрдЧрд┐рдВрдЧ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдЫ рдФрд░ рд╣реЗрд░рдлреЗрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред



QWidget * segBtn = new QWidget ( this ) ; <br/>

QToolButton * backBtn = new QToolButton ; <br/>



QToolButton * forwardBtn = new QToolButton ; <br/>

segBtn -> setLayout ( new QHBoxLayout ) ; <br/>

segBtn -> layout ( ) -> setSpacing ( 0 ) ; <br/>



segBtn -> layout ( ) -> setMargin ( 0 ) ; <br/>

backBtn -> setIcon ( QIcon ( ":/imgs/arrow-back.png" ) ) ; <br/>

backBtn -> setFixedSize ( 29 , 32 ) ; <br/>



backBtn -> setStyleSheet ( "QToolButton { border-image: url(:/imgs/button-left.png); }" <br/>

"QToolButton:hover { border-image: url(:/imgs/button-left-hover.png); }" ) ; <br/>

forwardBtn -> setIcon ( QIcon ( ":/imgs/arrow-forward.png" ) ) ; <br/>



forwardBtn -> setFixedSize ( 29 , 32 ) ; <br/>

forwardBtn -> setStyleSheet ( "QToolButton { border-image: url(:/imgs/button-right.png); }" <br/>



"QToolButton:hover { border-image: url(:/imgs/button-right-hover.png); }" ) ; <br/>

segBtn -> layout ( ) -> addWidget ( backBtn ) ; <br/>

segBtn -> layout ( ) -> addWidget ( forwardBtn ) ; <br/>



mainToolBar -> addWidget ( segBtn ) ;






рдЦрдВрдбрд┐рдд рдмрдЯрди








рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЙрджрд╛рд╣рд░рдг рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ ("рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдмреНрд▓рд░ рдмрд┐рд╣рд╛рдЗрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛" рд▓реЗрдЦ рд╕реЗ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ [2] ), рдЫрджреНрдо рдХрдХреНрд╖рд╛рдПрдВ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИрдВред



рд╡рд┐рд╢реЗрд╖рддрд╛ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рд╕рд┐рд╕реНрдЯрдо рд╢реИрд▓реА рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

"QToolButton[style=QMacStyle] { border-image: url(:/imgs/button-mac-right.png); }" <br/>

"QToolButton[style=QWindowsVistaStyle] { border-image: url(:/imgs/button-vista-right.png); }"








рд╕рдВрд╡рд╛рджреЛрдВ





рдирд┐рдпрдорд╛рд╡рд▓реА рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо (рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ) рдХреЗ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ рдХрд┐ рдмрдЯрди "рд╕реЗрд╡", "рдХреИрдВрд╕рд▓", "рдУрдХреЗ" рдФрд░ рдЗрд╕реА рддрд░рд╣ "рдмрд┐рд▓реНрдХреБрд▓ рд╡рд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣рд╛рдВ рдирд╣реАрдВред" рдФрд░ рдЗрд╕рд▓рд┐рдП рдмрдЯрди, рд╡рд┐рднрд┐рдиреНрди рд▓реЗрдмрд▓ , рдЖрджрд┐ рдкрд░ рд╕рд┐рд╕реНрдЯрдо рдЖрдЗрдХрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╣реА рдирд╕ рдореЗрдВ , рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣рд╛рдВ рд╣рдо рдпреВрдЖрдИрдЬреА рдкрд░ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рд╕рд╣реА рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ ...



UIG рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рд╕рдВрд╡рд╛рдж рдореЗрдВ рдорд╛рдирдХ рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ QDialogButtonBox рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

QDialogButtonBox box ( QDialogButtonBox :: Cancel | QDialogButtonBox :: Help | <br/>



QDialogButtonBox :: Ok | QDialogButtonBox :: Save ) ;






рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдпрд╣ рдХреЛрдб






рдпрд╣ рдХреЛрдб рдЙрдмрдВрдЯреВ рдореЗрдВ рд╣реИ








рдЖрдк рдЕрдкрдиреА рднреВрдорд┐рдХрд╛ рдХреЗ рдкрджрдирд╛рдо рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ рдмрдЯрди рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:

QDialogButtonBox box ; <br/>



box. addButton ( myButton , QDialogButtonBox :: AcceptRole ) ;








рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдореЛрдбрд▓ рдбрд╛рдпрд▓реЙрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдмрдЯрди рдХреА рднреВрдорд┐рдХрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдорд╣рддреНрд╡ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ:

MyQDialogSubcass dialog ; <br/>

//... <br/>



if ( dialog. exec == QDialog :: Accept ) { <br/>

//Make some noise? <br/>

}








рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдореЛрдбрд▓ рд╕рдВрд╡рд╛рджреЛрдВ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдЙрдиреНрд╣реЗрдВ рдЖрд▓реЛрдЪрдирд╛рддреНрдордХ рдпрд╛ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ, рдПрдХ рд╕рдордп, рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ рдЬреЛ рдХрд┐ рдЬрд╛рд░реА рд░рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреВрд░реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдХреЗрдбреАрдИ рдореЗрдВ, рдореЛрдбрд▓ рд╕рдВрд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬрд╣рд╛рдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рд╕реЗ рдбреЗрдЯрд╛ рд╣рд╛рдирд┐ рдпрд╛ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ (рдпреВрдЖрдИрдЬреА рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд)ред



рдореЛрдбрд▓ рд╕рдВрд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?

рд╡рд┐рдВрдбреЛ рдореЛрдбрд▓ рдбрд╛рдпрд▓реЙрдЧ








(рдЙрджрд╛рд╣рд░рдг [3] рдХреНрдпреВрдЯреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рд╕рд╛рдбрд╝реА рдХреЛрдб рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ)



рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ:





рдЗрд╕ рддрд░рд╣, рдЧреИрд░-рдореЛрдбрд▓ рд╕рдВрд╡рд╛рдж рдмрдирд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдФрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдВрдбреЛ рдпрд╛ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╣реИрдВред



рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЕрд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИ рдЬрдм рдПрдХ рд╕рдВрд╡рд╛рдж рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдХреЗ рдЗрдирдкреБрдЯ рдХрд╛ рдПрдХ рд░реВрдк рд╣реИред рд░реВрдкреЛрдВ, рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рдХреА рд╕рдордЭ рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрдкрд░реНрдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╛ рдХреБрдЫ рдФрд░ рджрд░реНрдЬ рдХрд░рдирд╛ ред рдпрд╣рд╛рдБ рднреА, UIG рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрдХ рдЕрд▓рдЧ рдкреНрд░рджрд░реНрд╢рди рд╣реЛрдЧрд╛:



рдПрдХ рдЕрдиреНрдп рдмрд┐рдВрджреБ рдЬреЛ рдореИрдиреБрдЕрд▓ рдореЗрдВ рдЕрдВрддрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдЗрдирдкреБрдЯ рдлреЙрд░реНрдо ( QFormLayout - 2 рдХреЙрд▓рдо рдореЗрдВ рд▓реЗрдЖрдЙрдЯ) рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдХрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реИред рд╕рдм рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджрд┐рдЦрд╛рдИ рдФрд░ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ:



рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ QFormLayout








рдЗрд╕ рдлреЙрд░реНрдо рдХрд╛ рдХреЛрдб рдбрд┐рдЬрд╝рд╛рдЗрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЦреБрдж рдХреЛ рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ:

QFormLayout * layout = new QFormLayout ( ) ; <br/>

layout -> addRow ( tr ( " :" ) , <br/>



userName ) ; <br/>

layout -> addRow ( tr ( ":" ) , <br/>

eMail ) ; <br/>

layout -> addRow ( tr ( ":" ) , <br/>



passWord ) ; <br/>

layout -> addRow ( tr ( " :" ) , <br/>

passWordAgain ) ;








рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдиреЛрдЯ





рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХреИрд╕реЗ рджрд┐рдЦрд╛рдПрдВ рдХрд┐ рд╡рд░реНрддрдорд╛рди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?

setWindowModified ( ture ) ; <br/>

setWindowFilePath ( "Untitled 1.txt" ) ;






рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛



рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдкреЗрдХреНрд╖ рд░рд╛рд╕реНрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП: " /home/erik/myapp/bin/docs/index.html " тЖТ " рдбреЙрдХреНрд╕ / рдЗрдВрдбреЗрдХреНрд╕ред ")



рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдзреНрдпрд╛рди рдХреИрд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░реЗрдВ?

void QApplication :: alert ( QWidget * widget , int msec = 0 ) [ static ]





рдореИрдХ рдкрд░, рдбреЙрдХ рдЖрдЗрдХрди рдХреВрджрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдкрд░, рдЯрд╛рд╕реНрдХрдмрд╛рд░ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдВрдбреЛ рдмрдЯрди рдлреНрд▓реИрд╢ рд╣реЛрдЧрд╛ред



рдореИрдХ рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдзреНрдпрд╛рди рдЖрдХреГрд╖реНрдЯ рдХрд░рдирд╛



рд╕рдВрдЧреНрд░рд╣рдг рдкрддреЗ (рдлрд╝реЛрдЯреЛ, рд╡реАрдбрд┐рдпреЛ, рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓реЗрдВ ...) рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП QDesktopServices :: storageLocation () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред



рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдПрдХ рдИрдореЗрд▓ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдХ рдкреЗрдЬ рдЦреЛрд▓реЗрдВ, рдпрд╛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреБрдЫ рдлрд╝рд╛рдЗрд▓, QDesktopServices :: openUrl () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

QDesktopServices :: openUrl ( "mailto:support@habrahabr.ru" ) ; <br/>



QDesktopServices :: openUrl ( "habrahabr.ru" ) ; <br/>

QDesktopServices :: openUrl ( QUrl :: fromLocalFile ( ... ) ) ;








рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреАрдмреЛрд░реНрдб рд╢реЙрд░реНрдЯрдХрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдХреБрдЫ рд╕рдВрдпреЛрдЬрди рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдмреЗрд╢рдХ, рдХреЛрдИ рднреА рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдордирд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ Ctrl + Q рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП - рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд▓реЗрдХрд┐рди рдорд╛рдирдХ рдирд╣реАрдВ )



// "" <br/>

QList < QKeySequence > keys = QKeySequence :: keyBindings ( QKeySequence :: Cut ) ; <br/>



foreach ( QKeySequence key , keys ) { <br/>

logStream << key. toString ( QKeySequence :: PortableText ) ; <br/>

// ... <br/>



}








рдореВрд▓ рдереАрдо рдХреЗ рд╕рдорд╛рди рдЖрдЗрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ, рддрд╛рдХрд┐ рд╡реЗ рдУрдПрд╕ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗ рдмрд╣реБрдд рднрд┐рдиреНрди рди рд╣реЛрдВред рд▓рд┐рдирдХреНрд╕ рдХреЗ рд╕рд╛рде, рдпрд╣ рдЖрд╕рд╛рди рд╣реИред рд╡рд┐рд╖рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИ:

QIcon :: fromTheme ( "edit-cut" , QIcon ( ":/edit-cut.png" ) ) ;







рдпрджрд┐ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдбрд┐рдЯ-рдХрдЯ рдПрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдЗрдХрди рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдпрд╣ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рд╕реЗ рд▓реЛрдб рд╣реЛрдЧрд╛ред

FreeDesktop рд╕реЗ рдЖрдЗрдХрди рдирд╛рдореЛрдВ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рд╣реИ ред

рд▓рд┐рдирдХреНрд╕ рдкрд░ рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдереАрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛








QAction рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВ ред рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╡рд╛рд▓реА рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░реЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЯреВрд▓рдмрд╛рд░ Qt :: ToolButtonTextBesideIcon рдкрд░ рд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ ( LowPriority ) рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдп рдмрд┐рдирд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ

void QAction :: setPriority ( Priority priority )







QAction рдФрд░ Qt :: ToolButtonTextBesideIcon рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдБ



рдореЗрдиреВ рдЖрдЗрдХрди рдореИрдХ рдкрд░ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рдХреЗрдбреАрдИ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред GNOME рдореЗрдВ, рдпрд╣ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рд╣рдорд╛рд░реА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ "рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛":



void QAction :: setIconVisibleInMenu ( bool visible ) <br/>

QApplication :: setAttribute ( Qt :: AA_DontShowIconsInMenus ) ;








рдЧрдиреЛрдо рдФрд░ рдореИрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рдХреЗрдбреАрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ (рдФрд░ рд░рджреНрдж) рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдореЗрдВ рд▓рд┐рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ, рдЬрдм рддрдХ рдХрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдмрдЯрди рджрдмрд╛рдП рдмрд┐рдирд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ред



рдПрдордбреАрдЖрдИ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ: рдореИрдХ рдФрд░ рдЬреАрдЯреАрдХреЗ + рдЙрдирдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ, рд╡реЗ рдЕрднреА рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рддрд░рд╣ рдпрд╣ рдЕрдм рдПрдХ рдЖрдзреБрдирд┐рдХ рдУрдПрд╕ рдХреА рдЫрд╡рд┐ рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред



рдпрджрд┐ рдЖрдкрдХреЛ рдХреБрдЫ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рдВрдХреНрд╢рди (WinAPI, рдХреЛрдХреЛ ...) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдореИрдХреНрд░реЛрдЬрд╝ Q_WS_WIN , W_WS_MAC , Q_WS_X11 , ...

#ifdef Q_WS_WIN <br/>



actionClose -> setShortcut ( QKeySequence ( "Ctrl+Q" ) ) ; <br/>

#endif








рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ QWidget :: winId () рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдкреЙрдЗрдВрдЯрд░ HWND , NSView * рдпрд╛ X11 рд╣реИрдВрдбрд▓ (рд╡рд┐рдВрдбреЛрдЬ, рдореИрдХ рдФрд░ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдХреНрд░рдорд╢рдГ) рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдпрд╣ рдирд╣реАрдВ рднреВрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рд╡рд┐рдВрдбреЛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ - QEvent :: WinIdChange рдШрдЯрдирд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреАред



рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдбрд┐рдкреЗрдВрдбреЗрдВрдЯ рдиреЛрдЯреНрд╕





рдореИрдХ




рдЙрдЪреНрдЪ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдРрдк рдЖрдЗрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред



рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдХрд╛рд▓реЗ рдФрд░ рд╕рдлреЗрдж рдЖрдЗрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред



рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдмрд┐рдирд╛ рдПрдХ QMenuBar рдмрдирд╛рдПрдВ, рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдкрд╣рд▓рд╛ QMenuBar рдмрдирд╛рдпрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред



QMainWindow :: setUnifiedTitleAndToolBarOnMac (рдмреВрд▓ рд╕реЗрдЯ) рд╡рд┐рдХрд▓реНрдк рдЖрдкрдХреЗ рдкреИрдирд▓ рдХреЛ рд╡рд┐рдВрдбреЛ рд╢реАрд░реНрд╖рдХ рдХреЗ рд╕рд╛рде рдПрдХ рдкреВрд░реЗ рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдпрд╣ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдХрд░реЗрдВрдЧреЗ

- рдЯреВрд▓рдмрд╛рд░ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛;

- рдмрд┐рдирд╛ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рдХреЗрд╡рд▓ 1 рдкрдВрдХреНрддрд┐ рд╣реЛрдЧреА (рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдКрдкрд░ рдХрдИ рдкреИрдирд▓ рдереЗ - рдПрдХ рд╣реЛрдЧрд╛);

- рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рдореЛрдб рдореЗрдВ, рдкреИрдирд▓ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрдВрдЧреЗ;

рдореИрдХ рдкрд░ рдкреИрдирд▓реЛрдВ рдФрд░ рдЦрд┐рдбрд╝рдХреА рдХреЗ рд╢реАрд░реНрд╖рдХ рдХрд╛ рд╕рдВрдпреЛрдЬрди



рдбреЙрдХ рдореЗрдВ рдПрдХ рдореЗрдиреВ рднреА рд╣реИред рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

QMenu * menu = new QMenu ; <br/>



// ... <br/>

extern void qt_mac_set_dock_menu ( QMenu * ) ; <br/>

qt_mac_set_dock_menu ( menu ) ;






рдореИрдХ рдбреЙрдХ рдореЗрдиреВ



Qt рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрдирд░реНрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдЧрд╛ (рдФрд░ рдирд╛рдо рдмрджрд▓реЗрдВ, рдпрджрд┐ рдХреБрдЫ рднреА рд╣реЛ) рдЖрдкрдХреЗ рдореЗрдиреВ рдХреЗ рдЖрдЗрдЯрдо рдореИрдХ рдкрд░ рдЙрдирдХреЗ рд╕рд╣реА рд╕реНрдерд╛рди рдкрд░ рд╣реИ рдпрджрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ QAction: setMenuRole ( рдореЗрдиреВрд░реЛрд▓ рдореЗрдиреВрд░реЛрд▓) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреВрдорд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдЬрд╛рдЧрд░ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯрд┐рдВрдЪрд░ рдореЗрдиреВ рдХреЛ " рдкреНрд░реЛрдЧреНрд░рд╛рдо тЖТ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ ... " рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред



рдореИрдХ рдкрд░ рд╕рд╣реА рдореЗрдиреВ



X11




рдпрд╣рд╛рдВ, рдореБрдЦреНрдп рдмрд┐рдВрджреБ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд freedesktop.org рдорд╛рдирдХреЛрдВ рдХрд╛ рд╣реЛрдЧрд╛ - рдпрд╣:





рдПрдХ рд╕рд╛рдзрд╛рд░рдг .desktop рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИ:





рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ KDE рдпрд╛ GNOME рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдпрд╣ рдХреИрд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ? рджрд░рдЕрд╕рд▓, рдХреЛрдИ 100% рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдк " DESKTOP_SESSION " рдЪрд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

$ echo $DESKTOP_SESSION <br/>



gnome








рдмреЗрд╢рдХ, рдЧрдиреЛрдо рдФрд░ рдХреЗрдбреАрдИ рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛ред рд╣рдо рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВред



рд╡рд┐рдВрдбреЛрдЬ




рд╡рд┐рдВрдбреЛрдЬ рдкрд░ QSettings рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

QSettings settings ( "HKEY_CURRENT_USER\\...\\Explorer\\Advanced" , QSettings :: NativeFormat ) ; <br/>



bool result = settings. value ( "EnableBalloonTips" , true ) . toBool ( ) ;








рдЖрдк рдбреЙрдЯрдиреЗрдЯ рдпрд╛ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдЬреИрд╕реА рдЦрд╛рд▓ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕рдм рд╕рдорд╛рдзрд╛рди (ftp) рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



рдЖрдк рдмреНрд▓рд░ рдмрд┐рд╣рд╛рдЗрдВрдб (2) рдХреЛ рднреА рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреНрдпреВрдЯреА рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ рдПрдХ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк рд╕реАрдзреЗ WAAPranslucentBackground рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗрдЯ рдХрд░рдХреЗ рдФрд░ рд╡рд┐рдЬреЗрдЯ рдкрд░ WA_NoSystemBackground рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рдж рдХрд░рдХреЗ WinAPI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдлрд╝реБрдЯрдиреЛрдЯ





[рез] - рдкреНрд░рд╕реНрддреБрддрд┐ рдФрд░ рдЙрд╕рдХрд╛ рдкреНрд░рддрд┐рд▓реЗрдЦрди ;

[реи] - Qt рд▓реИрдмреНрд╕ рд╕реЗ рд▓реЗрдЦ " рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдмреНрд▓рд░ рдмрд┐рд╣рд╛рдЗрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ " (рдФрд░ рд▓реЗрдЦ " рд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ рдЦрд┐рдбрд╝рдХреА рдХреЗ рдиреАрдЪреЗ рдзреБрдВрдзрд▓реА рдкреГрд╖реНрдарднреВрдорд┐ рдмрдирд╛рдирд╛ ");

[рей] - рдкреБрдирд░реНрд▓реЗрдЦрди рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб sdiред



рдирдП 365-рджрд┐рди рдореЗрдВ рд╢реБрднрдХрд╛рдордирд╛рдПрдБ!



All Articles