<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog de Michaël Todorovic - AD, Exchange, OCS &#187; Qt4</title>
	<atom:link href="https://blog.developpez.com/michael/pcategory/qt4/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/michael</link>
	<description></description>
	<lastBuildDate>Mon, 16 Jul 2012 20:44:19 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Comment changer la largeur d&#8217;un QScrollBar</title>
		<link>https://blog.developpez.com/michael/p4136/qt4/comment_changer_la_largeur_d_un_qscrollb</link>
		<comments>https://blog.developpez.com/michael/p4136/qt4/comment_changer_la_largeur_d_un_qscrollb#comments</comments>
		<pubDate>Tue, 28 Aug 2007 17:47:09 +0000</pubDate>
		<dc:creator><![CDATA[Michaël]]></dc:creator>
				<category><![CDATA[Qt4]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Bonjour, Pour des raisons d&#8217;accessibilité, il peut être utile de redimmensionner un QScrollBar. Si vous tentez de faire un resize ou un setGeometry sur votre scrollbar, le résultat ne sera pas à la hauteur de vos attentes. Vous aurez au mieux un rectangle noir autour de votre scrollbar mais sa taille sera restée d&#8217;origine. La solution est malheureusement plus complexe que cela. Vous devez créer un style et réimplémenter QStyle:: pixelMetric(). La création d&#8217;un style [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Bonjour,<br />
Pour des raisons d&rsquo;accessibilité, il peut être utile de redimmensionner un QScrollBar. Si vous tentez de faire un resize ou un setGeometry sur votre scrollbar, le résultat ne sera pas à la hauteur de vos attentes. Vous aurez au mieux un rectangle noir autour de votre scrollbar mais sa taille sera restée d&rsquo;origine. La solution est malheureusement plus complexe que cela. Vous devez créer un style et réimplémenter QStyle:: pixelMetric().<br />
<span id="more-5"></span><br />
La création d&rsquo;un style n&rsquo;est pas chose aisée quand on le fait intégralement mais ici, on se contentera d&rsquo;hériter un style existant. Voici le fichier d&rsquo;entête du style nommé miniStyle.h</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">#ifndef MINISTYLE_H <br />
#define MINISTYLE_H <br />
#include &lt;QtGui&gt; <br />
&nbsp;<br />
&nbsp;<br />
&nbsp;class miniStyle : public QPlastiqueStyle /* on hérite QPlastiqueStyle */ <br />
&nbsp;{ <br />
&nbsp; &nbsp; &nbsp;Q_OBJECT <br />
&nbsp;<br />
&nbsp;public: <br />
&nbsp; &nbsp; &nbsp;miniStyle(); <br />
&nbsp; &nbsp; &nbsp;~miniStyle(); <br />
&nbsp;<br />
&nbsp; &nbsp; &nbsp;/* réimplémentation de pixelMetric */ <br />
&nbsp; &nbsp; &nbsp;int pixelMetric ( PixelMetric metric, const QStyleOption * option , const QWidget * widget ) const; <br />
&nbsp;}; <br />
&nbsp;<br />
&nbsp;<br />
#endif</div></div>
<p>Voici le code du style miniStyle.cpp. Pas besoin de plus <img src="https://blog.developpez.com/michael/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">#include &quot;miniStyle.h&quot; <br />
&nbsp;<br />
miniStyle::miniStyle() <br />
{ <br />
} <br />
&nbsp;<br />
miniStyle::~miniStyle() <br />
{ <br />
} <br />
&nbsp;<br />
int miniStyle::pixelMetric ( PixelMetric metric, const QStyleOption * option, const QWidget * widget &nbsp;) const <br />
{ <br />
&nbsp; switch(metric) <br />
&nbsp; { <br />
&nbsp; &nbsp; case PM_ScrollBarExtent: <br />
&nbsp; &nbsp; &nbsp; return 30; /* on retourne 30 pixels, la largeur du scrollbar */ <br />
&nbsp; &nbsp; &nbsp; break; <br />
&nbsp; &nbsp; default: /* le default est obligatoire sinon vous aurez des erreurs comme quoi plusieurs choses ne sont pas traitées. Dans mon application, je n'ai pas besoin de les traiter mais faites attention dans la votre */ <br />
&nbsp; &nbsp; &nbsp; return 0; <br />
&nbsp;<br />
&nbsp; } <br />
}</div></div>
<p>Il ne reste plus qu&rsquo;à appeler le style lors du lancement de l&rsquo;application. Voici une portion du main.cpp</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[...] <br />
#include &quot;miniStyle.h&quot; <br />
&nbsp;<br />
int main( int argc, char ** argv ) <br />
{ <br />
&nbsp; QApplication app( argc, argv ); <br />
&nbsp; app.setStyle(new miniStyle()); <br />
&nbsp; &nbsp; &nbsp; &nbsp; [...] <br />
}</div></div>
<p>Tous les scrollbars de votre application auront ainsi une largeur de 30 pixels. Il est possible de changer la taille des scrollbars en mettant une variable publique dans votre style qui vous servira à communiquer la taille que vous souhaitez pour votre scrollbar. Il vous suffira de changer sa valeur aux endroits voulus <img src="https://blog.developpez.com/michael/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
<p>Cette solution a été réalisée sous Qt 4.2.1 sous Debian Etch.<br />
Bonne programmation !</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
