Seite 1 von 2

Flags in Java setzen

Verfasst: 23. August 2007 13:22
von nocturne
Also irgendwie habe ich ein sehr seltsames Problem:

Ich kann keine Flags setzen. Selbst wenn ich aus den Beispielen Code-Schipsel uebernehme, funktioniert es nicht. Mein Eclipse meckert immer, dass das so nicht geht. Hat noch jemand aehnliche Probleme und weiss, woran es liegt oder hab ich evtl. eine veraltete Version?

mfg nocturne


/edit Um es etwas zu veranschaulichen: Ich habe einen TableWidget und will verhindern, dass die Items da drin veraendert werden koennen (vom User), also will ich das ItemIsEditable-Flag ausstellen. Nur dazu muesste ich es erstmal in korrekter Syntax formulieren koennen, was mein Eclipse nicht erlaubt (selbst bei 1:1-Abschrift aus den Beispielen)...

Verfasst: 27. August 2007 11:53
von ArneStocker

Code: Alles auswählen

Ich kann keine Flags setzen. Selbst wenn ich aus den Beispielen Code-Schipsel uebernehme, funktioniert es nicht. Mein Eclipse meckert immer, dass das so nicht geht. Hat noch jemand aehnliche Probleme und weiss, woran es liegt oder hab ich evtl. eine veraltete Version? 
Das Problem ist nicht gerade sehr eindeutig beschrieben. Ich verstehe die Frage so, dass sich nicht alle properties eines Widgets im designer-plugin richtig bearbeiten lassen und teilweis sogar fehlen.

Du solltest auf jeden Fall die neueste Version des Eclipste - Plugins verwenden, weil da die meisten Bugs beseitigt wurden.

Andernfalls versuchs (unter Windows) doch mal mit designer.exe, da konnte man eigentlich alle properties bearbeiten

Gruß Arne

Verfasst: 27. August 2007 16:25
von nocturne
Hm, ok, du hast mich total falsch verstanden ;)

Es geht mir nicht um den Designer oder das Eclipse Plugin. Mein Problem ist, dass ich die "setFlags" Methode nicht benutzen kann, da mein Eclipse jedes mal nen Syntax-Fehler meldet, egal wie ich es auch versuche. Selbst wenn ich den Code aus den Beispielen mit Copy&Paste uebertrage, gibt mein Eclipse diese Fehler aus und behauptet, dass die Syntax nicht stimmt.

Daher kann ich keinerlei Flags ausserhalb des Designers also quasi zur Laufzeit innerhalb meines Programms manipulieren, was natuerlich die Funktionalität der Programme ziemlich einschraenkt.

Verfasst: 27. August 2007 19:43
von ArneStocker
Hi

könntest Du mal ein kleines Code-Beispiel bringen ?

Gruß Arne

Verfasst: 29. August 2007 17:50
von nocturne
Hm, wozu ein Beispiel? Meine Syntax ist vollkommen korrekt, da ich sie ja sogar einmal aus den Beispielen per Copy&Paste uebernommen habe. Wenn du ein Stueck Code haben willst, guck in die Beispiele von QT Jambi, denn genauso stehts auch in meinem Programm :wink:

Es liegt auch nicht an dem Kontext von meinem Programm oder irgendwelchen Programmteilen. Selbst wenn ich eine komplett neue Klasse schreibe, da einen Button erstelle und versuche seine Flags zu setzen, meckert mein Eclipse aufgrund falscher Syntax. Daher gehe ich von einem Eclipse-spezifischen Problem aus...dachte evtl. dass das hier noch einer hat, aber dem scheint ja nicht so zu sein :cry:

Verfasst: 29. August 2007 20:00
von ArneStocker
Hm, wozu ein Beispiel? Meine Syntax ist vollkommen korrekt, da ich sie ja sogar einmal aus den Beispielen per Copy&Paste uebernommen habe. Wenn du ein Stueck Code haben willst, guck in die Beispiele von QT Jambi, denn genauso stehts auch in meinem Programm Wink
... weil Du wissen willst warum etwas nicht geht und ich keine Lust habe die Sourcen nach irgendwelchen Beispielen zu durchforsten, die nicht einmal annähernd bezeichnet sind .. zum Beispiel ...

.. weil es eine Methode 'IrgendwasButton.setFlags(...)' weder in QAbstractButton noch in QPushButton, QToolButton oder QRadioButton gibt, so dass ich nicht weiss was Du meinst .. zum Beispiel ... :lol:

