- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
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-Spezialist Avatar von schorsch_76
    Registriert seit
    25.03.2012
    Ort
    Kurz vor Neuschwanstein
    Alter
    48
    Beiträge
    456
    Klicke auf die Grafik für eine größere Ansicht

Name:	2016-06-16-185606_1920x1080_scrot.jpg
Hits:	10
Größe:	55,3 KB
ID:	31708


    Und hier ist der Code

    main.cpp
    Code:
    #include <QApplication>
    #include <QPushButton>
    
    #include <QWidget>
    #include <QFileDialog>
    
    #include <iostream>
    
    class Window : public QWidget
    {
    	Q_OBJECT
    public:
    	explicit Window(QWidget *parent = 0);
    
    private slots:
    	void slotButtonClicked();
    	
    private:
    	QPushButton *m_button;
    };
    
    Window::Window(QWidget *parent)
    	: QWidget(parent)
    {
    	// Set size of the window
    	setFixedSize(100, 50);
     
    	// Create and position the button
    	m_button = new QPushButton("Hello World", this);
    	m_button->setGeometry(10, 10, 80, 30);
     
    	connect(m_button, SIGNAL (clicked()), this, SLOT (slotButtonClicked()));
    }
    
    void Window::slotButtonClicked()
    {
    	QString fname = QFileDialog::getOpenFileName(
    		this,
    		tr("Open File"),
    		"/home", "");
    	std::cout << fname.toUtf8().constData() << std::endl;
    }
    
    #include "main.moc"
    
    int main(int argc, char **argv)
    {
     QApplication app (argc, argv);
     
     Window wnd;
     wnd.show();
     
     return app.exec();
    }
    CMakeLists.txt
    Code:
    cmake_minimum_required(VERSION 2.8.11)
    
    PROJECT(test C CXX)
    
    set(CMAKE_AUTOMOC ON)
    set(CMAKE_INCLUDE_CURRENT_DIR ON)
    
    find_package(Qt5Widgets  REQUIRED)
    
    include_directories(${Qt5Widgets_INCLUDE_DIRS})
    
    SET(SRCS
    	main.cpp
    )
    
    SET(LIBS
      ${Qt5Widgets_LIBRARIES}
    )
    
    
    # Executable
    ADD_EXECUTABLE(qt-test	${SRCS} )
    
    # Linking
    TARGET_LINK_LIBRARIES(qt-test ${LIBS})

    Dateisystem schaut so aus:
    Code:
    georg@xps:/tmp$ tree qttest/
    qttest/
    ├── CMakeLists.txt
    └── main.cpp
    
    0 directories, 2 files
    Bauen
    Code:
    georg@xps:/tmp$ cd qttest
    georg@xps:/tmp/qttest$ mkdir build
    georg@xps:/tmp/qttest$ cd build/
    georg@xps:/tmp/qttest/build$ cmake ..
    -- The C compiler identification is GNU 5.3.1
    -- The CXX compiler identification is GNU 5.3.1
    -- Check for working C compiler: /usr/bin/cc
    -- Check for working C compiler: /usr/bin/cc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Check for working CXX compiler: /usr/bin/c++
    -- Check for working CXX compiler: /usr/bin/c++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /tmp/qttest/build
    georg@xps:/tmp/qttest/build$ make
    Scanning dependencies of target qt-test_automoc
    [ 25%] Automatic moc for target qt-test
    Generating main.moc
    [ 25%] Built target qt-test_automoc
    Scanning dependencies of target qt-test
    [ 50%] Building CXX object CMakeFiles/qt-test.dir/main.cpp.o
    [ 75%] Building CXX object CMakeFiles/qt-test.dir/qt-test_automoc.cpp.o
    [100%] Linking CXX executable qt-test
    [100%] Built target qt-test
    georg@xps:/tmp/qttest/build$
    AUsführen:
    Code:
    georg@xps:/tmp/qttest/build$ ./qt-test
    - - - Aktualisiert - - -

    Du must auch nicht die IDE nutzen. Ich nutze Emacs und cmake. cmake weil diese makefiles leicht zu schreiben sind und die Makros die Libs und Includes leicht finden.

  2. #2
    HaWe
    Gast
    herzlichen Dank für deine Mühe!
    cmake, make und makefile habe ich allerdings noch nie genutzt und weiß auch gar nicht, was die machen und wie die funktionieren.
    Ich nutze nur die Geany Einstellungen für Compile und Build, die sehen dann bei mir so ähnlich wie hier aus:

    Geany settings for compile:

    g++ -Wall -pthread -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -c "%f" -lshapes -lwiringPi -lrt

    Geany settings for make/build:

    g++ -Wall -pthread -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -o "%e" "%f" -lshapes -L/opt/vc/lib -lOpenVG -lEGL -lwiringPi -lrt


    Lässt sich das für QTCode entsprechend ändern?

  3. #3
    Erfahrener Benutzer Roboter-Spezialist Avatar von schorsch_76
    Registriert seit
    25.03.2012
    Ort
    Kurz vor Neuschwanstein
    Alter
    48
    Beiträge
    456
    Das was du in deine geany Einstellungen gemacht hast ist praktisch schon ein kleines Makefile

    Du kannst das auch mit geany machen. Machst dein Verzeichnis qttest. Erstellst build. "cmake ..". (was ich eben oben gemacht habe).

    Für compile machst du dann
    "make -C /tmp/qttest/build/"

    clean
    "make -C /tmp/qttest/build/ clean"

    Wenn du das CmakeLists.txt änderst, wird das bei make automatisch aktualisiert (bsp. neues cpp file). Sehr praktisch!

    Edit: Für cmake gibts auch ein Gui:

    cmake-curses-gui - curses based user interface for CMake (ccmake)
    cmake-qt-gui - Qt4 based user interface for CMake (cmake-gui)

    curses (shell)
    Qt-gui: Eben Gui

    Edit2: Deine Libs machst du dann eben bei LIBS rein
    -lrt
    -lpthread

    etc

    Include directories .. siehe Oben ...

  4. #4
    HaWe
    Gast
    danke!
    1 Sache habe ich wschl irgendwo verpasst:
    was muss ich wie auf dem Pi installieren, damit QT läuft?
    apt-get install
    oder
    git git-clone
    oder wie immer man so was macht
    (bin blutiger Linux-Anfänger)

  5. #5
    Erfahrener Benutzer Roboter-Spezialist Avatar von schorsch_76
    Registriert seit
    25.03.2012
    Ort
    Kurz vor Neuschwanstein
    Alter
    48
    Beiträge
    456
    Du brauchst:

    sudo apt-get install cmake-qt-gui build-essential qt5-default

    Das sollte alles sein.

    (Denke Jessie brauchst du für Qt5. )

  6. #6
    HaWe
    Gast
    jap, ist installiert.
    (Habe allerdings vorher sudo apt-get update und upgrade vergessen, hoffe das macht nichts)


    jetzt als nächstes das hier...?
    Code:
      cd qttest
      mkdir build
      cd build/
      cmake ..

  7. #7
    Erfahrener Benutzer Roboter-Spezialist Avatar von schorsch_76
    Registriert seit
    25.03.2012
    Ort
    Kurz vor Neuschwanstein
    Alter
    48
    Beiträge
    456
    Habs gerade auf dem Pi3 ausprobiert. Geht da auch. Mit Qt kannst du auch Qnwendungen für BSD und Windows schreiben. Cross Plattform

    Code:
    pi@raspberry-pi3:~/qttest$ mkdir build
    pi@raspberry-pi3:~/qttest$ cd build/
    pi@raspberry-pi3:~/qttest/build$ cmake ..
    -- The C compiler identification is GNU 4.9.2
    -- The CXX compiler identification is GNU 4.9.2
    -- Check for working C compiler: /usr/bin/cc
    -- Check for working C compiler: /usr/bin/cc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working CXX compiler: /usr/bin/c++
    -- Check for working CXX compiler: /usr/bin/c++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /home/pi/qttest/build
    pi@raspberry-pi3:~/qttest/build$ make
    Scanning dependencies of target qt-test_automoc
    [ 33%] Automatic moc for target qt-test
    Generating main.moc
    [ 33%] Built target qt-test_automoc
    Scanning dependencies of target qt-test
    [ 66%] Building CXX object CMakeFiles/qt-test.dir/main.cpp.o
    [100%] Building CXX object CMakeFiles/qt-test.dir/qt-test_automoc.cpp.o
    Linking CXX executable qt-test
    [100%] Built target qt-test
    pi@raspberry-pi3:~/qttest/build$
    - - - Aktualisiert - - -

    Ja, genau. Die zwei Files sollten dann unter qttest liegen. Das update spielt hier gar keine Rolle

  8. #8
    HaWe
    Gast
    muss ich vorher eine makefile- Datei erstellen / copy/pasten ?
    oder einfach nur die 4 Zeilen, ohne irgendwas selber zu schreiben?

    cd qttest
    mkdir build
    cd build/
    cmake ..

    - - - Aktualisiert - - -

    cd qttest
    Datei nicht gefunden

  9. #9
    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! ) :-/

  10. #10
    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! \/

Seite 1 von 2 12 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
  •  

fchao-Sinus-Wechselrichter AliExpress