CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[QtJambi/Eclipse/MacOsX] Problème setupUi

MacBookWhite
MacBookWhite
Niveau 10
24 mars 2012 à 12:54:45

Salut tout le monde, je post ici mon problème, après avoir cherché pendant plusieurs jours, sans succès :

Je commence la progra avec interface en Java avec QtJambi (car je suis trop habitué à Qt, tellement bien pour créer des interfaces) et j'arrive pas à tester mon appli !

Voilà le code (juste appli de test pour voir si tout mon QtJambi fonctionne, à croire que non >.<) :

package view;

import com.trolltech.qt.core.*;
import com.trolltech.qt.designer.*;
import com.trolltech.qt.gui.*;

public class Menu extends QWidget{

public Menu()
{
Menu m=new Menu();
m.setupUi(this);
m.pushButton.clicked.connect(this, "test()");
}

public void test()
{
QDialog d=new QDialog();
d.show();
}

public static void main(String[] args) {
QApplication app=new QApplication(args);
Menu m=new Menu();
m.show();
app.exec();
}

}

Mais j'ai de souligné ceci :

setupUi
pushButton

Le pushButton, c'est parce que l'interface arrive pas à être créer, ca je pense en être casi-sur.

Mais pour le setupUi o_O je vois pas du tout pourquoi il en veut pas. L'erreur affichée est : "The method setupUi(Menu) is undefined for the type Menu"

Malheureusement, je sais pas quoi mettre comme type dans ce cas. J'ai trouvé un topic sur QtFr, j'ai repris le code exact pour tester (au lieu de QWidget c'est QMainWindow, et au lieu de menu ca s'appelle MainWindow) mais pareil, pas moyen de l'utiliser, il me met la même erreur que pour mon code.

Vous auriez une solution svp ? Sachant que j'utilise Eclipse Indigo, je suis sous Mac OS X 10.6.8. J'ai installé QtJambi comme j'ai pu, je galère depuis 2 semaines pour l'installer, donc ca devrait le faire.

Merci d'avance !

godrik
godrik
Niveau 30
24 mars 2012 à 16:46:52

Utiliser Qt en Java? Je n'avais jamais entendu parle de ca. I'll y a des projets connus qui utilisent ca? Ou c'est juste un port jouet?

MacBookWhite
MacBookWhite
Niveau 10
24 mars 2012 à 18:07:57

Je sais pas si y'a des projets connus qui utilisent ca, mais je vois beaucoup de gens sur internet en parler, et apparemment, c'est vraiment énorme. Et moi, comme je fais TOUTES mes interfaces via Qt, bah pour le java je voudrais pas faire d'exceptions quoi...

godrik
godrik
Niveau 30
24 mars 2012 à 20:56:42

C'est juste que je n'en ai jamais entendu parle. Donc j'ai peur que le support soit faible. Cela etant dit, je m'interesse assez peu a l'interfacage graphique.

Bunyan
Bunyan
Niveau 17
25 mars 2012 à 00:32:14

La doc du QWidget : http://doc.qt.nokia.com/4.2/qwidget.html

Je l'ai trouvée en farfouillant un peu, je ne sais pas si elle est à jour, dernière version, ni véritablement utile ici, je vous en laisserai juger.

En tout cas, Eclipse à raison, si j'en crois ce lien. Il n'y a pas de méthodes "setupUi()" pour un objet QWidget. Si je navigue sur la doc, cette méthode n'existe pas non plus pour le type QMainWindow.
Il ne serait pas devenu obsolète, le tuto que tu suis ?

041
041
Niveau 10
25 mars 2012 à 13:54:35

Puis honnêtement, vouloir faire du Qt en Java...
Voilà quoi :(

MacBookWhite
MacBookWhite
Niveau 10
25 mars 2012 à 16:35:47

Merci pour vos réponses.

Bah si c'est vraiment trop lourd tant pis je ferais avec autre chose, mais vous vous utilisez quoi pour faire vos interfaces java ? :/

Bunyan
Bunyan
Niveau 17
25 mars 2012 à 17:58:01

L'API de base personnellement, c'est-à-dire Swing ou JavaFX.

godrik
godrik
Niveau 30
25 mars 2012 à 18:05:51

bon, pour avoir utiliser swing pendant un bon bout de temps, c'etait un bousin enorme et super lent... J'ai pas essaye javaFX et qt. Mais swing c'etait vraiment catastrophique...

Nevdelothion
Nevdelothion
Niveau 4
26 mars 2012 à 09:20:26

Il te manque Q_OBJECT au debut de ta classe.
public class Menu extends QWidget
{
Q_OBJECT

_skip
_skip
Niveau 10
26 mars 2012 à 10:51:04

godrik
Posté le 25 mars 2012 à 18:05:51
bon, pour avoir utiliser swing pendant un bon bout de temps, c'etait un bousin enorme et super lent... J'ai pas essaye javaFX et qt. Mais swing c'etait vraiment catastrophique...

:d) Euh si ton expérience date principalement de la 1.4, ça a été vachement optimisé depuis. Les performances sous linux de swing et swt côte à côte récemment me donnait swing nettement gagnant.

Perso je dirai :

1) Swing si tu veux le même rendu sur toutes les plate-formes et que tu as besoin d'imprimer.
2) Swt si tu veux un look and feel natif, plus performant sous windows que sous linux, moins flexible sur le rendu et impression limitée.
3) QtJambi y'a pas assez de monde derrière.

