<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Das nervige Bauen des GUI...]]></title><description><![CDATA[<p>Hi!</p>
<p>Kennt ihr das auch? Ihr schreibt ein kleines Tool, und die Umsetzung des GUI dauert mindestens so lange oder noch länger als die entwicklung und umsetzung der programmlogik?</p>
<p>Also die Überprüfung der Eingaben, setzen und auslesen der Textfelder, schreiben von GetOpenFileName (oder auch deren alternativen) , verbinden von Ereignis mit Methode etc.</p>
<p>Ich benutz wxWidgets, aber auch mit MFC, gtkmm, sonstwas, immer dauert die GUI ziemlcih lange und ist nervig.</p>
<p>Gibts da irgendwelche Tipps, wie man das beschleunigen kann? wie macht ihr das? ich hab nie lust auf das GUI, aber das muss eben auch sein (für unversierte benutzer). Gibts irgendwelche vorgehensmodelle oder sowas?</p>
<p>Bitte nicht mit .NET anfangen, will bei native c++ bleiben, soll auch unter linux laufen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Gruß, Maxi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/203625/das-nervige-bauen-des-gui</link><generator>RSS for Node</generator><lastBuildDate>Sun, 28 Jun 2026 18:56:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/203625.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 24 Jan 2008 16:00:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Das nervige Bauen des GUI... on Thu, 24 Jan 2008 16:00:02 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Kennt ihr das auch? Ihr schreibt ein kleines Tool, und die Umsetzung des GUI dauert mindestens so lange oder noch länger als die entwicklung und umsetzung der programmlogik?</p>
<p>Also die Überprüfung der Eingaben, setzen und auslesen der Textfelder, schreiben von GetOpenFileName (oder auch deren alternativen) , verbinden von Ereignis mit Methode etc.</p>
<p>Ich benutz wxWidgets, aber auch mit MFC, gtkmm, sonstwas, immer dauert die GUI ziemlcih lange und ist nervig.</p>
<p>Gibts da irgendwelche Tipps, wie man das beschleunigen kann? wie macht ihr das? ich hab nie lust auf das GUI, aber das muss eben auch sein (für unversierte benutzer). Gibts irgendwelche vorgehensmodelle oder sowas?</p>
<p>Bitte nicht mit .NET anfangen, will bei native c++ bleiben, soll auch unter linux laufen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Gruß, Maxi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442897</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442897</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Thu, 24 Jan 2008 16:00:02 GMT</pubDate></item><item><title><![CDATA[Reply to Das nervige Bauen des GUI... on Thu, 24 Jan 2008 16:10:24 GMT]]></title><description><![CDATA[<p>Geht mir genauso. Das entwickeln einer wirklich gute GUI kann für sich selber schon eine Art Projekt sein. Alleine die Menüstruktur...<br />
Und selbst triviale Dinge wie Eingabefelder zentrieren, alles bündig ausrichten und zwar so, dass es gut aussieht, kann Stunden dauern.<br />
Der Punkt mit &quot;unversierte Benutzer&quot; ist Quatsch. Oder sind die Anwender von 3dsmax, maya, vs, fx composer und Photoshop unversierte Benutzer?</p>
<p>Das einzige was wohl hilft, sind gute GUI Editoren und da kenn ich keinen besseren als den WinForms Editor in VS. Wenns nur irgendwie geht, mach ich meine GUIs damit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442911</guid><dc:creator><![CDATA[this-*gt*that]]></dc:creator><pubDate>Thu, 24 Jan 2008 16:10:24 GMT</pubDate></item><item><title><![CDATA[Reply to Das nervige Bauen des GUI... on Thu, 24 Jan 2008 16:10:03 GMT]]></title><description><![CDATA[<p>ich mache hin und wieder kleine tools mit hilfe der mfc. kann eigentlich nicht sagen, dass es irgendwie langwierig wäre. der in vs eingebaute codegenerator erzeugt für jeden event handlerfunktionen usw. eigentlich alles recht easy. ich muss allerdings zugeben, dass ich nur einfache elemente benutze und auf ausgeklügeltes gui-design keinen grossen wert lege.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442912</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442912</guid><dc:creator><![CDATA[minitool-freak]]></dc:creator><pubDate>Thu, 24 Jan 2008 16:10:03 GMT</pubDate></item><item><title><![CDATA[Reply to Das nervige Bauen des GUI... on Thu, 24 Jan 2008 16:10:22 GMT]]></title><description><![CDATA[<p>Bei mir geht das eigentlich immer recht schnell :p Gut, kommt drauf an, wie komplex das Ganze wird, aber für nen kleinen Dialog brauch ich idR nur ~3 Minuten.<br />
Allerdings mache ich auch ein bisschen Vorarbeit, also zeichne mir den Dialog grob und schreibe Kommentar-mäßig auf, was bei welcher Aktion gemacht werden soll. Dann brauche ich nur zusammenzuklicken, die entsprechenden Nachrichten abzufangen und da meine Kommentare reinzuschreiben.<br />
Wenn ich damit zufrieden bin, mache ich bei den Dialog-Elementen pixelweise Feinjustierung und code die Kommentare aus. Das war's dann <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442913</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442913</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Thu, 24 Jan 2008 16:10:22 GMT</pubDate></item><item><title><![CDATA[Reply to Das nervige Bauen des GUI... on Thu, 24 Jan 2008 16:15:12 GMT]]></title><description><![CDATA[<p>Klick dir die GUI mit nem RAD Editor zu sammen.<br />
Für einige Sachen kann man auch mit Templates arbeiten, z.B. wenn man Membervariablen bearbeiten will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442919</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442919</guid><dc:creator><![CDATA[...]]></dc:creator><pubDate>Thu, 24 Jan 2008 16:15:12 GMT</pubDate></item><item><title><![CDATA[Reply to Das nervige Bauen des GUI... on Thu, 24 Jan 2008 16:22:28 GMT]]></title><description><![CDATA[<p>warum sollte die GUI auch schneller gehen? Sie ist auch mindestens genauso wichtig wie die Programmlogik.<br />
Die Programmlogik interessiert einen Nutzer nicht. Ihm interessiert die GUI. Und wenn ihm die nicht passt, bringt die beste Logik nichts.</p>
<p>Ich arbeite mit Qt. Der Qt-GUI-Editor ist zwar komfortabel, aber einfache GUIs entwerfe ich direkt im Code... ist da unter Umständen auch schneller</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442922</guid><dc:creator><![CDATA[zwutz]]></dc:creator><pubDate>Thu, 24 Jan 2008 16:22:28 GMT</pubDate></item><item><title><![CDATA[Reply to Das nervige Bauen des GUI... on Thu, 24 Jan 2008 16:27:42 GMT]]></title><description><![CDATA[<p>zwutz schrieb:</p>
<blockquote>
<p>warum sollte die GUI auch schneller gehen? Sie ist auch mindestens genauso wichtig wie die Programmlogik.<br />
Die Programmlogik interessiert einen Nutzer nicht. Ihm interessiert die GUI. Und wenn ihm die nicht passt, bringt die beste Logik nichts.</p>
</blockquote>
<p>was werden denn hier für verschärfte klicki-bunti argumente gebracht?^^ <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
übrigens; das bauen einer schicken GUI ist eher aufgabe eines designers, weniger die eines programmierers.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442928</guid><dc:creator><![CDATA[kommandozeilen-freak]]></dc:creator><pubDate>Thu, 24 Jan 2008 16:27:42 GMT</pubDate></item><item><title><![CDATA[Reply to Das nervige Bauen des GUI... on Thu, 24 Jan 2008 16:35:26 GMT]]></title><description><![CDATA[<p>Maxi schrieb:</p>
<blockquote>
<p>Gibts da irgendwelche Tipps, wie man das beschleunigen kann? wie macht ihr das? ich hab nie lust auf das GUI, aber das muss eben auch sein (für unversierte benutzer). Gibts irgendwelche vorgehensmodelle oder sowas?</p>
<p>Bitte nicht mit .NET anfangen, will bei native c++ bleiben, soll auch unter linux laufen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>Ok, aber ich fang mit Java an. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> Ich habe mir ein kleines Framework geschrieben, das mir für meinen Code automatisch die passende Eingabemaske generiert. Dafür stecke ich dann ein paar Zusatzinformationen in den Code rein, damit das Framework auch was vernünftiges generieren kann. Das sieht dann zum Beispiel so aus:</p>
<pre><code class="language-java">package jaradap.model.generator;

import controller.DataGenerator;
import controller.MenuStructure;
import controller.Name;
import controller.descriptor.IntBounds;
import jaradap.model.data.ThreeDimFloatRaster;
import jaradap.model.data.ThreeDimUByteRaster;

/**
 *
 * @author gregor
 */
@Name(&quot;Hydrogen Generator&quot;)
@MenuStructure({&quot;Generate&quot;,&quot;Generate Hydrogen&quot;})
public class HydrogenGenerator implements DataGenerator&lt;ThreeDimUByteRaster&gt;
{
   private final int n;
   private final int l;
   private final int m;
   private final int Z;
   private final int size;

   /** Creates a new instance of HydrogenGenerator */
   @Name(&quot;Default Construction&quot;)
   public HydrogenGenerator
      (
         @Name(&quot;Hauptquantenzahl n&quot;) @IntBounds(min=1,defaultValue=1,max=10) final int n,
         @Name(&quot;Drehimpulsquantenzahl l&quot;) @IntBounds(min=0,defaultValue=0,max=10) final int l,
         @Name(&quot;Magnetische Quantenzahl m&quot;) @IntBounds(min=-10,defaultValue=0,max=10) final int m,
         @Name(&quot;Kernladungszahl Z&quot;) @IntBounds(min=1,defaultValue=1,max=10) final int Z,
         @Name(&quot;Größe des Bereichs in a0&quot;) @IntBounds(min=1,defaultValue=15,max=45) final int size
      )
   {
      this.m = m;
      this.l = (Math.abs(m)&gt;l) ? Math.abs(m) : l;
      this.n = (l &gt; n-1) ? l+1 : n;
      this.Z = Z;
      if(this.l != l) System.out.println(&quot;l wurde korrigiert.&quot;);
      if(this.n != n) System.out.println(&quot;n wurde korrigiert.&quot;);
      this.size = size;
   }

   public ThreeDimUByteRaster generateData()
   {
      double bohrRadius = 0.53e-10;
      double factorOne = 2.0*Math.sqrt(((double)(Z*Z*Z)) / (bohrRadius*bohrRadius*bohrRadius)) / (double)n;
      double factorTwo = Math.sqrt(((double)fac(n-l-1))/(double)fac(n+l));
      int cubeSize = 201;
      ThreeDimFloatRaster floatRaster = new ThreeDimFloatRaster(cubeSize,cubeSize,cubeSize);
      double maxRaxel = 0.0;
      for (int z = 0 ; z &lt; cubeSize ; ++z)
      {
         for (int y = 0 ; y &lt; cubeSize ; ++y)
         {
            for (int x = 0 ; x &lt; cubeSize ; ++x)
            {
               double zDistance = z - (cubeSize &gt;&gt; 1);
               double yDistance = y - (cubeSize &gt;&gt; 1);
               double xDistance = x - (cubeSize &gt;&gt; 1);
               double r = Math.sqrt(zDistance*zDistance + yDistance*yDistance + xDistance*xDistance);
               r *= ((double)size)*bohrRadius / (double)(cubeSize&gt;&gt;1);
               double theta = Math.atan(Math.sqrt(xDistance*xDistance + yDistance*yDistance)/zDistance);
               double phi = Math.atan(yDistance / xDistance);
               double factorThree = Math.pow(2.0*((double)Z)*r/(((double)n)*bohrRadius),l);
               double factorFour = Math.exp(-((double)Z)*r/(((double)n)*bohrRadius));
               double factorLaguerre = computeLaguerreFactor(n,l,2.0*((double)Z)*r/(((double)n)*bohrRadius));
               double sHRealFactor = computeSphericalHarmonicsRealFactor(l,m,theta,phi);
               double sHImagFactor = computeSphericalHarmonicsImaginaryFactor(l,m,theta,phi);

               double realPart = factorOne*factorTwo*factorThree*factorFour*factorLaguerre*sHRealFactor;
               double imagPart = factorOne*factorTwo*factorThree*factorFour*factorLaguerre*sHImagFactor;

               double absSquare = realPart*realPart + imagPart*imagPart;
               floatRaster.setRaxel((float)absSquare,x,y,z);
               if(absSquare &gt; maxRaxel) maxRaxel = absSquare;
            }
         }
      }
      ThreeDimUByteRaster uByteRaster = new ThreeDimUByteRaster(cubeSize,cubeSize,cubeSize);
      for(int i = 0 ; i &lt; uByteRaster.getNumberOfRaxels() ; ++i)
      {
         uByteRaster.setRaxelAt(floatRaster.getRaxelAt(i) / (float)maxRaxel,i);
      }
      return uByteRaster;
   }

   private static double computeSphericalHarmonicsRealFactor(int l, int m, double theta, double phi)
   {
      double factor = Math.sqrt((((2.0*(double)l)+1.0)/(4.0*Math.PI)) * ((double)fac(l-m))/(double)fac(l+m));
      double realFactor = Math.cos(phi*(double)m);
      double legendreFactor = computeLegendrePolynom(l,m,Math.cos(theta));
      return factor*realFactor*legendreFactor;
   }

   private static double computeSphericalHarmonicsImaginaryFactor(int l, int m, double theta, double phi)
   {
      double factor = Math.sqrt((((2.0*(double)l)+1.0)/(4.0*Math.PI)) * ((double)fac(l-m))/(double)fac(l+m));
      double imaginaryFactor = Math.sin(phi*(double)m);
      double legendreFactor = computeLegendrePolynom(l,m,Math.cos(theta));
      return factor*imaginaryFactor*legendreFactor;
   }

   private static double computeLegendrePolynom(int l, int m, double x)
   {
      if (m &gt; 0)
      {
         return (((double)(l-m-1))*x*computeLegendrePolynom(l,m-1,x) -
                 ((double)(l+m-1))*computeLegendrePolynom(l-1,m-1,x)) / Math.sqrt(1.0-x*x);
      }
      if (m &lt; 0)
      {
         int sign = 1;
         for(int i = 1 ; i &lt;= -m ; ++i) 
         {
            sign *= -1;
         }
         return sign*(((double)fac(l-m))/(double)fac(l+m))*computeLegendrePolynom(l,-m,x);
      }
      if (l &gt; 1)
      {
         return (((double)(2*(l-1)+1))*x*computeLegendrePolynom(l-1,m,x) - 
                 ((double)((l-1)+m))*computeLegendrePolynom(l-2,m,x)) / (double)(l-m);
      }
      if (l == 1) return x;
      return 1.0;
   }

   private static double computeLaguerreFactor(int n, int l, double x)
   {
      double sum = 0.0;
      for (int k = 0 ; k &lt;= n-l-1 ; ++k)
      {
         int a = n+l;
         int b = n-l-1-k;
         double aOverB = fac(a)/(fac(b)*fac(a-b));
         double sign = 1.0;
         for (int i = 0 ; i &lt; k ; ++i)
         {
            sign *= -1.0;
         }
         sum += aOverB * sign * Math.pow(x,k) / (double)fac(k);
      }
      return sum;
   }

   private static long fac(long f)
   {
      long out = 1;
      for (int i = 1 ; i &lt;= f ; ++i)
      {
         out *= i;
      }
      return out;
   }

}
</code></pre>
<p>Die Zusatzinformation ist hierbei das Zeugs, das mit @ beginnt. Wie Du siehst, braucht man relativ zum funktionalen Code da nicht sooo viel dazuschreiben, um eine bedienbare GUI zu bekommen, deshalb ist das für meine Zwecke eigentlich ganz gut. Soetwas kannst Du vermutlich nicht direkt auf C++ übertragen, Aber Ihr C++ler seid ja oft ziemlich trickreich mit eurer Sprache. Vielleicht kriegst Du ja ne Idee, wie Du etwas ähnliches realisieren könntest.</p>
<p>PS: Im funktionalen Codestück da oben ist übrigens irgendwo ein Bug drin. ...und zwar in der Berechnung der Wellenfunktion für m!=0. Falls ihn einer sieht, kann er ja mal sagen, wo er ist. Ich würde mich sehr freuen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442933</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442933</guid><dc:creator><![CDATA[Gregor]]></dc:creator><pubDate>Thu, 24 Jan 2008 16:35:26 GMT</pubDate></item><item><title><![CDATA[Reply to Das nervige Bauen des GUI... on Thu, 24 Jan 2008 16:37:53 GMT]]></title><description><![CDATA[<p>Gregor schrieb:</p>
<blockquote>
<p>Aber Ihr C++ler seid ja oft ziemlich trickreich mit eurer Sprache. Vielleicht kriegst Du ja ne Idee, wie Du etwas ähnliches realisieren könntest.</p>
</blockquote>
<p>welch gehässige bemerkung. könnte glatt von mir sein.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442939</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442939</guid><dc:creator><![CDATA[läster-freak]]></dc:creator><pubDate>Thu, 24 Jan 2008 16:37:53 GMT</pubDate></item><item><title><![CDATA[Reply to Das nervige Bauen des GUI... on Thu, 24 Jan 2008 16:48:49 GMT]]></title><description><![CDATA[<p>läster-freak schrieb:</p>
<blockquote>
<p>Gregor schrieb:</p>
<blockquote>
<p>Aber Ihr C++ler seid ja oft ziemlich trickreich mit eurer Sprache. Vielleicht kriegst Du ja ne Idee, wie Du etwas ähnliches realisieren könntest.</p>
</blockquote>
<p>welch gehässige bemerkung. könnte glatt von mir sein.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>Das war durchaus positiv gemeint. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> Nicht, dass mich da wer falsch versteht. Ich habe schon öfter mal gesehen, dass jemand etwas mit C++ gemacht hat, von dem ich dachte, dass man es so nicht mit C++ machen könnte. Insofern wäre ich hier auch nicht überrascht, wenn jemand eine ähnliche Lösung in C++ hinkriegt. Ist vielleicht ne ganze Menge Aufwand, keine Frage. ...aber andererseits: In dem Framework, das mir die Dialoge generiert, steckt auch ne ganze Menge Aufwand drin. Java ist für soetwas auch nicht gerade ideal. ...es ist in Java machbar: Wenn man die Sprache voll und ganz ausnutzt. Ich kann C++ nicht so weit, dass ich sagen könnte, was man damit alles machen kann, wenn man die Sprache voll ausnutzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442948</guid><dc:creator><![CDATA[Gregor]]></dc:creator><pubDate>Thu, 24 Jan 2008 16:48:49 GMT</pubDate></item><item><title><![CDATA[Reply to Das nervige Bauen des GUI... on Thu, 24 Jan 2008 17:04:22 GMT]]></title><description><![CDATA[<p>this-&gt;that schrieb:</p>
<blockquote>
<p>Der Punkt mit &quot;unversierte Benutzer&quot; ist Quatsch. Oder sind die Anwender von 3dsmax, maya, vs, fx composer und Photoshop unversierte Benutzer?</p>
</blockquote>
<p>Dein Punkt ist völliger Quatsch. Fällt dir nicht auf was alle von dir genannten Programme gemein haben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442962</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442962</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Thu, 24 Jan 2008 17:04:22 GMT</pubDate></item><item><title><![CDATA[Reply to Das nervige Bauen des GUI... on Thu, 24 Jan 2008 18:10:18 GMT]]></title><description><![CDATA[<p>hui, toll rege Beteiligung <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Also mit den unversierten Benutzern meine ich folgendes: kleine tools, die eigentlich nur auf der kommandozeile laufen könnten zB ein Verzeichnis als eingabe, eine datei als ausgabe. Da braucht man eig keine GUI. Wenn ich jetzt aber fürn bekannten was baue, dann kann der nicht mit kommandozeile umgehn -&gt; daher unversierte benutzer.</p>
<p>Ich meinte eigentlihc gar nicht mal so, dass das bauen des dialogs so nervig ist, sondern eher das verknüpfen von dialog mit funktionen. Die MFC benutz ich nicht mehr, da war das doch relativ einfach, das stimmt: doppelklick auf button und fertig.</p>
<p>Das ist das, was mich besonders nervt, dass man alles sozusagen als ereignsroutine machen muss, und das nicht iwie automatisieren kann.</p>
<p>@kommandozeilen-freak: Es geht mir hier gar nicht um große guis, sondern vl ein kleines fenster mit optionsdialog oder so. und wenn man grad keinen designer zur hand hat, muss man das halt selbst machen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1197">@gregor</a>: Diese 5oder 6 zeilen mit @ machen deinen Dialog? das wär natürlich ziemlich geil, leider kann ich überhaupt kein java. KAnnst du in etwa sagen, wie du das gemacht hast? Kanns mir vl so vorstellen, dass ich ne basisklasse Dialog habe, und dem füg ich dann zB mittels AddInput(&amp;variable, grenzen etc.) ein eingabefeld hinzu. Aber wie realisierst du in dem Fall das Layout? also dass zB zwei textfelder nebeneinader sind und anderes dann darunter etc.?</p>
<p>@... Was ist ein RAD-Editor? bei google hab ich nix gefunden. Und wie meinst du kann man da mit Templates was machen? gib maln tipp bitte</p>
<p>Liebe Grüße, Maxi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443005</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443005</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Thu, 24 Jan 2008 18:10:18 GMT</pubDate></item><item><title><![CDATA[Reply to Das nervige Bauen des GUI... on Thu, 24 Jan 2008 18:17:51 GMT]]></title><description><![CDATA[<p>finix schrieb:</p>
<blockquote>
<p>this-&gt;that schrieb:</p>
<blockquote>
<p>Der Punkt mit &quot;unversierte Benutzer&quot; ist Quatsch. Oder sind die Anwender von 3dsmax, maya, vs, fx composer und Photoshop unversierte Benutzer?</p>
</blockquote>
<p>Dein Punkt ist völliger Quatsch. Fällt dir nicht auf was alle von dir genannten Programme gemein haben?</p>
</blockquote>
<p>Sie haben eine komplexe GUI und werden alle nicht von unversierten Benutzern benutzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443010</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443010</guid><dc:creator><![CDATA[this-*gt*that]]></dc:creator><pubDate>Thu, 24 Jan 2008 18:17:51 GMT</pubDate></item><item><title><![CDATA[Reply to Das nervige Bauen des GUI... on Thu, 24 Jan 2008 18:19:27 GMT]]></title><description><![CDATA[<p>Maxi schrieb:</p>
<blockquote>
<p>@... Was ist ein RAD-Editor? bei google hab ich nix gefunden. Und wie meinst du kann man da mit Templates was machen? gib maln tipp bitte</p>
</blockquote>
<p>Ein RAD-Editor ist ein Editor in dem du deine GUI zusammenklicken kannst. Da kannst du dann auch Events eingeben. Für wxWidgets gibt es z.B. wxSmith, welcher bei Code::Blocks dabei ist, oder wxFormBuilder als Standalone programm.</p>
<p>Was Templates angeht, man kann gewisse Dinge mit Templates auslagern, in dem man sich für verschiedene Controls Klassen schreibt, die diese Wrappen. Dann benutzt man diese Klassen, statt die der Library.</p>
<p>phlox</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443011</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443011</guid><dc:creator><![CDATA[phlox81]]></dc:creator><pubDate>Thu, 24 Jan 2008 18:19:27 GMT</pubDate></item><item><title><![CDATA[Reply to Das nervige Bauen des GUI... on Thu, 24 Jan 2008 18:51:25 GMT]]></title><description><![CDATA[<p><a href="http://opensource.adobe.com/group__asl__overview.html#asl_overview_adam_and_eve_architecture" rel="nofollow">http://opensource.adobe.com/group__asl__overview.html#asl_overview_adam_and_eve_architecture</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443035</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Thu, 24 Jan 2008 18:51:25 GMT</pubDate></item><item><title><![CDATA[Reply to Das nervige Bauen des GUI... on Thu, 24 Jan 2008 19:54:28 GMT]]></title><description><![CDATA[<p>this-&gt;that schrieb:</p>
<blockquote>
<p>finix schrieb:</p>
<blockquote>
<p>this-&gt;that schrieb:</p>
<blockquote>
<p>Der Punkt mit &quot;unversierte Benutzer&quot; ist Quatsch. Oder sind die Anwender von 3dsmax, maya, vs, fx composer und Photoshop unversierte Benutzer?</p>
</blockquote>
<p>Dein Punkt ist völliger Quatsch. Fällt dir nicht auf was alle von dir genannten Programme gemein haben?</p>
</blockquote>
<p>Sie haben eine komplexe GUI und werden alle nicht von unversierten Benutzern benutzt.</p>
</blockquote>
<p>Zum Beispiel. Interessant, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443080</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Thu, 24 Jan 2008 19:54:28 GMT</pubDate></item><item><title><![CDATA[Reply to Das nervige Bauen des GUI... on Thu, 24 Jan 2008 20:17:35 GMT]]></title><description><![CDATA[<p>finix schrieb:</p>
<blockquote>
<p>this-&gt;that schrieb:</p>
<blockquote>
<p>finix schrieb:</p>
<blockquote>
<p>this-&gt;that schrieb:</p>
<blockquote>
<p>Der Punkt mit &quot;unversierte Benutzer&quot; ist Quatsch. Oder sind die Anwender von 3dsmax, maya, vs, fx composer und Photoshop unversierte Benutzer?</p>
</blockquote>
<p>Dein Punkt ist völliger Quatsch. Fällt dir nicht auf was alle von dir genannten Programme gemein haben?</p>
</blockquote>
<p>Sie haben eine komplexe GUI und werden alle nicht von unversierten Benutzern benutzt.</p>
</blockquote>
<p>Zum Beispiel. Interessant, oder?</p>
</blockquote>
<p>KA was du daran so interessant findest. Das war auf jeden Fall der Punkt, den ich zeigen wollte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443101</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443101</guid><dc:creator><![CDATA[this-*gt*that]]></dc:creator><pubDate>Thu, 24 Jan 2008 20:17:35 GMT</pubDate></item><item><title><![CDATA[Reply to Das nervige Bauen des GUI... on Thu, 24 Jan 2008 21:48:52 GMT]]></title><description><![CDATA[<p>kommandozeilen-freak schrieb:</p>
<blockquote>
<p>zwutz schrieb:</p>
<blockquote>
<p>warum sollte die GUI auch schneller gehen? Sie ist auch mindestens genauso wichtig wie die Programmlogik.<br />
Die Programmlogik interessiert einen Nutzer nicht. Ihm interessiert die GUI. Und wenn ihm die nicht passt, bringt die beste Logik nichts.</p>
</blockquote>
<p>was werden denn hier für verschärfte klicki-bunti argumente gebracht?^^ <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
übrigens; das bauen einer schicken GUI ist eher aufgabe eines designers, weniger die eines programmierers.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>den Teil der GUI, den ein Designer machen sollte, hab ich mit meinem Kommentar nicht gemeint. Es geht um den Teil der GUI, um die sich ein Programmierer kümmern muss. Korrekte Tabreihenfolge, Verknüpfung mit der Programmlogik, Menüstruktur, Dialogdesign.<br />
Und von Klicki-Bunti hab ich auch kein Wort gesagt.</p>
<p>Gutes Beispiel: Blender. Erstklassiges 3D-Modellierungsprogramm, noch dazu kostenlos. Da die GUI aber zumindest anfangs grottenschlecht war (im Sinne von unübersichtlich), haben es vor allem Neueinsteiger schwer, damit zu arbeiten.</p>
<p>Eine gut durchdachte (nicht designte) GUI bringt mehr Nutzer, als eine gute Programmlogik (letztere dient dann eher dazu, die Nutzer auch zu halten). Daran sollte man vor allem denken, wenn man seine Programme auch vertreiben will</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443169</guid><dc:creator><![CDATA[zwutz]]></dc:creator><pubDate>Thu, 24 Jan 2008 21:48:52 GMT</pubDate></item><item><title><![CDATA[Reply to Das nervige Bauen des GUI... on Fri, 25 Jan 2008 07:09:23 GMT]]></title><description><![CDATA[<p>im grunde hat zwutz recht. einen anwender wird kaum jucken, wie ein programm intern arbeitet, solange es genau das macht, was er möchte. dem anwender ist es wurst, ob sein tool eine VB anwendung ist, die allen code in button events versteckt oder obs ne c++ anwendung ist, die sauber und elegant logik und GUI trennt.</p>
<p>sauberes entwickeln macht man für sich selbst. für wartbarkeit. allerdings fällt das dann auch irgendwann wieder auf den anwender zurück, wenn der frickelcode irgendwann mehr bugs enthält, als der gut durchdachte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443222</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443222</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Fri, 25 Jan 2008 07:09:23 GMT</pubDate></item><item><title><![CDATA[Reply to Das nervige Bauen des GUI... on Fri, 25 Jan 2008 08:45:37 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich kann nur sagen, daß bei dem was ich dezeit mache die eigentliche Verarbeitung eigentlich (mathematisch gesehen) trivial ist. Aber da das Programm übers Internet für möglicherweise tausende Benutzer rausgegeben werden muß, kann ich es mir nicht leisten, daß ich da groß Nutzerbetreuung machen muß. Also muß alles für möglichst JEDEN Benutzer ausreichend verständlich und selbsterklärend sowie auch zuverlässig und korrekt sein. Hab ich auch immer Probleme meinem Chef klarzumachen warum ich da so viel Schnuckebutz treiben muß, es soll doch nur ein kleines Tool werden. Aber wenn von den Nutzern jeder nur 10 Minuten Betreuungszeit braucht hab ich damit einen Fulltimejob. Also muß ich dafür sorgen, daß alle ohne mich klar kommen. Das bringts nun mal mit sich, daß die Verarbeitung nur den kleinsten Teil der ganzen Sache ausmacht. Das meiste ist Bedienerschnittstelle. Bediener sind nun mal Menschen und machen Fehler. Also muß man irgendwie daruf reagieren. Daran wird sich bei Programmen, die man aus der Hand geben muß auch nie allzuviel ändern.<br />
Was mir bei der ganzen Sache etwas hilft ist, daß man bei C++-Builder und Delphi (beide Borland) mit eigenen Komponenten arbeiten kann, in die man schon eine ganze Menge Selbständigkeit reinlegen kann. Wieweit das bei anderen Umgebungen geht kann ich aber nicht sagen.</p>
<p>Was den Designer angeht, sicher wäre es schön einen zu haben, aber ich bin schon mal froh mich selbst zu haben. In einem Einmannteam ist man alles in einer Person. Gleichzeitig ist aber gerade die Aufgabe des Designers bei einem Programm die wichtigste von allen. Das erste Erscheinungsbild nach dem Starten und die ersten Interaktionen mit dem Nutzer entscheiden darüber ob das Programm angenommen und akzeptiert wird. Ob der Nutzer also mit SEINEM Programm arbeitet und sich dabei wohlfühlt oder nur mal nogedrungen eine Zwangsjacke anzieht.<br />
Für die eigentliche Funktion ist eine einladende angenehme Nutzerschnittstelle völlig unwichtig, aber der Nutzer wird einen unaufgeräumten Misthaufen nie als SEIN Programm ansehen.</p>
<p>Gruß Mümmel</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443255</guid><dc:creator><![CDATA[muemmel]]></dc:creator><pubDate>Fri, 25 Jan 2008 08:45:37 GMT</pubDate></item></channel></rss>