Gruß Arne

Verfasst: 29. August 2007 23:08
von nocturne
Ja gut, das mit dem Knopf war ein bloedes Beispiel. Bei mir geht es um ein TableWidget. Dabei will ich die einzelnen Items so modifizieren, dass sie nicht editierbar sind.

Code: Alles auswählen

QTableWidgetItem item1 = new QTableWidgetItem("test");
item1.setFlags(ItemFlag.ItemIsSelectable);
Ist laut der QT Jambi API korrekt und wird zum Beispiel im "Config Dialog"-Beispiel benutzt. Leider sagt mein Eclipse, dass das nicht in Ordnung ist: "The method setFlags(Qt.ItemFlag[]) in the type QTableWidgetItem is not applicable for the arguments (Qt.ItemFlag)".

So...woran liegts?

p.s.: ich weiss, dass bei meinem Beispiel das Item selektierbar wird und sonst nix, aber das ist ja nicht so wichtig...

Verfasst: 30. August 2007 10:36
von ArneStocker

Code: Alles auswählen

    import com.trolltech.qt.core.Qt;
    import com.trolltech.qt.gui.QTableWidgetItem;

Code: Alles auswählen

    QTableWidgetItem item = new QTableWidgetItem("test");
    item.setFlags(Qt.ItemFlag.ItemIsSelectable);
so sollte es gehen (so funktionierts zumindest bei mir ;-) )

Gruß Arne

PS.: wenn nicht dann teil doch mal mit, was für eine Fehlermeldung Eclipse ausgibt.

Verfasst: 30. August 2007 11:25
von nocturne
Immer noch die selbe Fehlermeldung:
The method setFlags(Qt.ItemFlag[]) in the type QTableWidgetItem is not applicable for the arguments (Qt.ItemFlag)

Verfasst: 30. August 2007 12:36
von ArneStocker
siehe
http://www.developer.com/java/other/article.php/3323661

verwendest Du eine alte JRE < 1.5 ?

QTJambi setzt mindestens die JRE 1.5 voraus.

Gruß Arne

Verfasst: 30. August 2007 14:13
von nocturne
Eigentlich benutze ich laut Eclipse die 1.6.01 und ich find auch nix anderes auf meinem System. Ich sag ja, dass der Fehler seltsam ist :P

Verfasst: 30. August 2007 14:40
von ArneStocker
und welche Eclipse Version verwendest Du (ich glaube da sollte es mindestens die 3.2 sein).

Ansonsten probier doch mal die Compiler- Einstellungen unter

Menu|Preferences

Java->Compile->Errors/Warnings

aus, wobei ich mir nicht vorstellen könnte, welche Einstellung dort vorzunehmen wäre.

Verfasst: 30. August 2007 14:59
von nocturne
Eclipse Version 3.2.2

So langsam nervt mich dieses Problem. Wenn ich das nicht loesen kann, darf ich mein gesamtes Projekt umschreiben :cry:

Evtl. kannste mir ja noch bei nem anderen Problem helfen:

Ich versuche seit Stunden krampfhaft das closeEvent meines MainWindows zu ueberschreiben. Ich moechte naemlich, sobald jemand das "X" drueckt, eine Speicher-Abfrage durchfuehren. Leider schaffe ich es einfach nicht, das zu ueberschreiben und man findet im Netz nur Beispiele zu C++.

In dem Application Beispiel wird es zwar demonstriert und funktioniert dort auch, aber bei meinem Projekt wills mal wieder nicht funzen.

p.s.: so langsam glaube ich, dass mein Eclipse schuld ist. Kannst du mir evtl mal nen Link zu der Eclipseversion geben, die du benutzt ( falls du es benutzt)? Oder benutzt du nen anderen Editor?

Verfasst: 30. August 2007 16:40
von ArneStocker
ich verwendeauch die 3.2.2

http://www.eclipse.org/downloads/

mehr fällt mir dazu auch nicht mehr ein

Code: Alles auswählen

public void closeEvent (QCloseEvent event){
    //prüfen, ob beendet werden soll
    if ( ... anwendung beenden ... == false) {
        event.ignore();
    }
    // sonst irgendwas beenden 
    else {
        super.closeEvent(event);
    }
}
gruß Arne

Verfasst: 1. September 2007 11:33
von nocturne
Funzt weiterhin nicht. Falls irgendwer weiss, woran es liegen koennte, ich waere dankebar fuer Antworten ;)