Il reste la nouvelle version de javafx (2.1) qui n'a rien à voir avec les honteuses versions 1.x qui commence à ressembler à quelque chose (une techno qui est restée inutilisable presque 4 ans quand même sous le règne de SUN :fou: ). Je pense que l'avenir des interfaces graphiques sous java se situe du côté de javafx, les autres approches ont beaucoup d'inconvénients.

godrik
godrik
Niveau 30
26 mars 2012 à 18:38:14

J'avais utilise swing avec java 5 (ou peut etre java 6) et ce n'etait toujurs pas fameux. Mais en effet c'etait il y a plus 5 ans, ca a pu changer depuis. En fait, wikipedia indique que java 6 a ameliorer dramatiquement les performances de swing [1].

[1] http://en.wikipedia.org/wiki/Java_version_history#Java_SE_6_.28December_11.2C_2006.29

MacBookWhite
MacBookWhite
Niveau 10
26 mars 2012 à 19:36:36

Merci pour vos réponses, mais maintenant qu'on me dit qu'il manque le Q_OBJECT, j'ai une simple question : a quoi il sert ce truc ? x)

J'ai cherché pas trop longtemps, mais je comprends pas vraiment ce qu'il faut en faire, je l'ai mis juste après la déclaration de ma class, mais ca change rien, voilà ce que j'ai mis :

package view;

import com.trolltech.qt.core.*;
import com.trolltech.qt.designer.*;
import com.trolltech.qt.gui.*;

public class Menu extends QWidget{

public Menu()
{ QObject Menu;
Menu m=new Menu();
m.setupUi(m);
m.QPushButton.clicked.connect(this, "test()");
}

public void test()
{
QDialog d=new QDialog();
d.show();
}

public static void main(String[] args) {
QApplication app=new QApplication(args);
Menu m=new Menu();
m.show();
app.exec();
}

}

J'imagine que c'est pas comme ca >.< alors c'est comment ? :/

Merci d'avance.

Et aussi, pour les réponses sur Swing et SWT et JavaFX, je testerai si QtJambi me soule x)

_skip
_skip
Niveau 10
26 mars 2012 à 19:43:31

C'est pas un choix sans danger

Nevdelothion
Nevdelothion
Niveau 4
26 mars 2012 à 20:33:30

Bon comme j'ai pas fait de JAVA depuis très longtemps j'ai oublié de réfléchir avant de répondre! Q_Object c'est utile en c++ pour qu'à la compilation Qt puisse faire proprement des liens entre les slots et signaux dépendant de la classe.

En JAVA ben c'est pas pareil ^^ et puis j'ai lu en faisant une recherche rapide que QtJambi permettait de ce passer de cette macro.

Je t'invite à lire cette page http://doc.qt.nokia.com/qq/qq20-jambi.html pour arriver à corriger ton problème!
Pour faire simple tu essai d'appliquer setupUI sur ta classe alors qu'il faut le faire sur un élément de Qt spécifique (d'ailleurs ça aurait du me sauter aux yeux le fait que tu declare un Menu dans ton constructeur de Menu...). Cherche Ui_Qtanoid dans le lien ça devrait t'aider mais je te conseille de lire la page en entier pour comprendre ce que tu fais exactement :).

MacBookWhite
MacBookWhite
Niveau 10
26 mars 2012 à 22:45:47

Raah mais oui >.< tu viens d'éclairer ma lanterne :D

En fait, j'ai pas généré mon UI avec JUIC parce que celui-ci refuse de fonctionner, et donc ca peut pas marcher ! J'ai pas ma méthode setupUI() >.< donc voilà, faut que je trouve un moyen de le faire marcher.

Au cas, si vous connaissez ce problème :

/opt/QtJambi/bin/juic -cp
/Users/MaksOuw/Documents/workspace/Matrices/src/vi
ew/menu.jui
dyld: Library not loaded: libQtXml.4.dylib
Referenced from: /opt/QtJambi/bin/juic
Reason: image not found
Trace/BPT trap

J'ai déjà essayé de copier la dylib demandée dans le même dossier, mais que dalle, donc je vais aller chercher sur google, mais je crois pas trouver grand chose, j'avais déjà chercher un peu. Je crois que je vais finir par installer QtJambi sous windows et je vais générer mes UI sous windows...

Mais merci beaucoup !

MacBookWhite
MacBookWhite
Niveau 10
26 mars 2012 à 23:04:40

Désolé du double post, mais j'ai une piste : mon DYLD_LIBRARY_PATH est vide ! Donc je veux le remplir avec mon dossier de Dylib de QtJambi, mais malheureusement, je chope cette erreur cette fois ci :

"-bash: export MONCHEMIN:$DYLD_LIBRARY_PATH : not a valid identifier"

J'ai beau changer le chemin, mettre mon dossier autre part, bah pas moyen. Je continue de chercher, j'espère trouver quelque chose !

MacBookWhite
MacBookWhite
Niveau 10
26 mars 2012 à 23:50:53

Désolé pour le Triple-post, promis j'arrête après ça, j'ai enfin trouvé la solution à mon problème !

Dans mon export, je mettais un espace ou il fallait pas. Voilà, c'était juste ca, maintenant je peux générer mes interfaces en Java :D

Merci beaucoup pour votre précieuse aide, je vais rédiger un tuto pour les gens qui galèrent comme moi :D

Merci beaucoup !

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment