- 3D-Druck Einstieg und Tipps         
Seite 4 von 5 ErsteErste ... 2345 LetzteLetzte
Ergebnis 31 bis 40 von 42

Thema: Raspbian C/C++ : fertige OpenFileDialog oder SaveFileDialog Komponenten

  1. #31
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    707
    Anzeige

    Praxistest und DIY Projekte
    Am nächsten kommt dem wohl das in Beitrag #4 und #6 erwähnte.

    Aber auch in dem in #6 verlinken Video kommt statt cmake das Programm pkg-config zum Einsatz. Das wird direkt in Compileraufrufen verwendet und baut die ganzen includes und Einstellungen für die Verwendung einer Bibliothek automatisch zusammen, wenn diese bei pkg-config registriert ist. Keine Ahnung, ob sich das mit Geany verträgt.

  2. #32
    HaWe
    Gast
    Ziel muss sein:
    nur 1 Zeile schreiben, um einen File per Mini-Browserfenster auszuwählen und zu öffnen - alles andere ist zu kompliziert.

    fp = OpenFileDialog(); // File auswählen und öffnen über ein Filebrowser-Auswahlmenü

    makec und makefile und make: niemals!
    ich trage ggf. die neuern extra-Parameter noch zusätzlich in Geany ein (was mittlerweile schon lang genug ist, um die komplette British Library zu füllen
    - und bei Delphi, Borland C++ Builder und Arduino IDE musste ich mich gottseidank noch nichtmal damit rumschlagen! ) :-/

  3. #33
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Hallo,

    das geht evtl. über eine Pipe. zenity bietet einen FileDialog für X-Server. Da ich keine GUI nutze, kann ich es nicht testen.

    Folgender Aufruf sollte den gewählten Dateinamen zurückgeben:
    Code:
    zenity --file-selection
    Die Ausgabe dann halt per Pipe einlesen. Das Programm läuft dann halt nur, wenn zenity auch installiert ist.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  4. #34
    HaWe
    Gast
    hallo,
    ich bin nicht sicher, ob ich das richtig verstehe, denn ich kenne auch keinen X Server.
    ist das so in der Art zu verstehen...?

    FILE * fp;
    fp << system("zenity --file-selection");


  5. #35
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Hallo,
    X-Server ist der 'Fensterverwalterer'. Normal startest Du die GUI mit startX.
    Eine Pipe mache ich normal mit popen auf.

    Hier ein ungetestetes Beispiel aus dem Kopf

    Code:
        FILE *f;
    
        if(!(f = popen("zenity --file-selection", "r"))){
          strcpy(Dateiname,"Falsch");        
          exit(1);
        }
        char Text[1024]="";
        fgets(Text, sizeof(Text), f);
        fclose(f);
        if(strlen(Text)<2){ //Kein Dateiname übergeben / Abbrechen geklickt, etc
            strcpy(Dateiname,"Falsch");
        }else{ //Dateiname sollte in Text stehen.
          strcpy(Dateiname,Text);
        }
    Damit würde ich mal probieren eine gewünschte Funktion zu bauen.
    Geändert von peterfido (17.06.2016 um 13:49 Uhr)
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  6. #36
    HaWe
    Gast
    danke, das sieht ja sehr bekannt aus:
    f = popen("zenity --file-selection", "r");
    ... genau gleich wie fopen!
    f = fopen("/path/filename", "r");
    schön, wenn man auf was bekanntes trifft

    Bevor ich jetzt 3 Stunden brauche , um zenity zu installieren, und dann klappts doch nicht ....

    Könnte das vlt einmal jemand vor-testen, der bereits zenity bei sich auf dem Pi installiert hat?

  7. #37
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Hallo,

    bei meinen Raspis ist das drauf. Evtl. ist es standard.?. Einfach mal den Befehl aufrufen und schauen, was passiert.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  8. #38
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Zenity scheint auf Debian Betriebssystemen Standard zu sein.
    Hab ein bischen mit Peterfido's Code gespielt:
    Code:
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    
    int main() {
      FILE *f;
      char Dateiname[1024] = ""; 
      int c;
    
    
      /* Zenity für File-Dialog benutzen */
      freopen("/dev/null", "w", stderr); // Warnungen von zenity ignorieren
      if(!(f = popen("zenity --file-selection", "r"))){
        strcpy(Dateiname, "Falsch");        
        exit(1);
      }
      freopen("/dev/tty", "w", stderr);
      fgets(Dateiname, sizeof(Dateiname), f);
      fclose(f);
      if(strlen(Dateiname) < 2){ //Kein Dateiname übergeben / Abbrechen geklickt, etc
        strcpy(Dateiname, "Falsch");
      }
    
    
      /* Inhalt der Datei ausgeben */
      printf("Dateiname: %s", Dateiname);
      Dateiname[strlen(Dateiname)-1] = '\0'; // '\n'-Stringende entfernen
      f = fopen(Dateiname, "r");
      if (f) {
        while ((c = getc(f)) != EOF) 
          putchar(c); 
        fclose(f);
      }
    }
    Geändert von Sisor (17.06.2016 um 20:18 Uhr)

  9. #39
    HaWe
    Gast
    bei der letzten GT Deinstallation scheint er mir das g++ gelöscht zu haben: ich kann nicht mehr mit g++ compilieren ("g++ not found")

    was ein Sch**ss.
    Jetzt muss ich erst mal schauen, wo ich ein altes Pi Image neu auf SD laden kann
    Linux: ich könnte ko**en.

  10. #40
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Hallo,

    zum programmieren / rumtesten nutze ich einen extra Pi. Dieser hat alles Mögliche drauf und deinstalliert wird da normal nix. Wenn die Programme dann auf einem anderen Pi laufen sollen und irgendwas fehlt, installiere ich es da nach.

    Wenn nur g++ fehlt, dann kannst Du das auch einzeln nachinstallieren.

    Als Backup habe ich ein BASH-Script, welches auf dem NAS immer den kompletten Inhalt der SD-Karte ablegt. Das Script ist auf allen Raspis vorhanden und wird vor / nach größeren Änderungen ausgeführt.

    Code:
    #!/bin/bash
    #
    # DS mounten
    #
    MountPoint=/tmp/ds
    RaspiName=RaspiBPlus_
    
    RaspiName=$RaspiName$(date +%Y%m%d-%k%M%S)
    echo $RaspiName
    
    service rpcbind start
    if [ ! -e $MountPoint ]; then
        mkdir $MountPoint
    fi
    
    mount -t nfs 192.168.2.15:/volume1/Raspberry $MountPoint
    
    dd if=/dev/mmcblk0 of=$MountPoint/$RaspiName.img bs=1M
    
    umount $MountPoint
    service rpcbind stop
    Wichtig ist, dass die Konsole / SSH Session nicht geschlossen wird, während das Script läuft. Zurückspielen geht per Windows Tool win32diskimager-binary06.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

Seite 4 von 5 ErsteErste ... 2345 LetzteLetzte

Ähnliche Themen

  1. [ERLEDIGT] Raspian Wheezy erschienen
    Von TheDarkRose im Forum Raspberry Pi
    Antworten: 62
    Letzter Beitrag: 08.08.2012, 15:59
  2. Mechanisches Komponenten
    Von Neo-Alucard im Forum Asuro
    Antworten: 5
    Letzter Beitrag: 23.02.2010, 16:55
  3. Roboterteile und -komponenten
    Von squelver im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 3
    Letzter Beitrag: 15.11.2007, 11:22
  4. Welche Komponenten ???
    Von tigerharm im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 5
    Letzter Beitrag: 10.03.2007, 20:41
  5. 3D Steuerung mit RN-Komponenten
    Von BOH im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 4
    Letzter Beitrag: 23.03.2006, 20:06

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress