<?xml version="1.0" encoding="ISO-8859-1"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Forum du club des développeurs et IT Pro - Qt</title>
		<link>https://www.developpez.net/forums/</link>
		<description><![CDATA[Forum d'entraide technique sur la bibliothèque Qt. Avant de poster -> F.A.Q Qt]]></description>
		<language>fr</language>
		<lastBuildDate>Wed, 06 May 2026 11:07:17 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>15</ttl>
		<image>
			<url>https://forum.developpez.be/images/misc/rss.png</url>
			<title>Forum du club des développeurs et IT Pro - Qt</title>
			<link>https://www.developpez.net/forums/</link>
		</image>
		<item>
			<title><![CDATA[Le framework de développement d'applications multiplateformes Qt 6.11 est disponible]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182844&amp;goto=newpost</link>
			<pubDate>Tue, 24 Mar 2026 16:30:27 GMT</pubDate>
			<description>*Le framework de...</description>
			<content:encoded><![CDATA[<div><b><font size="4">Le framework de développement d'applications multiplateformes Qt 6.11 introduit Qt Canvas Painter, d'importantes améliorations en 3D et de nouvelles fonctionnalités graphiques</font></b> <br />
<br />
<b>Qt 6.11 est désormais disponible en tant que dernière version du framework d'applications multiplateformes dédié aux interfaces utilisateur graphiques et au développement d'applications. Cette mise à jour introduit Qt Canvas Painter, un nouveau module graphique 2D basé sur l'interface matérielle de rendu (Rendering Hardware Interface) pour un dessin accéléré par le matériel. Outre Canvas Painter, cette version apporte des améliorations significatives en matière de visualisation 3D. S'appuyant sur ces mises à jour, Qt 6.11 introduit de nouvelles méthodes pour créer des graphes et interagir avec eux, ainsi que Qt TaskTree, un module en préversion technologique qui propose une approche déclarative des flux de travail asynchrones en C++.</b><br />
<br />
Qt est un framework de développement d'applications multiplateforme permettant de créer des interfaces utilisateur graphiques ainsi que des applications multiplateformes fonctionnant sur diverses plateformes logicielles et matérielles telles que Linux, Windows, macOS, Android ou des systèmes embarqués, avec peu ou pas de modification du code source sous-jacent, tout en conservant le statut d'application native avec des capacités et une vitesse natives.<br />
<br />
Qt 6.11 est désormais disponible en tant que dernière version du framework d'applications multiplateformes dédié aux interfaces utilisateur graphiques et au développement d'applications. Cette mise à jour introduit Qt Canvas Painter, un nouveau module graphique 2D basé sur l'interface matérielle de rendu (Rendering Hardware Interface) pour un dessin accéléré par le matériel. Canvas Painter inclut des fonctionnalités avancées telles que l'anticrénelage réglable, les dégradés de boîte, les ombres, les motifs de grille, les pinceaux de shader personnalisés et les effets de couleur, qui permettent des workflows d'interface utilisateur visuellement riches et efficaces.<br />
<br />
Outre Canvas Painter, cette version apporte des améliorations significatives en matière de visualisation 3D. Screen Space Global Illumination (SSGI) simule les rebonds de lumière en temps réel pour un éclairage plus réaliste, tandis que Screen Space Reflections (SSR) rend les reflets à l'écran à l'aide d'un raymarching basé sur les pixels. Les vecteurs de mouvement par objet permettent d'équilibrer le coût de calcul et la fidélité du rendu. Les utilisateurs de Qt Quick 3D bénéficient également de nouvelles options de personnalisation pour les passes de rendu. Grâce à ces trois améliorations, l'équipe Qt affirme que le framework Qt offre désormais « les mêmes capacités 3D qu'un moteur de jeu ».<br />
<br />
S'appuyant sur ces mises à jour, Qt 6.11 introduit de nouvelles méthodes pour créer des graphes et interagir avec eux, ainsi que Qt TaskTree, un module en préversion technologique qui propose une approche déclarative des flux de travail asynchrones en C++. En définissant les flux de travail comme des recettes réutilisables, les développeurs peuvent automatiser la gestion des tâches de manière plus intuitive.<br />
<br />
Cette version comprend également des améliorations du framework d'interface utilisateur, des capacités 2D supplémentaires, des mises à jour concernant le Web et la connectivité, ainsi qu'une intégration simplifiée de QML et C++.<br />
<br />
<div style="text-align: center;">
<div class="video-container"><iframe class="restrain" title="YouTube video player" width="560" height="315" allowfullscreen src="//www.youtube.com/embed/RX-dcQWcU2w?wmode=transparent&amp;fs=1" frameborder="0"></iframe></div>
</div><br />
Voici un extrait de l'annonce de Qt 6.11 :<br />
<br />
<b><font size="3">Présentation de Qt 6.11</font></b><br />
<br />
La version 6.11 du framework Qt est désormais disponible. Elle offre des performances améliorées, de nouvelles fonctionnalités et techniques en matière de graphisme, de connectivité et de langages, sans oublier une toute nouvelle approche du codage C++ asynchrone. Découvrez-la plus en détail.<br />
<br />
<b>Performances et productivité pour le rendu 2D : Qt Canvas Painter</b><br />
<br />
Cette version introduit une nouvelle méthode moderne de dessin graphique 2D avec Qt : Qt Canvas Painter. Il s'agit d'un nouveau module doté de capacités de rendu graphique 2D impératif, s'appuyant sur l'interface matérielle de rendu (RHI) de Qt. L'accélération matérielle offre des gains de performances notables pour les graphiques de votre interface utilisateur, les benchmarks montrant des accélérations significatives par rapport au module précédent, le backend OpenGL de QPainter.<br />
<br />
Qt Canvas Painter suit de près le contexte 2D familier de HTML Canvas, ce qui rend son utilisation rapide et facile et offre une productivité immédiate.<br />
<br />
Outre les gains de performances et de productivité, ce nouveau module apporte de superbes fonctionnalités avancées. Celles-ci incluent l'anticrénelage réglable, les dégradés et ombres de boîte, les motifs de grille, les pinceaux de shader personnalisés et les effets de couleur, permettant ainsi de créer des interfaces utilisateur modernes et visuellement riches, ainsi que des workflows de dessin efficaces pilotés par le GPU.<br />
<br />
Découvrez de quoi il s'agit dans cette vidéo de présentation d'une minute :<br />
<br />
<div style="text-align: center;">
<div class="video-container"><iframe class="restrain" title="YouTube video player" width="560" height="315" allowfullscreen src="//www.youtube.com/embed/L2RT3HaYN98?wmode=transparent&amp;fs=1" frameborder="0"></iframe></div>
</div><br />
<b>Améliorations apportées à l'un des meilleurs frameworks 3D</b><br />
<br />
Qt a évolué pour offrir les mêmes capacités 3D qu'un moteur de jeu, tout en garantissant des performances élevées et constantes. Cela signifie que les interfaces utilisateur avec Qt Quick 3D fonctionnent de manière fluide, même avec des éléments, des effets ou des animations complexes.<br />
<br />
<b>Nouvelles techniques de rendu en temps réel : SSGI, SSR et vecteurs de mouvement</b><br />
<br />
Alors que Qt 6.10 avait introduit des améliorations au niveau du baking des lightmaps, une technique utilisée pour modéliser l'interaction de la lumière avec les objets statiques, la version 6.11 propose désormais une alternative dynamique à cette technique. Le SSGI (Screen Space Global Illumination) est une technique de rendu permettant de simuler la façon dont la lumière rebondit sur les surfaces à l'écran sous forme d'effet de post-traitement, en réagissant aux changements en temps réel. Le SSGI a toutefois un certain coût en termes de performances, ce qui suggère d'opter pour le baking des lightmaps pour les cibles aux ressources limitées et plutôt pour le SSGI pour les interfaces utilisateur 3D riches, en particulier sur les applications moins sensibles aux performances.<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p675207d1774384636/c-cpp/bibliotheques/qt/framework-developpement-dapplications-multiplateformes-qt-6-11-disponible/1.jpg/" border="0" alt="Nom : 1.jpg
Affichages : 5882
Taille : 60,0 Ko"  style="float: CONFIG" /></div><br />
Une autre technique de rendu en temps réel, nouvelle dans la version 6.11, est le Screen Space Reflections (SSR). Semblable au SSGI, elle utilise ce qui est visible à l'écran, mais pour le rendu des reflets, en effectuant un « raymarching » à travers chaque pixel et en les reflétant en conséquence.<br />
<br />
De plus, grâce aux types SceneEnvironment et ExtendedSceneEnvironment, Qt Quick 3D prend en charge diverses techniques de rendu anti-crénelage des objets 3D. L'anti-crénelage temporel et le flou de mouvement sont particulièrement intéressants pour réduire l'aspect irrégulier des objets en mouvement. Avec Qt 6.11, nous ajoutons la génération de vecteurs de mouvement par objet, ce qui offre un excellent équilibre entre le coût de calcul et la fidélité du rendu.<br />
<br />
<b>Personnalisation avancée des passes de rendu</b><br />
<br />
Pour les utilisateurs qui doivent aller au-delà du pipeline de rendu par défaut parce qu'ils ont besoin d'effets visuels avancés, de performances optimisées ou de l'intégration de techniques personnalisées, Qt Quick 3D offre désormais des options pour personnaliser les passes de rendu. De nouvelles API pour les calques et les balises permettent de spécifier quels éléments doivent être inclus dans différentes parties du pipeline de rendu, de les diriger vers différentes cibles de rendu et de contrôler les passes de rendu individuelles. Utilisez les matériaux existants, enrichissez-les avec des shaders supplémentaires ou remplacez certains aspects des matériaux. Toute cette nouvelle flexibilité est directement accessible depuis QML.<br />
<br />
<b>De nouvelles façons de créer et d'interagir avec des graphiques</b><br />
<br />
En ce qui concerne les graphiques, voici un nouvel exemple Qt, le tableau de bord des éoliennes, qui montre à quel point vous pouvez créer et combiner de manière flexible des visualisations de données, allant de simples présentations 2D à des graphiques 3D complexes. Les graphiques sont également hautement personnalisables, que ce soit au niveau de leur apparence, de leurs étiquettes ou des interactions avec l'utilisateur.<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p675208d1774384642/c-cpp/bibliotheques/qt/framework-developpement-dapplications-multiplateformes-qt-6-11-disponible/2.jpg/" border="0" alt="Nom : 2.jpg
Affichages : 429
Taille : 62,3 Ko"  style="float: CONFIG" /></div><br />
Dans cet nouvel exemple, vous pouvez constater que les graphiques 3D prennent désormais en charge plusieurs axes. Utilisez différentes instances d'axe pour les propriétés rowAxis, valueAxis et columnAxis dans QBar3DSeries, ou pour les propriétés axisX, axisY et axisZ dans QScatter3DSeries et QSurface3DSeries. Nous avons ajouté plusieurs nouvelles propriétés aux différents éléments du module Graphs afin d'offrir un meilleur contrôle sur le rendu des graphiques, qu'il s'agisse de remplacer les couleurs de thème pour les axes individuels et les dégradés dans les graphiques en aires, ou de modifier les styles de ligne, de trait et de jonction dans les graphiques linéaires. Les étiquettes dans Bar3DSeries peuvent être personnalisées et positionnées de manière plus flexible, QDateTimeAxis peut prendre en charge un fuseau horaire et permet le panoramique et le zoom, et des propriétés telles que QSplineSeries::optimized et GraphsItem3D.cutoffMargin permettent un réglage plus fin.<br />
<br />
Et si cela ne suffit pas, le nouveau type CustomSeries permet la mise en œuvre de graphiques entièrement personnalisés où un délégué défini par l'utilisateur rend chaque point de données.<br />
<br />
<b>Une approche déclarative du codage asynchrone : Qt TaskTree</b><br />
<br />
Qt TaskTree est un nouveau module, disponible dans Qt 6.11 en avant-première technologique.<br />
<br />
Qt TaskTree apporte une perspective entièrement nouvelle à la conception des API dans Qt, en introduisant une approche de description déclarative en C++. Un flux de travail asynchrone est exprimé sous forme de description déclarative via une recette, un objet réutilisable transmis à un arbre de tâches, qui gère alors automatiquement le flux de travail en conséquence. Cela sépare clairement le flux de travail du code standard, rendant le code beaucoup plus lisible que les approches traditionnelles. L'arbre de tâches se charge des tâches fastidieuses à votre place, et vous disposez d'un flux de travail, même complexe, décrit de manière claire et précise en un seul endroit.<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p675209d1774384649/c-cpp/bibliotheques/qt/framework-developpement-dapplications-multiplateformes-qt-6-11-disponible/3.jpg/" border="0" alt="Nom : 3.jpg
Affichages : 428
Taille : 51,8 Ko"  style="float: CONFIG" /></div><br />
De plus, Qt TaskTree résout le problème des incompatibilités entre les API en regroupant diverses API asynchrones au sein d'une interface commune, ce qui permet d'adapter n'importe quelle tâche asynchrone pour qu'elle fonctionne avec le module.<br />
<br />
<b>Autres améliorations notables</b><br />
<br />
Parmi les autres améliorations majeures de la version Qt 6.11, citons des ajouts au framework d'interface utilisateur, une connexion plus facile aux services web et d'autres améliorations de connectivité, ainsi qu'une intégration plus aisée de QML et C++.<br />
<br />
<b>Source</b> : <a rel="nofollow" href="https://www.qt.io/blog/qt-6.11-released" target="_blank">Annonce de Qt 6.11</a><br />
<br />
<b>Et vous ?</b><br />
<br />
:fleche: Pensez-vous que cette annonce est crédible ou pertinente ?<br />
:fleche: Quel est votre avis sur le sujet ?<br />
<br />
<b>Voir aussi :</b><br />
<br />
:fleche: <a href="https://qt.developpez.com/actu/376545/Qt-6-10-la-derniere-version-du-framework-de-developpement-d-applications-multiplateforme-est-disponible-avec-le-backend-audio-PipeWire-et-de-nombreuses-autres-ameliorations/" target="_blank">Qt 6.10, la dernière version du framework de développement d'applications multiplateforme, est disponible avec le backend audio PipeWire et de nombreuses autres améliorations</a><br />
<br />
:fleche: <a href="https://qt.developpez.com/actu/381152/Qt-Creator-19-l-EDI-multiplateforme-pour-Cplusplus-JavaScript-Python-et-QML-est-disponible-proposant-une-mini-carte-une-configuration-simplifiee-des-appareils-distants-et-un-serveur-MCP/" target="_blank">Qt Creator 19, l'EDI multiplateforme pour C++, JavaScript, Python et QML, est disponible, proposant une mini-carte, une configuration simplifiée des appareils distants et un serveur MCP</a><br />
<br />
:fleche: <a href="https://edi.developpez.com/actu/376856/La-version-4-8-de-Qt-Design-Studio-l-environnement-de-developpement-d-interfaces-graphiques-est-disponible-avec-un-nouveau-modele-de-code-QML-et-avec-Project-Storage-une-mise-a-niveau-du-backend/" target="_blank">La version 4.8 de Qt Design Studio, l'environnement de développement d'interfaces graphiques, est disponible avec un nouveau modèle de code QML et avec Project Storage, une mise à niveau du backend</a></div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p675207d1774384636/c-cpp/bibliotheques/qt/framework-developpement-dapplications-multiplateformes-qt-6-11-disponible/1.jpg/" alt="" />&nbsp;<img class="attach" src="https://www.developpez.net/forums/attachments/p675208d1774384642/c-cpp/bibliotheques/qt/framework-developpement-dapplications-multiplateformes-qt-6-11-disponible/2.jpg/" alt="" />&nbsp;<img class="attach" src="https://www.developpez.net/forums/attachments/p675209d1774384649/c-cpp/bibliotheques/qt/framework-developpement-dapplications-multiplateformes-qt-6-11-disponible/3.jpg/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f376/c-cpp/bibliotheques/qt/">Qt</category>
			<dc:creator>Alex</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182844/c-cpp/bibliotheques/qt/framework-developpement-d-applications-multiplateformes-qt-6-11-disponible/</guid>
		</item>
		<item>
			<title>Qt Installer Framework : comment créer une page avec un mot de passe vérifié ?</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2180194&amp;goto=newpost</link>
			<pubDate>Thu, 30 Oct 2025 13:12:29 GMT</pubDate>
			<description>Bonjour à tous,  
Je me lance...</description>
			<content:encoded><![CDATA[<div>Bonjour à tous, <br />
Je me lance pour créer un installeur de mon application. Il me faut une fenêtre avec un mot de passe à déterminer et une vérification de ce de mot de passe. <br />
J'ai trouvé la façon de faire sur internet mais, si je vois ma fenêtre à l'écran, la vérification de ne se fait pas ... J'ai pourtant l'impression de bien écrire le code ... Je ne passe pas dans la fonction DynamicPasswordPageValidatePage() ...<br />
<br />
De plus, le fichier associé ne se crée pas non plus ... Des idées ? Merci d'avance ... <br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
package.xml : 
&nbsp;
&lt;Package&gt;
    &lt;DisplayName&gt;SMSP_NG&lt;/DisplayName&gt;
    &lt;Description&gt;Install of SMSP-NG <span style="color: #0000ff;">for</span> SMS4 maintenance&lt;/Description&gt;
    &lt;Version&gt;<span style="color: #cc66cc;">1.0</span>.<span style="color: #cc66cc;">0</span>&lt;/Version&gt;
    &lt;ReleaseDate&gt;<span style="color: #cc66cc;">2025</span>-<span style="color: #cc66cc;">10</span>-<span style="color: #cc66cc;">23</span>&lt;/ReleaseDate&gt;
    &lt;Script&gt;installscriptSMSP_NG.qs&lt;/Script&gt;
&nbsp;
	&lt;!-- Tout est coch&eacute; par d&eacute;faut --&gt;
	&lt;Default&gt;<span style="color: #0080ff;">true</span>&lt;/Default&gt;
&nbsp;
	&lt;!-- ajout de la fen&ecirc;tre du mot de passe --&gt;
	&lt;UserInterfaces&gt;
		&lt;UserInterface&gt;PasswordPage.ui&lt;/UserInterface&gt;
	&lt;/UserInterfaces&gt;
&nbsp;
&lt;/Package&gt;</pre></td></tr></table></code><hr />
</div>et installscriptSMSP_NG.qs:<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="40"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br />119<br />120<br />121<br />122<br />123<br />124<br />125<br />126<br />127<br />128<br />129<br />130<br />131<br />132<br />133<br />134<br />135<br />136<br />137<br />138<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #808080;">// ===============================</span>
<span style="color: #808080;">// &#128995; Creation de l'installeur et Initialisation de la page mot de passe</span>
<span style="color: #808080;">// ===============================</span>
function Component<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
&nbsp;
        <span style="color: #808080;">// Ajouter la page personnalis&eacute;e avant la page &quot;ReadyForInstallation&quot;</span>
	component.loaded.connect<span style="color: black;">&#40;</span><span style="color: #0000ff;">this</span>, Component.prototype.installerLoaded<span style="color: black;">&#41;</span>;
&nbsp;
	<span style="color: #808080;">// Cacher la page de s&eacute;lection des composants: pour que tout s'installe il faut que dans le package.xml, on ait &lt;default&gt;true&lt;default&gt;</span>
	installer.setDefaultPageVisible<span style="color: black;">&#40;</span><span style="color: #a020a0;font-weight: 700;">QInstaller</span>.ComponentSelection, <span style="color: #0080ff;">false</span><span style="color: black;">&#41;</span>;
	installer.setDefaultPageVisible<span style="color: black;">&#40;</span><span style="color: #a020a0;font-weight: 700;">QInstaller</span>.LicenseCheck, <span style="color: #0080ff;">false</span><span style="color: black;">&#41;</span>;
<span style="color: black;">&#125;</span>
&nbsp;
Component.prototype.installerLoaded = function <span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
    <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>installer.addWizardPage<span style="color: black;">&#40;</span>component, <span style="color: #FF0000;">&quot;DynamicPasswordPage&quot;</span>, <span style="color: #a020a0;font-weight: 700;">QInstaller</span>.ReadyForInstallation<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        var welcomePage = gui.pageWidgetByObjectName<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;DynamicPasswordPage&quot;</span><span style="color: black;">&#41;</span>;
        welcomePage.title = <span style="color: #FF0000;">&quot;Welcome to the SMSP-NG installer&quot;</span>;
        welcomePage.MessageLabel.text = <span style="color: #FF0000;">&quot;SMSP-NG installation for SMS4 maintenance.&quot;</span>;
&nbsp;
        var imageLabel = <span style="color: #0000ff;">new</span> <span style="color: #a020a0;font-weight: 700;">QLabel</span><span style="color: black;">&#40;</span>welcomePage.widget<span style="color: black;">&#41;</span>;
        var pixmap = <span style="color: #0000ff;">new</span> <span style="color: #a020a0;font-weight: 700;">QPixmap</span><span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;avion.png&quot;</span><span style="color: black;">&#41;</span>;
        imageLabel.setPixmap<span style="color: black;">&#40;</span>pixmap<span style="color: black;">&#41;</span>;
        imageLabel.setAlignment<span style="color: black;">&#40;</span><span style="color: #a020a0;font-weight: 700;">Qt</span>.AlignCenter<span style="color: black;">&#41;</span>;
        imageLabel.setScaledContents<span style="color: black;">&#40;</span><span style="color: #0080ff;">true</span><span style="color: black;">&#41;</span>;
        imageLabel.resize<span style="color: black;">&#40;</span><span style="color: #cc66cc;">400</span>, <span style="color: #cc66cc;">200</span><span style="color: black;">&#41;</span>;
&nbsp;
        var layout = welcomePage.widget.layout<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
        <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>layout<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
            layout.addWidget<span style="color: black;">&#40;</span>imageLabel<span style="color: black;">&#41;</span>;
        <span style="color: black;">&#125;</span>
		<span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
			console.log<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Page Welcome introuvable&quot;</span><span style="color: black;">&#41;</span>;
		<span style="color: black;">&#125;</span>
    <span style="color: black;">&#125;</span>
<span style="color: black;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #808080;">// ===============================</span>
<span style="color: #808080;">// &#128995; Validation du formulaire</span>
<span style="color: #808080;">// ===============================</span>
Component.prototype.DynamicPasswordPageValidatePage  = function<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
&nbsp;
	console.log<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;DynamicPasswordPageValidatePage: OK&quot;</span><span style="color: black;">&#41;</span>;	
&nbsp;
    var page = gui.pageWidgetByObjectName<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;DynamicPasswordPage&quot;</span><span style="color: black;">&#41;</span>;
    <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>!page<span style="color: black;">&#41;</span>
	<span style="color: black;">&#123;</span>
		console.log<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;page not found&quot;</span><span style="color: black;">&#41;</span>;	
        <span style="color: #0000ff;">return</span> <span style="color: #0080ff;">true</span>;
	<span style="color: black;">&#125;</span>
&nbsp;
	page.title = <span style="color: #FF0000;">&quot;Security for SMSP-NG&quot;</span>;
    page.subtitle = <span style="color: #FF0000;">&quot;Create an administrator password for the application&quot;</span>;
	<span style="color: #808080;">//page.windowTitle = &quot;Security for SMSP-NG \nCreate an administrator password for the application&quot;;</span>
	<span style="color: #808080;">//page.description.setText(&quot;Create an administrator password for the application&quot;);	</span>
&nbsp;
    var pw = page.findChild<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;QLineEdit&quot;</span>, <span style="color: #FF0000;">&quot;passwordField&quot;</span><span style="color: black;">&#41;</span>;
    var pwc = page.findChild<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;QLineEdit&quot;</span>, <span style="color: #FF0000;">&quot;confirmField&quot;</span><span style="color: black;">&#41;</span>;
&nbsp;
    <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>!pw.text || pw.text.length &lt; <span style="color: #cc66cc;">6</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        gui.messageBox<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;warning&quot;</span>, <span style="color: #FF0000;">&quot;Error&quot;</span>, <span style="color: #FF0000;">&quot;The password must contain at least 6 characters!&quot;</span><span style="color: black;">&#41;</span>;
        <span style="color: #0000ff;">return</span> <span style="color: #0080ff;">false</span>;
    <span style="color: black;">&#125;</span>
&nbsp;
    <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>pw.text !== pwc.text<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        gui.messageBox<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;warning&quot;</span>, <span style="color: #FF0000;">&quot;Error&quot;</span>, <span style="color: #FF0000;">&quot;The passwords are different!&quot;</span><span style="color: black;">&#41;</span>;
        <span style="color: #0000ff;">return</span> <span style="color: #0080ff;">false</span>;
    <span style="color: black;">&#125;</span>
&nbsp;
    installer.setValue<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;adminPassword&quot;</span>, pw.text<span style="color: black;">&#41;</span>;
&nbsp;
	console.log<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Mot de passe saisi (validatePage) :&quot;</span>, pw.text<span style="color: black;">&#41;</span>;	
&nbsp;
    <span style="color: #0000ff;">return</span> <span style="color: #0080ff;">true</span>;
<span style="color: black;">&#125;</span>;
&nbsp;
<span style="color: #808080;">// ===============================</span>
<span style="color: #808080;">// &#128995; Cr&eacute;ation </span>
<span style="color: #808080;">// ===============================</span>
Component.prototype.createOperations = function<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
<span style="color: black;">&#123;</span>
    component.createOperations<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
&nbsp;
	<span style="color: #808080;">// &#128995; &Eacute;criture du hash + cr&eacute;ation des raccourcis</span>
    var targetDir = installer.value<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;TargetDir&quot;</span><span style="color: black;">&#41;</span>;
	<span style="color: #808080;">//var exePath = &quot;@TargetDir@/SMSP_NG.exe&quot;;</span>
	var exePath = targetDir + <span style="color: #FF0000;">&quot;/SMSP_NG.exe&quot;</span>;
&nbsp;
	<span style="color: #808080;">// &#128272; &Eacute;criture du mot de passe</span>
    var password = installer.value<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;adminPassword&quot;</span><span style="color: black;">&#41;</span>;
	<span style="color: #808080;">//installer.setValue(&quot;adminPassword&quot;, password);</span>
	console.log<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Mot de passe saisi :&quot;</span>, installer.value<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;adminPassword&quot;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>;
&nbsp;
	var filePath = targetDir + <span style="color: #FF0000;">&quot;/SMSP.INI&quot;</span>;
&nbsp;
    <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>password &amp;&amp; password.length &gt; <span style="color: #cc66cc;">0</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        var hash = sha1<span style="color: black;">&#40;</span>password<span style="color: black;">&#41;</span>;
&nbsp;
		component.addOperation<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;CreateFile&quot;</span>, filePath, <span style="color: #FF0000;">&quot;&quot;</span><span style="color: black;">&#41;</span>;
        component.addOperation<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;AppendFile&quot;</span>, filePath, hash + <span style="color: #FF0000;">&quot;<span style="color: #800000;">\n</span>&quot;</span><span style="color: black;">&#41;</span>;
    <span style="color: black;">&#125;</span>
	<span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
        console.log<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;No password to write&quot;</span><span style="color: black;">&#41;</span>;
	<span style="color: black;">&#125;</span>
&nbsp;
	<span style="color: #808080;">// &#128421;&#65039; Raccourci Bureau</span>
    component.addOperation<span style="color: black;">&#40;</span>
		<span style="color: #FF0000;">&quot;CreateShortcut&quot;</span>, 
		exePath, 
		<span style="color: #FF0000;">&quot;@DesktopDir@/SMSP_NG.lnk&quot;</span>,
		<span style="color: #FF0000;">&quot;workingDirectory=@TargetDir@&quot;</span>, 
		<span style="color: #FF0000;">&quot;iconPath=&quot;</span> + exePath
	<span style="color: black;">&#41;</span>;
&nbsp;
	<span style="color: #808080;">// &#129695; Raccourci Menu D&eacute;marrer</span>
    component.addOperation<span style="color: black;">&#40;</span>
		<span style="color: #FF0000;">&quot;CreateShortcut&quot;</span>, 
		exePath, 
		<span style="color: #FF0000;">&quot;@StartMenuDir@/SMSP_NG.lnk&quot;</span>,
		<span style="color: #FF0000;">&quot;workingDirectory=@TargetDir@&quot;</span>, 
		<span style="color: #FF0000;">&quot;iconPath=&quot;</span> + exePath
	<span style="color: black;">&#41;</span>;
&nbsp;
	console.log<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;TargetDir:&quot;</span>, installer.value<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;TargetDir&quot;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>;
	console.log<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Password:&quot;</span>, installer.value<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;adminPassword&quot;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>;
	console.log<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;File path:&quot;</span>, targetDir + <span style="color: #FF0000;">&quot;/SMSP.INI&quot;</span><span style="color: black;">&#41;</span>;	
	console.log<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Password hash:&quot;</span>, hash<span style="color: black;">&#41;</span>;	
&nbsp;
<span style="color: black;">&#125;</span>
&nbsp;
<span style="color: #808080;">// ===============================</span>
<span style="color: #808080;">// &#128272; SHA-1 identique &agrave; Qt</span>
<span style="color: #808080;">// ===============================</span>
function sha1<span style="color: black;">&#40;</span>msg<span style="color: black;">&#41;</span>
<span style="color: black;">&#123;</span>
    ...
<span style="color: black;">&#125;</span></pre></td></tr></table></code><hr />
</div></div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f376/c-cpp/bibliotheques/qt/">Qt</category>
			<dc:creator>Joccy</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2180194/c-cpp/bibliotheques/qt/qt-installer-framework-creer-page-passe-verifie/</guid>
		</item>
		<item>
			<title>Qt 6.10 est disponible avec le backend audio PipeWire et de nombreuses autres améliorations</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2179740&amp;goto=newpost</link>
			<pubDate>Wed, 08 Oct 2025 18:00:36 GMT</pubDate>
			<description>*Qt 6.10, la dernière version...</description>
			<content:encoded><![CDATA[<div><b><font size="4">Qt 6.10, la dernière version du framework de développement d'applications multiplateforme, est disponible avec le backend audio PipeWire et de nombreuses autres améliorations</font></b><br />
<br />
<b>Qt 6.10 est désormais disponible en tant que dernière mise à jour fonctionnelle de cette boîte à outils open source et multiplateforme. Dans Qt 6.10, un backend audio PipeWire natif est ajouté au module Qt Multimedia et le module Qt WebEngine prend désormais en charge les extensions Chromium. Qt Graphs a bénéficié d'un certain nombre d'améliorations pour ses capacités graphiques 2D, telles que la prise en charge du survol et la prise en charge multi-axes.</b><br />
<br />
Qt est un framework de développement d'applications multiplateforme permettant de créer des interfaces utilisateur graphiques ainsi que des applications multiplateformes qui fonctionnent sur diverses plateformes logicielles et matérielles telles que Linux, Windows, macOS, Android ou des systèmes embarqués, avec peu ou pas de modifications du code source sous-jacent, tout en restant une application native avec des capacités et une vitesse natives.<br />
<br />
Qt 6.10 est désormais disponible en tant que dernière mise à jour fonctionnelle de cette boîte à outils open source et multiplateforme. Dans Qt 6.10, un backend audio PipeWire natif est ajouté au module Qt Multimedia et le module Qt WebEngine prend désormais en charge les extensions Chromium. Qt Graphs a bénéficié d'un certain nombre d'améliorations pour ses capacités graphiques 2D, telles que la prise en charge du survol et la prise en charge multi-axes. QRhi de Qt GUI prend désormais en charge l'énumération des adaptateurs graphiques 3D lors de l'exécution sur Direct3D 11/12 ou Vulkan.<br />
<br />
Cette version apporte également des améliorations des performances pour QGrpcHttp2Channel et diverses améliorations en matière d'accessibilité. Qt 6.10 ajoute l'outil lottietoqml pour convertir les fichiers Lottie en scènes Qt Quick dans QML. Il existe également un plug-in VectorImage qui permet de charger directement des fichiers Lottie en plus des fichiers SVG. Pour cette version, on peut également citer : prise en charge des pages de 16 Ko sur Android, gestion des sessions Wayland, notifications de réinitialisation graphique pouvant être utilisées par des applications telles que KDE KWin et prise en charge de Yocto 5.2 avec Boot to Qt.<br />
<br />
<div style="text-align: center;">
<div class="video-container"><iframe class="restrain" title="YouTube video player" width="560" height="315" allowfullscreen src="//www.youtube.com/embed/L2HQkTA4pmY?wmode=transparent&amp;fs=1" frameborder="0"></iframe></div>
</div><br />
Voici un extrait de l'annonce de Qt 6.10 :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Citation:</div>
	<div class="bbcode_quote printable">
		<hr />
		
			<br />
<b>Améliorations en matière d'accessibilité</b><br />
<br />
Le mode contraste élevé est devenu une fonctionnalité clé des principaux systèmes d'exploitation pour améliorer la clarté visuelle et la convivialité. Avec la sortie de Qt 6.10, nous alignons nos styles intégrés sur les paramètres de contraste spécifiques à chaque plateforme. Cela rend vos applications visuellement cohérentes avec le reste de l'expérience utilisateur et plus accessibles à un plus large éventail d'utilisateurs. De plus, vous pourrez plus facilement vous conformer aux différentes réglementations en matière d'accessibilité.<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p670827d1759979360/c-cpp/bibliotheques/qt/qt-6-10-disponible-backend-audio-pipewire-nombreuses-autres-ameliorations/1.jpg/" border="0" alt="Nom : 1.jpg
Affichages : 8429
Taille : 56,3 Ko"  style="float: CONFIG" /></div><br />
<b>Mise en page Flexbox</b><br />
<br />
Qt propose depuis longtemps une variété de types de mise en page qui organisent automatiquement les composants de l'interface utilisateur au sein d'une interface utilisateur. Les mises en page de Qt sont particulièrement bien adaptées à la création d'interfaces réactives et redimensionnables, ce qui est idéal pour créer des interfaces utilisateur qui doivent fonctionner sur diverses plateformes, avec différentes tailles d'écran et différents formats. Cela permet également de créer une interface utilisateur unique qui peut être traduite dans des langues avec des longueurs de texte variables, ou lorsque les utilisateurs préfèrent différentes tailles de police.<br />
<br />
Avec Qt 6.10, un nouveau type FlexboxLayout vient s'ajouter aux types de mise en page existants dans Qt Quick. FlexboxLayout de Qt offre des fonctionnalités similaires à celles de Flexible Box Layout de CSS, tout en s'intégrant étroitement aux concepts familiers du mécanisme de mise en page de Qt Quick, tels que les propriétés attachées pour configurer le comportement des éléments individuels dans la mise en page.<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p670828d1759979366/c-cpp/bibliotheques/qt/qt-6-10-disponible-backend-audio-pipewire-nombreuses-autres-ameliorations/2.jpg/" border="0" alt="Nom : 2.jpg
Affichages : 1082
Taille : 18,4 Ko"  style="float: CONFIG" /></div><br />
<b>QRangeModel</b><br />
<br />
L'une des nouvelles classes de Qt 6.10 est QRangeModel, une implémentation QAbstractItemModel légère et polyvalente conçue pour exposer les plages C++, telles que std::vector, std::array ou tout conteneur itérable, directement aux vues d'éléments dans Widgets, ainsi qu'aux vues QML et Qt Quick. Que les données soient constituées de valeurs simples comme des entiers ou de types plus complexes comme Q_GADGETs ou std::tuples, QRangeModel génère automatiquement les rôles appropriés et rend les données accessibles dans les délégués sans nécessiter de code modèle standard. Par exemple, un std::vector&lt;int&gt; peut être encapsulé dans un QRangeModel et utilisé dans une interface utilisateur Qt Widgets comme ceci :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
std::vector&lt;<span style="color: #0000ff;">int</span>&gt; values = <span style="color: black;">&#123;</span><span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">2</span>, <span style="color: #cc66cc;">3</span>, <span style="color: #cc66cc;">4</span>, <span style="color: #cc66cc;">5</span><span style="color: black;">&#125;</span>;
<span style="color: #0000ff;">auto</span> model = <span style="color: #0000ff;">new</span> <span style="color: #a020a0;font-weight: 700;">QRangeModel</span><span style="color: black;">&#40;</span>values<span style="color: black;">&#41;</span>;
<span style="color: #a020a0;font-weight: 700;">QListView</span> *listView = <span style="color: #0000ff;">new</span> <span style="color: #a020a0;font-weight: 700;">QListView</span>;
listView-&gt;setModel<span style="color: black;">&#40;</span>model<span style="color: black;">&#41;</span>;</pre></td></tr></table></code><hr />
</div><br />
<br />
Lorsqu'il est utilisé avec des gadgets, QRangeModel expose automatiquement chaque propriété en tant que rôle nommé, ce qui permet aux délégués QML de s'y lier à l'aide des propriétés requises. Prenons par exemple un gadget représentant une valeur étiquetée :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">struct</span> LabeledValue <span style="color: black;">&#123;</span>
    <span style="color: #a020a0;font-weight: 700;">Q_GADGET</span>
    <span style="color: #0000ff;">Q_PROPERTY</span><span style="color: black;">&#40;</span><span style="color: #0000ff;">int</span> value <span style="color: #a020a0;font-weight: 700;">MEMBER</span> value<span style="color: black;">&#41;</span>
    <span style="color: #0000ff;">Q_PROPERTY</span><span style="color: black;">&#40;</span><span style="color: #a020a0;font-weight: 700;">QString</span> label <span style="color: #a020a0;font-weight: 700;">MEMBER</span> label<span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #0000ff;">public</span>:
    <span style="color: #0000ff;">int</span> value;
    <span style="color: #a020a0;font-weight: 700;">QString</span> label;
<span style="color: black;">&#125;</span>;</pre></td></tr></table></code><hr />
</div><br />
<br />
Vous pouvez créer un modèle à partir d'un std::vector comme ceci :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br /></div></td><td valign="top"><pre style="margin: 0">std::vector&lt;LabeledValue&gt; data = <span style="color: black;">&#123;</span>
    <span style="color: black;">&#123;</span><span style="color: #cc66cc;">1</span>, <span style="color: #FF0000;">&quot;One&quot;</span><span style="color: black;">&#125;</span>, <span style="color: black;">&#123;</span><span style="color: #cc66cc;">2</span>, <span style="color: #FF0000;">&quot;Two&quot;</span><span style="color: black;">&#125;</span>, <span style="color: black;">&#123;</span><span style="color: #cc66cc;">3</span>, <span style="color: #FF0000;">&quot;Three&quot;</span><span style="color: black;">&#125;</span>
<span style="color: black;">&#125;</span>;
<span style="color: #0000ff;">auto</span> labeledValues = <span style="color: #0000ff;">new</span> <span style="color: #a020a0;font-weight: 700;">QRangeModel</span><span style="color: black;">&#40;</span>data<span style="color: black;">&#41;</span>;</pre></td></tr></table></code><hr />
</div><br />
<br />
Et dans QML, vous pouvez utiliser les propriétés requises dans le délégué pour vous lier aux rôles du modèle de manière sécurisée :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br /></div></td><td valign="top"><pre style="margin: 0">ListView <span style="color: black;">&#123;</span>
    model: modelProvider.labeledValues
&nbsp;
    delegate: Item <span style="color: black;">&#123;</span>
        required property <span style="color: #0000ff;">int</span> value
        required property string label
&nbsp;
        width: ListView.view.width
        height: <span style="color: #cc66cc;">40</span>
&nbsp;
        Text <span style="color: black;">&#123;</span>
            anchors.centerIn: parent
            text: label + <span style="color: #FF0000;">&quot; (&quot;</span> + value + <span style="color: #FF0000;">&quot;)&quot;</span>
        <span style="color: black;">&#125;</span>
    <span style="color: black;">&#125;</span>
<span style="color: black;">&#125;</span></pre></td></tr></table></code><hr />
</div><br />
<br />
Ce modèle élimine le besoin de gérer manuellement les rôles ou les propriétés de contexte, et fonctionne de manière transparente avec QML compilé. Cela facilite la connexion entre le C++ moderne et QML, sans aucune implémentation standard de QAbstractItemModel.<br />
<br />
<b>Liaisons bidirectionnelles avec Synchronizer</b><br />
<br />
Les liaisons bidirectionnelles ou multi-synchronisation ont souvent été demandées. Dans Qt 6.10, l'élément Synchronizer a été introduit. Avec un Synchronizer, vous pouvez vous assurer que plusieurs propriétés conservent la même valeur dans la mesure du possible, sans pour autant rompre les liaisons dans l'une ou l'autre. Avant Synchronizer, vous deviez généralement disposer d'une liaison et d'un gestionnaire de signaux pour synchroniser un contrôle avec une valeur de modèle, et cela ne fonctionnait que pour les contrôles implémentés en C++.<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br /></div></td><td valign="top"><pre style="margin: 0">delegate: Row <span style="color: black;">&#123;</span>
    id: delegate
    required property <span style="color: #0000ff;">int</span> value
    required property string label
&nbsp;
    SpinBox <span style="color: black;">&#123;</span>
        value: delegate.value
&nbsp;
        <span style="color: #808080;">// Extra signal, only for input</span>
        onValueModified: delegate.value = value
    <span style="color: black;">&#125;</span>
&nbsp;
    Text <span style="color: black;">&#123;</span> text: delegate.label <span style="color: black;">&#125;</span>
<span style="color: black;">&#125;</span></pre></td></tr></table></code><hr />
</div><br />
<br />
Avec Synchronizer, vous n'avez besoin que d'un seul élément pour effectuer la synchronisation, cela fonctionne pour n'importe quel nombre de propriétés à synchroniser, et les cibles peuvent être implémentées en C++ ou QML.<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br /></div></td><td valign="top"><pre style="margin: 0">delegate: Row <span style="color: black;">&#123;</span>
    id: delegate
    required property <span style="color: #0000ff;">int</span> value
    required property string label
&nbsp;
    SpinBox <span style="color: black;">&#123;</span>
        Synchronizer on value <span style="color: black;">&#123;</span>
            property alias source: delegate.value
        <span style="color: black;">&#125;</span>
    <span style="color: black;">&#125;</span>
&nbsp;
    Text <span style="color: black;">&#123;</span> text: delegate.label <span style="color: black;">&#125;</span>
<span style="color: black;">&#125;</span></pre></td></tr></table></code><hr />
</div><br />
<br />
<b>Améliorations pour les développeurs Android</b><br />
<br />
Qt 6.10 comprend un certain nombre d'améliorations qui rendent la plate-forme Android plus conviviale pour les développeurs, ajoute la prise en charge des dernières versions d'Android et facilite la création d'une bonne première impression pour votre application.<br />
<br />
<b>Prise en charge d'Android 15 et 16</b><br />
<br />
Avec Qt 6.10, nous prenons officiellement en charge Android 15 et 16. Cela inclut des mises à jour du système de compilation et la prise en charge des pages 16K, ce qui vous permet de cibler les appareils Android les plus récents. Cette prise en charge garantit que les applications Qt restent stables et performantes dans l'écosystème Android en constante évolution.<br />
<br />
<b>Qt Jenny 1.0</b><br />
<br />
Qt Jenny 1.0 est un nouvel outil qui simplifie l'intégration des API Java Android dans les applications Qt. Il agit comme un générateur de code pour le code JNI glue, permettant aux développeurs de générer automatiquement des API Qt C++ à partir de classes Java annotées. Qt Jenny se compose d'un compilateur et d'un processeur d'annotation, permettant d'accéder à des services natifs Android tels que BatteryManager, PowerManager et AudioManager à partir du code Qt. Le code généré utilise QJniObject et prend également en charge les notifications, qui sont assez complexes à mettre en œuvre via JNI. Qt Jenny est disponible via Maven Central, et des exemples sont inclus dans Qt Creator et la documentation en ligne pour aider les développeurs à démarrer rapidement.<br />
<br />
<b>Amélioration de la gestion de l'écran de démarrage</b><br />
<br />
Depuis qu'Android 12 a introduit une API d'écran de démarrage par défaut, les applications Qt devaient veiller à ne pas afficher deux écrans de démarrage : celui d'Android, puis celui de Qt. Avec Qt 6.10, nous fournissons des exemples et des conseils pour créer une transition fluide entre l'écran de démarrage Android et celui de Qt. Cela implique d'utiliser une SplashActivity dédiée, de personnaliser les thèmes pour la translucidité et de ne lancer l'activité Qt qu'une fois Android prêt. Il en résulte une expérience de démarrage plus soignée et plus cohérente, en particulier pour les applications multiplateformes.<br />
<br />
<b>macOS et iOS 26</b><br />
<br />
Qt 6.10 est la première version mineure de Qt depuis que macOS 26 « Tahoe » est sorti de sa phase bêta il y a quelques semaines. Au cours des derniers mois, depuis l'annonce en juin, nous avons travaillé pour nous assurer que les applications Qt s'affichent correctement sur les dernières versions de macOS et iOS.<br />
<br />
Le nouveau système de conception Liquid Glass et les modifications apportées à l'architecture de rendu sous-jacente sur macOS nous ont posé quelques défis, et nous sommes heureux d'ajouter macOS 26 à la liste des plateformes entièrement prises en charge par Qt. De nombreuses améliorations seront également intégrées dans les prochaines versions correctives des branches LTS, et macOS 26 sera également pris en charge par les versions Qt 6.8 et Qt 6.5.
			
		<hr />
	</div>
</div><b>Source</b> : <a rel="nofollow" href="https://www.qt.io/blog/qt-6.10-released" target="_blank">Annonce de Qt 6.10</a><br />
<br />
<b>Et vous ?</b><br />
<br />
:fleche: Pensez-vous que ces améliorations sont crédibles ou pertinentes ?<br />
:fleche: Quel est votre avis sur cette mise à jour ?<br />
<br />
<b>Voir aussi :</b><br />
<br />
:fleche: <a href="https://qt.developpez.com/actu/370675/Qt-6-9-est-maintenant-disponible-avec-un-rendu-des-emoji-conforme-aux-derniers-standards-ainsi-que-des-ameliorations-pour-repondre-aux-exigences-modernes-d-OAuth2/" target="_blank">Qt 6.9 est maintenant disponible avec un rendu des emoji conforme aux derniers standards, ainsi que des améliorations pour répondre aux exigences modernes d'OAuth2</a><br />
<br />
:fleche: <a href="https://qt.developpez.com/actu/363629/Qt-6-8-LTS-prend-en-charge-de-nouvelles-plateformes-de-bureau-mobiles-et-embarquees-cette-version-reduit-la-consommation-memoire-de-30-pourcent-et-apporte-un-module-pour-la-realite-augmentee-et-virtuelle/" target="_blank">Qt 6.8 LTS prend en charge de nouvelles plateformes de bureau, mobiles et embarquées. Cette version réduit la consommation mémoire de 30 % et apporte un module pour la réalité augmentée et virtuelle</a></div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p670827d1759979360/c-cpp/bibliotheques/qt/qt-6-10-disponible-backend-audio-pipewire-nombreuses-autres-ameliorations/1.jpg/" alt="" />&nbsp;<img class="attach" src="https://www.developpez.net/forums/attachments/p670828d1759979366/c-cpp/bibliotheques/qt/qt-6-10-disponible-backend-audio-pipewire-nombreuses-autres-ameliorations/2.jpg/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f376/c-cpp/bibliotheques/qt/">Qt</category>
			<dc:creator>Jade Emy</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2179740/c-cpp/bibliotheques/qt/qt-6-10-disponible-backend-audio-pipewire-nombreuses-autres-ameliorations/</guid>
		</item>
		<item>
			<title><![CDATA[Oyez, oyez ! Les machines d'états avec QScxmlStateMachine : simplifier la gestion des états d'un soft.]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2177704&amp;goto=newpost</link>
			<pubDate>Tue, 24 Jun 2025 11:10:17 GMT</pubDate>
			<description>Bonjour, 
 
Qt Creator offre...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Qt Creator offre un outil visuel (State Charts) de conception de machines d'états. Il repose sur l'utilisation de la classe &quot;QScxmlStateMachine&quot;.<br />
<br />
M'étant longuement cassé les dents sur l'emploi de State Charts et de la classe, et l'utilisant maintenant avec un bonheur, j'ai commis un tuto afin de synthétiser ce que j'ai compris.<br />
<br />
Grand merci à @dourouc05 de m'avoir aidé dans la démarche et pour la validation technique. Grand merci également à @f-leb pour ses corrections textuelles impitoyables !<br />
<br />
Voici le lien vers le tuto : <br />
<a href="https://qt.developpez.com/tutoriels/sylvain/qscxmlstatemachine-premiers-pas/" target="_blank"><b>QScxmlStateMachine, premiers pas : génération et utilisation de machine d’états avec Qt Creator et son outil State Chart</b></a><br />
<br />
Comme précisé dans son introduction, ce tuto ne traite pas de la classe &quot;QStateMachine&quot;, qui fait l'objet des cours de Daniel Géron (<a href="https://qt.developpez.com/tutoriels/dgenon/cours-qstatemachine/" target="_blank">https://qt.developpez.com/tutoriels/...qstatemachine/</a>, <a href="https://qt.developpez.com/tutoriels/dgenon/cours-qstatemachine-qstateparallel/" target="_blank">https://qt.developpez.com/tutoriels/...stateparallel/</a>, <a href="https://qt.developpez.com/tutoriels/dgenon/cours-qstatemachine-qhistorystate/" target="_blank">https://qt.developpez.com/tutoriels/...qhistorystate/</a>).<br />
<br />
Bonne lecture !<br />
Sylvain</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f376/c-cpp/bibliotheques/qt/">Qt</category>
			<dc:creator>sylvain1984</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2177704/c-cpp/bibliotheques/qt/oyez-oyez-machines-d-etats-qscxmlstatemachine-simplifier-gestion-etats-d-soft/</guid>
		</item>
		<item>
			<title>Qt Creator 17 est désormais disponible avec un changement majeur pour les projets</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2177647&amp;goto=newpost</link>
			<pubDate>Sat, 21 Jun 2025 09:11:52 GMT</pubDate>
			<description>*Qt Creator 17 est désormais...</description>
			<content:encoded><![CDATA[<div><b><font size="4">Qt Creator 17 est désormais disponible avec un changement majeur pour les projets, une prise en charge améliorée de CMake, Python et C++, ainsi que de nouvelles fonctionnalités et des corrections de bogue</font></b><br />
<br />
<b>Qt Creator 17 est désormais disponible. Il s'agit de la dernière version de cet EDI multiplateforme pour C++, JavaScript, Python et QML qui simplifie le développement d'applications avec une interface utilisateur graphique (GUI). Qt Creator 17 apporte un changement majeur pour les projets, une prise en charge améliorée de CMake et des langages de programmation Python et C++, ainsi que plusieurs autres nouvelles fonctionnalités et corrections de bogue.</b><br />
<br />
Qt Creator est un environnement de développement intégré (EDI) multiplateforme faisant partie du SDK du framework Qt et utilise l'API Qt, qui encapsule les appels de fonction GUI du système d'exploitation hôte. L'EDI intègre directement dans son interface un débogueur visuel et un concepteur intégré de formulaires et de mise en page GUI WYSIWYG, des outils pour la publication de code sur Git et Mercurial ainsi que la documentation Qt. L'éditeur de texte intégré permet l'autocomplétion ainsi que la coloration syntaxique.<br />
<br />
La version 17 de Qt Creator apporte un changement substantiel dans le flux de travail en intégrant les configurations d'exécution à la configuration de compilation, mettant ainsi fin à leur indépendance antérieure. Les développeurs peuvent également copier les valeurs de configuration d'exécution entre différentes configurations de compilation, ce qui rationalise la gestion et le déploiement des projets.<br />
<br />
De plus, l'IDE passe son interface utilisateur par défaut aux thèmes clair et sombre « 2024 », initialement introduits dans Qt Creator 15 et mis à jour dans la version 16. Les utilisateurs rencontrant des échecs CMake dus à des paquets Qt manquants bénéficient désormais d'une option permettant d'installer les composants manquants directement via le programme d'installation en ligne Qt, ce qui rend la configuration du projet plus efficace.<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p668248d1750497060/c-cpp/bibliotheques/qt/qt-creator-17-desormais-disponible-changement-majeur-projets/qt-creator-17-2.png/" border="0" alt="Nom : Qt Creator 17 2.PNG
Affichages : 45804
Taille : 106,7 Ko"  style="float: CONFIG" /></div><br />
Pour les développeurs Python, cette version introduit la possibilité d'ouvrir des projets basés sur pyproject.toml, reflétant les normes modernes en matière de gestion de projets Python. La chaîne d'outils a également été mise à jour, les binaires précompilés exploitant désormais LLVM 20.1.3, qui apporte une prise en charge améliorée du C++.<br />
<br />
S'appuyant sur ces améliorations, la prise en charge de QML a été étendue avec de meilleures options de style de code. La nouvelle version comprend également une intégration Git améliorée et une prise en charge améliorée de la suite Axivion, ainsi que d'autres améliorations générales et corrections de bogues.<br />
<br />
Plus de détails concernant ces nouveautés sont présentés ci-dessous.<br />
<br />
<b><font size="3">Général</font></b><br />
<br />
Les thèmes clair et sombre « 2024 » introduits dans Qt Creator 15 et mis à jour dans Qt Creator 16 sont désormais les thèmes par défaut dans cette nouvelle version. Les utilisateurs peuvent toujours utiliser <i>Préférences &gt; Environnement &gt; Interface &gt; Thème</i> pour sélectionner un thème différent. L'équipe de QT a revu et actualisé les icônes dans Qt Creator afin de les aligner sur le nouveau style visuel et d'obtenir une interface utilisateur plus cohérente.<br />
<br />
Le régistre par défaut des extensions a été déplacé vers GitHub. Plusieurs sources d'extensions peuvent désormais être définies dans <i>Préférences &gt; Extensions &gt; Navigateur</i>, mais cela présente certains risques. Les informations affichées pour les extensions qui ne sont pas encore installées ont également été enrichies, et l'utilisateur peut directement déposer l'archive d'une extension dans le mode Extensions pour l'installer.<br />
<br />
<b><font size="3">Projets</font></b><br />
<br />
Un changement important dans Qt Creator 17 est que les configurations d'exécution font désormais « partie intégrante » de la configuration de compilation. Auparavant, les configurations de compilation et les configurations d'exécution étaient totalement indépendantes. Désormais, chaque configuration d'exécution appartient à une configuration de compilation donnée, et le changement de configuration de compilation active entraîne également le changement de l'ensemble des configurations d'exécution disponibles. Cela répond à un cas d'utilisation fréquemment demandé, à savoir disposer de différents paramètres d'exécution, tels que différents arguments de ligne de commande ou différents environnements pour différentes configurations de compilation, comme Debug ou Release.<br />
<br />
De plus, les développeurs peuvent désormais copier les valeurs d'une configuration d'exécution à une autre, quelle que soit la configuration de compilation à laquelle elles appartiennent, grâce au nouveau bouton « Cloner dans ceci ».<br />
<br />
<b><font size="2">CMake</font></b><br />
<br />
La possibilité d'installer les composants Qt manquants à l'aide du programme d'installation en ligne Qt (si Qt Creator y est lié) lorsque la configuration CMake échoue en raison de paquets Qt manquants a été ajoutée. Cette fonctionnalité repose sur la fonctionnalité <i>Préférences &gt; CMake &gt; Général &gt; Configuration automatique du gestionnaire de paquets</i> de Qt Creator, qui nécessite que le projet soit configuré avec CMake à partir de Qt Creator.<br />
<br />
<b><font size="2">Python</font></b><br />
<br />
La prise en charge de l'ouverture de projets basés sur pyproject.toml dans Qt Creator a été ajoutée. C'est désormais également le comportement par défaut pour les nouveaux projets PySide créés via les assistants de projet de Qt Creator. L'ouverture de projets PySide basés sur .pyproject est toujours prise en charge.<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p668247d1750496977/c-cpp/bibliotheques/qt/qt-creator-17-desormais-disponible-changement-majeur-projets/qt-creator-17-1.png/" border="0" alt="Nom : Qt Creator 17 1.PNG
Affichages : 1755
Taille : 120,2 Ko"  style="float: CONFIG" /></div><br />
<b><font size="3">Édition</font></b><br />
<br />
<b><font size="2">C++</font></b><br />
<br />
Les binaires précompilés ont été mis à niveau vers LLVM 20.1.3 afin d'améliorer la prise en charge de C++. De nouvelles corrections rapides ont été ajoutées pour ajouter les opérateurs littéraux de chaîne de caractères Qt tels que « _ba » ou « _L1 » aux littéraux de chaîne de caractères. Certains problèmes liés aux fonctions intégrées et aux macros de type fonction ont également été corrigés.<br />
<br />
Qt Creator 17 a ajouté des corrections rapides qui visent à faciliter la vie des utilisateurs qui souhaitent utiliser des fonctionnalités Qt qui ne sont pas encore disponibles dans leur projet : lorsqu'un utilisateur essaye d'utiliser dans son code des classes Qt qui ne sont pas trouvées par le modèle de code, une nouvelle correction rapide ajoute l'inclusion correspondante au fichier source et la dépendance de paquet manquante au fichier de projet. Une correction rapide similaire sur les inclusions d'en-têtes Qt qui ne sont pas trouvées ajoute simplement la dépendance de paquet manquante au fichier de projet.<br />
<br />
<b><font size="2">QML</font></b><br />
<br />
Les options de style de code dans <i>Préférences &gt; Qt Quick &gt; Style de code</i> permettent désormais d'utiliser le qmlformat intégré au serveur de langage QML pour le formatage du code, ainsi que le formateur intégré et un formateur personnalisé compatible avec qmlformat. Le reformatage du document est désormais également disponible via le menu contextuel et le menu Outils &gt; QML/JS.<br />
<br />
La barre d'outils de l'éditeur de code QML dispose d'un nouveau bouton pour les fichiers .ui.qml, qui ouvre le fichier dans Qt Design Studio.<br />
<br />
<b><font size="3">Analyseur</font></b><br />
<br />
Pour Axivion, Qt Creator 17 a ajouté la prise en charge des tableaux de bord locaux avec de nouveaux boutons d'outils Local Build et Local Dashboard dans la vue Issues du mode Debug &gt; Axivion. Divers nouveaux paramètres ont également été ajoutés dans <i>Preferences &gt; Analyze &gt; Axivion</i>.<br />
<br />
<b><font size="3">Contrôle de version</font></b><br />
<br />
Pour le contrôle de version Git, Qt Creator 17 a ajouté des variantes pour les différentes actions « diff » qui fonctionnent sur les modifications préparées plutôt que sur les modifications non préparées. L'info-bulle pour <i>Instant Blame</i> dispose désormais d'une nouvelle action permettant d'annuler une modification, et la boîte de dialogue <i>Add Tag</i> permet désormais également de créer des balises annotées.<br />
<br />
Qt Creator 17 est disponible sous forme de mise à jour dans le programme d'installation en ligne Qt (<a rel="nofollow" href="https://www.qt.io/download-dev?hsLang=en" target="_blank">commercial</a>, <a rel="nofollow" href="https://www.qt.io/download-qt-installer-oss?hsLang=en" target="_blank">open source</a>). Des programmes d'installation hors ligne sous licence commerciale sont également disponibles sur le portail Qt Account, et des paquets open source sont disponibles sur la page de téléchargement open source. Cette mise à jour est gratuite pour tous les utilisateurs.<br />
<br />
<b>À propos de Qt Group</b><br />
<br />
Qt Group est une entreprise mondiale de logiciels qui bénéficie de la confiance des leaders du secteur et de plus de 1,5 million de développeurs à travers le monde pour créer des applications et des appareils intelligents appréciés des utilisateurs. Qt Group propose des solutions multiplateformes, dont Qt Creator, qui aident ses clients à accroître leur productivité tout au long du cycle de vie du développement produit, de la conception de l'interface utilisateur et du développement logiciel à la gestion de la qualité et au déploiement. Ces clients sont présents dans plus de 70 secteurs différents et dans plus de 180 pays. Qt Group a son siège social à Espoo, en Finlande, et emploie près de 900 personnes dans le monde entier.<br />
<br />
<b>Source :</b> <a rel="nofollow" href="https://www.qt.io/" target="_blank">Qt Group</a><br />
<br />
<b>Et vous ?</b><br />
<br />
:fleche: Quel est votre avis sur le sujet ?<br />
:fleche: Trouvez-vous les améliorations apportées à Qt Creator 17 cohérentes et pertinentes ?<br />
<br />
<b>Voir aussi :</b><br />
<br />
:fleche: <a href="https://qt-creator.developpez.com/actu/351140/Qt-Creator-12-est-desormais-disponible-avec-l-integration-du-compilateur-interactif-Compiler-Explorer-et-le-debogage-pour-l-execution-de-scripts-de-compilation-CMake-3-27/" target="_blank">Qt Creator 12 est désormais disponible avec l'intégration du compilateur interactif Compiler Explorer et le débogage pour l'exécution de scripts de compilation CMake 3.27</a><br />
<br />
:fleche: <a href="https://edi.developpez.com/actu/363494/Comparaison-des-outils-de-developpement-de-bureau-Qt-Electron-et-Native-macOS-Objective-C-et-Swift-par-BumbleMeow/" target="_blank">Comparaison des outils de développement de bureau, Qt, Electron et Native macOS (Objective-C et Swift) , par BumbleMeow</a><br />
<br />
:fleche: <a href="https://qt.developpez.com/actu/363629/Qt-6-8-LTS-prend-en-charge-de-nouvelles-plateformes-de-bureau-mobiles-et-embarquees-cette-version-reduit-la-consommation-memoire-de-30-pourcent-et-apporte-un-module-pour-la-realite-augmentee-et-virtuelle/" target="_blank">Qt 6.8 LTS prend en charge de nouvelles plateformes de bureau, mobiles et embarquées, cette version réduit la consommation mémoire de 30 % et apporte un module pour la réalité augmentée et virtuelle</a></div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p668247d1750496977/c-cpp/bibliotheques/qt/qt-creator-17-desormais-disponible-changement-majeur-projets/qt-creator-17-1.png/" alt="" />&nbsp;<img class="attach" src="https://www.developpez.net/forums/attachments/p668248d1750497060/c-cpp/bibliotheques/qt/qt-creator-17-desormais-disponible-changement-majeur-projets/qt-creator-17-2.png/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f376/c-cpp/bibliotheques/qt/">Qt</category>
			<dc:creator>Anthony</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2177647/c-cpp/bibliotheques/qt/qt-creator-17-desormais-disponible-changement-majeur-projets/</guid>
		</item>
		<item>
			<title><![CDATA[Webinaire en replay – Sécuriser l'industrie connectée, par Qt Group]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2177234&amp;goto=newpost</link>
			<pubDate>Fri, 30 May 2025 12:44:26 GMT</pubDate>
			<description>*Webinaire en replay –...</description>
			<content:encoded><![CDATA[<div><b><font size="4">Webinaire en replay – Sécuriser l'industrie connectée : comprendre et anticiper les réglementations européennes en matière de cybersécurité</font></b><br />
<br />
Alors que l’industrie 4.0 s’accélère, les infrastructures critiques, les équipements industriels et les produits connectés sont devenus des cibles privilégiées pour les cyberattaques. Face à ces menaces croissantes, l’Union européenne a renforcé son arsenal réglementaire pour imposer des exigences strictes de sécurité numérique.<br />
C’est dans ce contexte que Qt Group a organisé un webinaire intitulé : « <i>Sécuriser l'industrie connectée : naviguer dans les réglementations européennes en matière de cybersécurité et les meilleures pratiques</i> »<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p667774d1748609154/c-cpp/bibliotheques/qt/webinaire-replay-securiser-l-industrie-connectee-qt-group/1.jpg/" border="0" alt="Nom : 1.jpg
Affichages : 25966
Taille : 68,8 Ko"  style="float: CONFIG" /></div><br />
<b>Une multiplication des normes, une complexité croissante</b><br />
<br />
Durant ce webinaire, les experts de Qt sont revenus sur les textes clés qui redessinent actuellement le paysage réglementaire européen :<br />
<br />
<ul><li style=""><b>Cyber Resilience Act (CRA)</b> : sécurité dès la conception obligatoire pour tout produit numérique vendu dans l’UE.<br />
<br /></li><li style=""><b>Directive NIS2</b> : élargit considérablement les secteurs et entreprises soumis à des obligations de cybersécurité renforcées.<br />
<br /></li><li style=""><b>Directive RED</b> : impose des exigences de sécurité aux équipements radio.<br />
<br /></li><li style=""><b>Norme EN IEC 62443</b> : référentiel incontournable pour la sécurité des systèmes d’automatisation industrielle.<br />
<br /></li><li style=""><b>PSTI (Royaume-Uni)</b> : influence croissante sur les pratiques des fournisseurs européens.</li></ul><br />
Ces textes, bien que nécessaires, posent de nombreuses questions de mise en œuvre pour les éditeurs, fabricants, développeurs et intégrateurs.<br />
<br />
<b>Vers une cybersécurité intégrée au développement</b><br />
<br />
Le message clé du webinaire est clair : la conformité ne peut plus être un ajout tardif. Elle doit être intégrée dès les premières lignes de code.<br />
<br />
Qt propose ainsi une panoplie d’outils pour accompagner cette démarche security by design :<br />
<br />
<ul><li style="">Réduction de la surface d’attaque via l’optimisation des modules Qt.<br /></li><li style="">Chiffrement, authentification forte, sandboxing, journalisation...<br /></li><li style="">Analyse de vulnérabilités intégrée dans les cycles DevOps.<br /></li><li style="">Support de la certification logicielle et des normes industrielles.</li></ul><br />
 Ce webinaire s’adresse particulièrement à :<br />
<br />
<ul><li style=""><b>Développeurs et ingénieurs embarqué / IoT / HMI</b>, soucieux d’anticiper les exigences réglementaires.<br /></li><li style=""><b>Architectes logiciel et chefs de produit</b>, en quête de solutions pour intégrer la sécurité sans ralentir la livraison.<br /></li><li style=""><b>Responsables conformité, RSSI, juristes IT</b>, confrontés à l’interprétation complexe de textes encore jeunes.</li></ul><br />
<b>Replay disponible</b><br />
<br />
:fleche: <a href="https://www.developpez.com/redirect/6865" target="_blank">Regardez le webinaire gratuitement</a> <br />
<br />
<ul><li style="">Et vous, que pensez-vous de cette accélération réglementaire ?<br /></li><li style="">La multiplication des normes (CRA, NIS2, RED, etc.) est-elle selon vous une contrainte excessive ou un passage obligé pour sécuriser l’industrie connectée ?<br /></li><li style="">Comment vos équipes abordent-elles cette complexité : formation continue, refonte des processus, externalisation de la conformité ?<br /></li><li style="">Est-ce que les outils comme ceux de Qt facilitent vraiment la mise en œuvre concrète des exigences légales ?</li></ul><br />
Partagez vos retours d’expérience dans les commentaires de cette actualité. Vos contributions permettront d’enrichir ce débat essentiel entre développeurs, décideurs techniques et experts en sécurité.</div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p667774d1748609154/c-cpp/bibliotheques/qt/webinaire-replay-securiser-l-industrie-connectee-qt-group/1.jpg/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f376/c-cpp/bibliotheques/qt/">Qt</category>
			<dc:creator>Jade Emy</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2177234/c-cpp/bibliotheques/qt/webinaire-replay-securiser-l-industrie-connectee-qt-group/</guid>
		</item>
	</channel>
</rss>
