PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [KDE Prog] Bitte mal testen und beurteilen



undefined
01-06-2004, 17:32
Hey Leute, ich habe mein aller erstes Programm geschrieben und hätte ganz gerne gewusst wie das Ding auf anderen Rechnern Funktioniert und was verbesserungswürdig ist.

Es ist ein Fahrradspeichen Rechner .
Formel:
L = sqrt{(r1² + r2² + w²) - ( 2 * r1 * r2 *cos(x) ) } - y
Beispiel Bemaßung:
r1 = Halber Felgendurchmesser (309 mm)
r2 = Halber Lochkreisdurchmesser (22 mm)
w = Abstand Nabenflansch/Felgenmitte (21 mm) (34 mm)
kr = Kreuzung (3)
sp = Nabenlöcher einer Seite (18)
x = 360° / sp * kr
y = Speichenlochdurchmesser der Nabe (1.3 mm)

Erwünschtes Ergebnis:
L = 299,3 und 300,5 mm

Würde mich freuen wenn ihr euren Senf einmal dazu abgebt. :)
mfg undefined
SUSE RPM (http://www.flash-php-mail.de/spr/spokecalc-0.1-1.i586.rpm)
SRPM (http://www.flash-php-mail.de/spr/spokecalc-0.1-1.src.rpm)
Source (http://www.flash-php-mail.de/spr/spokecalc-0.1.tar.bz2)
LIESMICH (http://www.flash-php-mail.de/spr/LIESMICH)

anda_skoa
02-06-2004, 13:10
Hat erstmal nicht kompiliert, weil du QString als Parameter for atoi und atof benutzt hast, die aber als C Funktionen const char* erwarten.

Abgesehen von diesem Fehler wäre es vernünftiger, die entsprechenden Methoden toInt() bzw toFloat() zu benutzen, weil du da auch noch über einen Parameter prüfen kannst, ob die Umwandlung funktioniert hat.

Da es eine KDE Applikation ist, brauchst du das gar nicht, weil du KIntNumInput und KDoubleNumInput benutzen kannst, die mit value() einen entsprechenden Wert liefern und die Prüfung schon bei der Eingabe machen.

Noch ein Tip:
Wenn in einer Datei steht, dass man sie nicht bearbeiten soll, weil sie automatisch generiert wird, dann sollte man dort möglichst nichts reinschreiben :)
In deinem Fall wird rechenform.h/.cpp aus einem UI File des Designer generiert.
Du solltest statt diesen beiden Dateien die .ui Datei im Quellpaket haben, die beiden Dateien können ja daraus generiert werden.

Um deinen Code damit zu verknüpfen, leitest du eine Klasse von dieser Form ab und implementierst alles notwendige dort.
Dann kann man das .ui File im Designer ändern und hat trotzdem deine Anpassungen/Erweiterungen.

Ciao,
_

undefined
02-06-2004, 18:34
Erst einmal Danke das du es dir angesehen hast.
Du hast auch gleich meine zwei großen Schwachstellen in meinem Scripten entdeckt :D Ich habe im Moment noch massive Probleme mit den Typen Konvertierungen und durchblicke bei dieser fülle an Klassen noch nicht die Möglichkeiten. Die ui Komponente hatte ich deshalb gewandelt weil ich nicht wußte wie ich ein Restrict in die Eingabefelder bekomme. Erst Tage später bin ich auf die von dir angesprochene Kde Klasse gestoßen. Ich werde deine Ratschläge die tage umsetzten und das ganze noch einmal bereitstellen.

PS: Ich habe noch eine Frage zu "tr()"
Wenn ich einen TextLabel mit Bold übersetzen möchte habe ich Moment das Problem das ich in der *.pot Datei die HTML Tags mit angeben muß lässt sich dies Irgendwie umgehen?

txt_10->setText( tr( "<b>Right:</b>" ) );
mfg undefined

undefined
03-06-2004, 13:12
So noch einmal aufs neue :)
Anstatt der KIntNumInput Klasse habe ich jetzt ein restrictLineEdit eingesetzt und wir von dir schon vorgeschlagen toInt() und toFloat() in ausrechnen() angewendet.

SUSE RPM (http://www.flash-php-mail.de/spr/kspokecalc-0.2-0.i586.rpm)
SRPM (http://www.flash-php-mail.de/spr/kspokecalc-0.2-0.src.rpm)
Source (http://www.flash-php-mail.de/spr/kspokecalc-0.2.tar.bz2)
Daten Vorlage (http://www.flash-php-mail.de/spr/LIESMICH)

anda_skoa
03-06-2004, 13:32
setText("<b>" + tr("Right:") + "</b>");


In KDE Code nimmt man aber üblicherweise i18n() statt tr()

Ciao,
_

undefined
03-06-2004, 13:38
Ist in der neun Version geändert, das macht er jetzt ja Automatisch weil ich ui liegen lasse.
tr2i18n( "<b>Right:</b>" )

oracle2025
04-06-2004, 08:13
Hi,

habs ausprobiert, und funktioniert gut :)

Du könntest aber den "Cancel" Button in Exit oder Quit umbennen, IMHO.

edit: Standard scheint unter KDE "Quit" zu sein.