Newsticker mit C/C++ ?



  • Meinst du ein Newsticker auf einer Homepage? Dann google mal nach CGI. (http://freshmeat.net/projects/srsss/)

    Ansonsten gibt es doch zahlreiche Dinge:
    http://freshmeat.net/projects/snownews/

    Oder schau dir ein Programm an, was ich selbst geschrieben habe bbslashdot, das ist ein Newsticker, der /. Nachrichten anzeigt.



  • Wieso willst du es überhaupt unbedingt in c++ machen?? Wie die anderen schon gesagt haben, es gibt ja noch andere Sprachen (wobei c++ natürlich die beste ist *gg*)

    Gruß eXitus



  • Ich kann es nicht in Java oder JavaScript schreiben, da es in eine andere (Linux-)Applikation eingebunden werden soll. Es muss also unbedingt C/C++ sein, damit es in bestehenden Quellcode eingebunden bzw. angebunden werden kann. Es muss also defintiv ein NewsTicker in C/C++ sein, der am besten aus einer Textdatei oder irgendeiner anderen Datei die Daten ausliest.



  • kingruedi, hab dein programm mal runtergeladen, vielen dank dafür, aber weiß ich jetzt nicht ganz wie ich es starte bzw. bediene. Sind für ein einfachen newsticker in C/C++ tatsächlich so komplexe Strukturen notwendig ?



  • Nein, du gehst das Projekt aber auch total falsch an. Im Endeffekt ist das was du willst ja ein Widget, dass die alle n-Minuten eine Nachricht anzeigen soll.

    Also wenn du nun mit der Planung anfängst musst du beachten:
    * Was macht der Benutzer mit den Nachrichten?
    * Woher kommen die Nachrichten/In welchem Format sind Sie? (zB. RSS)
    * Gibt es bereits Komponenten um die Nachrichten zu verarbeiten?
    * Welches Toolkit will ich zur Darstellung verwenden?
    * Welche Komponenten kann ich aus dem Toolkit bereits verwenden?

    Im Endeffekt kannst du einen Newsticker wenn du GTKmm oä. benutzt in wenigen Zeilen basteln. bbslashdot ist so umständlich, weil ich erstmal die XLib gewrapt hab.



  • Ja, richtig, ich will ein eigenes Widget in dem ein Newsticker abgespult wird. Das Problem ist wohl, dass ich nicht genau weiß, wie ich ansetzen soll, ihn aber schnell brauche. Ich habe zwar Grundkenntnisse in C/C++, kann mit den ganzen Begriffen und Befehlen auch was anfangen, aber weiß jetzt eben nicht, wie man da etwas programmiert, was sich ähnlich diesen Java-Web-Newstickern verhält, d.h. sich bewegt. Die Dateiarbeit, d.h. die Art des Einlesens des enstprechenden Textes habe ich gedanklich nach hinten geschoben, weil das etwas ist, was man meines Erachtens schnell ändern kann. Ich hatte jetzt gedacht, am Anfang erstmal eine txt-Datei Zeile für Zeile einzulesen und diese dann durch den Ticker laufen zu lassen. Mir gehts jetzt erstmal darum, einen Quellcode-technischen Anfang zu finden. Der Rest, dh. die genaue Organistion des ganzen ergibt sich dann. Ich brauche aber defintiv erstmal ein paar Zeilen von oder ein Tutorial über die Programmierung eines Newstickers.
    Wozu ich das wann wo brauche ist meines Erachtens für das Prinzip erstmal unwichtig, wichtig ist, dass ich da einen Einstieg finde. Ich suche mich nämlich schon seit Tagen durch alle möglichen Suchmaschinen und Tutorials. Aber keiner scheint jemals sowas in Quellcodeform ins Netz gestellt zu haben.



  • Du machst dir wohl am besten ein eigenes Widget und schreibst in gewissen Abständen den Text hinein und verschiebst dabei die Position.

    Ein kleines Beispiel:

    Ticker.H:

    #include <qwidget.h>
    #include <qpainter.h>
    #include <qtimer.h>
    
    class Ticker : public QWidget
    {
       Q_OBJECT
    
    public:
       Ticker(QString const & text);
       void paintEvent( QPaintEvent *);
    
    public slots:
       void tick();
    
    private:
       long pos;
       QString text;
       QTimer timer;
    };
    

    Ticker.C

    #include <ticker.H>
    
    Ticker::Ticker(QString const & text) : pos(0), text(text), timer(this)
    {
          connect( &timer, SIGNAL(timeout()), this, SLOT(tick()) );
          timer.start( 100);
    }
    
    void Ticker::paintEvent( QPaintEvent *) {
       QPainter p(this);
       p.setPen( Qt::black );
       p.drawText(pos, 15, text );
    }
    
    void Ticker::tick() {
       --pos;
       update();
    }
    

    und als Anwendung mal mail.C

    #include <qapplication.h>
    #include <ticker.H>
    
    int main( int argc, char **argv )
    {
        QApplication a( argc, argv );
    
        Ticker hello( "Hello world! Dies ist ein ganz simpler Ticker");
        hello.resize( 100, 30 );
    
        a.setMainWidget( &hello );
        hello.show();
        return a.exec();
    }
    

    So kannst du das Programm testen:

    1. Alles in ein Verzeichnis packen.
    2. qmake -project <-- erzeugt <Verzeichnisname>.pro
    3. qmake <Verzeichnisname>.pro
    4. make



  • Ich geh nochmal genau auf Deine Sätze ein. Alsooooo:

    Im Endeffekt ist das was du willst ja ein Widget, dass die alle n-Minuten eine Nachricht anzeigen soll.

    Ja, das wäre sehr gut, wenn es alle paar Minuten automatisch guckt, ob neue Newszeilen vorhanden sind.

    Was macht der Benutzer mit den Nachrichten?

    Er soll sie erstmal weder anklicken, noch sonst irgendwas können. Er soll nur ein permanentes Widget klein am Bildschirmrand haben, dass ihm die neuesten Nachrichten zeigt. Eventuell auch erst per Mausklick zu starten.

    Woher kommen die Nachrichten/In welchem Format sind Sie? (zB. RSS)

    Wie gesagt, am Anfang erstmal txt-Datei oder so. Ganz einfach.

    Gibt es bereits Komponenten um die Nachrichten zu verarbeiten?

    Nein, es soll zwar in bereits vorhandenen Quellcode eingefügt werden, aber der hat nichts direkt mit den anzuzeigenden Newszeilen zu tun. Es soll einfach eine Datei existieren, in die ein Autor Newszeilen schreiben kann, welche dann später im Newsticker ganz normal nacheinander durch Widget zappeln. Lauftextmäßig eben.

    Welches Toolkit will ich zur Darstellung verwenden?

    Es ist eine Qt-Umgebung, in der es bereits ein Hauptwidget gibt. Aus diesem heraus soll der Newsticker im eigenen Widget starten. Zum Programmieren nehme ich Visual C++. Es soll wie gesagt kein kompliziertes System werden, sondern ein einfaches Fenster, das einen Lauftext darstellt.

    Im Endeffekt kannst du einen Newsticker wenn du GTKmm oä. benutzt in wenigen Zeilen basteln.

    Diese wenigen Zeilen würde ich gern mal exemplarisch haben. Nur um zu sehen, wie ich es angehen kann. Ich will hier natürlich von niemanden eine exakt passenden Musterlösung, sondern nur eine Einsiegshilfe. Allgemeine Foren bringen mich kaum weiter, da ich die erweiterten Grundlagen bei C/C++ schon beherrsche.

    Danke Euch allen !



  • Wow, danke Ponto ! Werd ich gleich mal ausprobieren. Den Text eben habe ich geschrieben, bevor ich Deinen Text gesehen habe. Danke !



  • Ponto, vielen Danke nochmal, aber so wie Du mir das da beschrieben hast, funktionierts nicht. Keine Ahnung, was ich am Ende für eine Datei aufrufen soll, die dann den Newsticker startet. Bin da wohl nicht so erfahren im Umgang mit diesen ganzen makes und co., merke ich gerade. Tut mir leid, hab alles so ausgeführt, wie Du sagtest, aber was dann ? Abgesehen davon, kommen während der Schritte, die Du aufgezählt hast, Fehlermeldungen.



  • Die Schritte, die ich genannt habe, funktionieren so unter Unix Systemen. Von Windows habe ich keine Ahnung und kann dir also nicht helfen. Wenn du aber etwas Qt kennst und deinen Compiler bedienen kannst, solltest du das Programm auch so hinkriegen.


Anmelden zum Antworten