Category Archives: Qt4 bugs

Bug qt4: stylesheet

Nous avons la possibilité avec Qt4 d’utiliser les “stylesheet” pour modifier l’apparence des styles dans Qt4.

Mais c’est loin d’être parfait.

Dans un des projets sur lequel je travaille, on a essayé d’utiliser le code:

QApplication a( argc, argv );
a.setStyleSheet(“QToolButton { qproperty-iconSize: 24px 24px; }”);

Le principe était de configurer la tailles des icons dans un QToolButton.

Principe simple mais conséquences énormes.

En fait ça fixe bien la taille, mais ça casse vraiment tout le style.

En gros nous avons plus de fond dans un Q3ProgressBar, les contours des frames sont inexistants etc.

J’ai reporté le bug à TT pour qu’ils puissent le fixer. Mais je pense que ça va prendre un petit peu de temps.

Donc en attendant je déconseille d’utiliser cela dans une application.

En gros les stylesheets sont pas mal mais à utiliser que dans de rares cas.

Ne pas utiliser Q3TabDialog

Hier j’ai trouvé que Q3TabDialog ne marchait pas.

Cette classe aussi est complètement buggué.

C’est très simple le “tab widget” n’est pas inséré dans le layout de la dialogue.

Ce qui fait que tout est compressé.

J’ai donc envoyé un bug report à TT on verra ce qu’ils diront et espérons que ce soit fixé rapidement.

Bug qmake

J’ai trouvé un nouveau bug dans qmake aujourd’hui.

Lorsque l’on met utilise une variable dans qmake et que sa valeur contient un espace qmake ne met pas de quote autour donc ça provoque une erreur.

exemple:

LIBS += $(PROGRAMFILES)/lib/toto.lib

ça met dans le Makefile:

c:Program Fileslibtoto.lib

En fait qmake met des guillemets que si il trouve dans la ligne un espace. Sinon il les enlève carrément.

Et comme le nom de la variable n’a pas d’espace ça met pas les guillemets.

J’ai envoyé le bug à TT on va voir combien de temps ils vont mettre pour fixer cela.

(Mise à jour le 1 septembre) TT m’a répondu et le bug est ouvert depuis longtemps.

http://trolltech.com/developer/task-tracker/index_html?method=entry&id=203831

Q3TextBrowser + image

Je parle rarement des bugs que je reporte à TT mais celui-ci est tellement une regression (et me pose un gros problème pour le travail) qu’il fallait que j’en parle.

En fait Q3TextBrowser permet d’afficher une page HTML.

TT a fait une très grosse régression car on ne peut plus charger les images dans qt4.4.x.

Pour moi dans un projet Q3TextBrowser est utilisé pour afficher la documentation donc imaginer une doc sans image 🙁

Donc en gros on est obligé de migrer sous Qt4.4.x pour divers fixes nécessaire pour le projet mais on peut pas utiliser la doc 🙁

Donc pour les gens qui ont besoin de cela n’utiliser qt4.4.x ou bien porté votre code à QTextBrowser (ce que moi je peux pas 🙁 )

Je suis donc en attente d’un fixe de la part de TT

bug

Mise à jour 5 minutes après cette news:

Le support TT vient de m’envoyer un patch qui fixe ce problème, il leurs a fallu juste 5 heures entre la prise en charge du bug et la correction et ça c’est pas mal du tout 🙂 ce sera dans qt4.4.2.

Un autre bug de Qt4

J’ai encore trouvé un changement entre Qt3 et Qt4 (qui peut être considéré comme un fixe de Qt3 en fait, mais si on le sait pas ça peut poser des pb durant le portage).

Soit le code:

QRect rect(0,0,0,0);

QRect rect_test(0,0,50,50);

bool ret =  rect_text.contains(rect);

ça retourne “true” dans qt3 mais “false” dans qt4 !

Forcément un rectangle nul peut pas être considéré comment étant dans le grand rectangle.

Donc oui un changement de fonctionnement dans qt4 (ceci est à retenir ça fait gagner quelques heures de debuggage).

Comme m’a dit le support de TT (quasi aucune chance que ça revienne au fonctionnement de Qt3).

Donc à retenir 🙂

Q3ButtonGroup est complètement buggé…

Cette classe est complètement buggé.

Encore un bug de trouvé hier…

En fait si on l’utilise dans un ui file, et que l’on affecte à chaque qpushbutton ajouté un buttonId, mais que ce buttonId est différent de l’ordre dans lequel les qpushbuttons sont ajoutés, on se retrouve dans la situation ou les boutons émettent des signaux en double ou triple.

J’ai reporté ce bug à TT avec un test-case, j’attends la réponse.

Mais en gros il ne faut vraiment pas utiliser cette classe.

C’est le deuxième gros bugs de cette classe.

qt a oublié des conversions dans qt3to4

Oui de toutes façons il manque encore pleins de choses pour automatiser la conversion de qt3 vers qt4.
Mais une chose que TT n’a pas vu c’est que dans qt3 il y avait pleins de fichier “déprécated” :
par exemple : qcollect.h
(ce fichier vient de qt2, a été laissé là en compatibilité pour qt3)

le contenu:

#ifndef QCOLLECT_H
#define QCOLLECT_H
#include “qptrcollection.h”
#endif

Et oui un simple include 🙂

mais qt3to4
va bien changer qptrcollection.h en q3ptrcollection.h cool
mais ne va pas changer qcollect.h en q3ptrcollection.h
forcément la compile ne passera pas alors que c’est très simple à fixer.

Bien sur les projets qui utilisent encore ces vieux include ne courent pas les rues
(dommage moi j’en connais 🙁 )
Bon j’ai bien sur envoyé les bug reports à TT ainsi que les patchs.
j’en suis à mon 5ième bug report à ce sujet.
Je vais voir combien de temps ils vont mettre à réagir…

Q3TextStream

Encore un p’tit bug trouvé lors de mon portage de k3b:
qt3to4 n’ajoute pas #include ce qui pose des problèmes.
Bon ce fut simple le fix et je l’ai appliqué dans qt-copy.
(un jour ça marchera bien qt4 🙂 )

Encore un bug qt3toolbar

Faut dire que q3toolbar est vraiment buffé.
Maintenant dès que l’on a une grande toolbar, donc de ce fait ça crée un popup d’action, dès qu’on clean cette toolbar (qu’on veut regénerer la toolbar) ça crash directement.
Ce qui est assez ennuyeux au final.
J’ai envoyé le bug à TT on verra si ils seront réactifs ou non 🙂

Régression dans Qt4.3.2

Je pensais que Qt4.3.2 était simplement une release qui fixait des bugs mais non 🙂
Hier j’ai trouvé une régression qui m’empèche d’utiliser Qt4.3.2 sur un projet.
Les étapes:
-> créer une Q3ToolBar
-> cleaner cette toolbar (Q3ToolBar::clear())
-> re-remplir cette toolbar
-> de nouveau la cleaner
=> là ça crash.

J’ai bien sur envoyé un bug report à TT (bug report)