- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 42

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

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    53
    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! \/

  2. #2
    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");


  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    53
    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! \/

  4. #4
    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?

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    53
    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! \/

  6. #6
    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)

  7. #7
    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.

Ä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
  •  

LiFePO4 Speicher Test