it-swarm.com.de

So konfigurieren Sie CLion IDE für Qt Framework?

So konfigurieren Sie CLion IDE für Qt Framework? Ist IDE mit Qt kompatibel oder gibt es andere mit Qt kompatible IDEs?

Ich möchte nur etwas anderes als Qt Creator verwenden.

37
123qwe

Ich war so verzweifelt wie du, bis ich diese Quora-Diskussion ... gelesen habe - es hat perfekt für mich funktioniert!

Zusammenfassend gibt es zwei Hauptschritte:

Erstens verwendet CLion CMake, um Ihren Code zu kompilieren. Es basiert auf CMake-Konfigurationsdateien (z. B. "CMakeLists.txt"). Sie müssen Qt-basierte CMake-Befehle hinzufügen (die Zeilen mit 'find_package' und 'target_link_libraries'):

cmake_minimum_required(VERSION 3.5)
project(myqtproject)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(SOURCE_FILES main.cpp)
find_package(Qt5Widgets REQUIRED)                 <-- this line

add_executable(myqtproject ${SOURCE_FILES})

target_link_libraries(myqtproject Qt5::Widgets)   <-- this line

Zweitens muss CLion die von Qt installierte cmake-Binärdatei verwenden. Gehen Sie dazu zu: 'Preferences' -> 'Build, Execution, Deployment' -> 'CMake' und hängen Sie in 'CMake-Optionen' den von Qt verwendeten CMake-Pfad an, der sich in dem Verzeichnis befindet, in dem Qt installiert ist . Zum Beispiel unter OSX:

-DCMAKE_PREFIX_PATH=/Users/edouard/Qt/5.7/clang_64/lib/cmake

Sie können testen, ob alles gut funktioniert, indem Sie ein kleines Testskript in main.cpp ausführen:

#include <QApplication>
#include <QDebug>

using namespace std;

int main() {
    qDebug() << QT_VERSION_STR;
    return 1;
}

Was sollte etwas anzeigen wie:

/Users/edouard/Library/Caches/CLion2016.2/cmake/generated/myqtproject-89a4132/89a4132/Debug/untitled
5.7.0

Process finished with exit code 1

UPDATE

Ich hatte ein Problem mit dem Hinzufügen von Qt5-Modulen (zum Beispiel QSql). Sie können dies tun, indem Sie die CMakeLists.txt hinzufügen:

find_package(Qt5Sql REQUIRED)

direkt nach dem anderen find_package und in der letzten Zeile:

target_link_libraries(myqtproject Qt5::Widgets Qt5::Sql)

Dies ist bei allen anderen Qt5-Modulen möglich.

31
Edouard Berthe

Dieser Ansatz ist eine der einfachsten Methoden für die neueste Version von Qt.

Qt:    5.10.1
CLion: 2018.1.2
GDB:   8.1

Projektaufbau

In CLion:

  1. Erstellen Sie ein C++ Executable/Library Projekt
  2. Verwenden Sie dieses Beispiel "CMakeLists.txt" für allgemeine Konsolen-/GUI-Projekte, die Folgendes verwenden: QtCore, QtWidgets und QtQuick

CMakeLists.txt:

cmake_minimum_required(VERSION 3.10)
project(PROJECT_NAME)

set(CMAKE_CXX_STANDARD 14)

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_PREFIX_PATH "PATH_TO_QT/QT_VERSION/QT_Arch/lib/cmake")

find_package(Qt5Core REQUIRED)
find_package(Qt5Widgets REQUIRED)
find_package(Qt5Quick REQUIRED)

add_executable(PROJECT_NAME main.cpp MainWindow.cpp MainWindow.h qml.qrc)

target_link_libraries(PROJECT_NAME Qt5::Core)
target_link_libraries(PROJECT_NAME Qt5::Widgets)
target_link_libraries(PROJECT_NAME Qt5::Quick)
  • Die Ressourcendateien (.qrc) sollten der Liste add_executable in der Reihenfolge Hinzugefügt werden, damit moc seine Prozedur auf der Ressource ausführen kann und die interne Datei wie qmls, Texte usw. auf diese zugreifen kann.

  • qml-Dateien sollten in einer qrc-Datei enthalten sein und zur Laufzeit mit QQmlApplicationEngine geladen werden

Debuger:

Um in Debug-Sitzungen von Qt-Typen eine lesbare Ansicht zu erhalten, muss auf dem System eine neue GDB installiert sein und hübsche Drucker verfügbar sein:

Hübsche Drucker für Qt5:

1- LekensteynQt5 Pretty Printers (Arbeiten):

Adresse: https://github.com/Lekensteyn/qt5printers

Setup: ~/.gdbinit

python
import sys, os.path
sys.path.insert(0, os.path.expanduser('~/.gdb'))
import qt5printers
qt5printers.register_printers(gdb.current_objfile())
end

2- Offizielle (funktioniert nicht !!!):

"PATH_TO_QT/QT_VERSION/QT_Arch/Tools/QtCreator/share/qtcreator/debugger/"

Setup: ~/.gdbinit

Wie in der mitgelieferten Readme-Datei angegeben (funktioniert aber nicht!):

python sys.path.insert(1, '<path/to/qtcreator>/share/qtcreator/debugger/')
python from gdbbridge import *

Externe Werkzeuge

Fügen Sie unter "Datei -> Einstellungen -> Tools -> Externe Tools" 4 externe Tools hinzu:

Qt Creator:

Program:   "PATH_TO_QT/QT_VERSION/QT_Arch/Tools/QtCreator/bin/qtcreator"
Arguments: $FilePath$

UI-Designer:

Program:   "PATH_TO_QT/QT_VERSION/QT_Arch/lib/bin/designer")
Arguments: $FilePath$

LUpdate:

Program:   "PATH_TO_QT/QT_VERSION/QT_Arch/lib/bin/lupdate")
Arguments: $FilePath$ -ts $FileNameWithoutExtension$.ts

Linguist:

Program:   "PATH_TO_QT/QT_VERSION/QT_Arch/lib/bin/linguist")
Arguments: $FilePath$

Jetzt können Sie mit der rechten Maustaste auf diese Dateitypen und unter dem externen Tool klicken:

  1. Für .ui wählen Sie Qt Creator/Designer und beginnen Sie mit dem Design der Benutzeroberfläche
  2. Wählen Sie für .qml Qt Creator und entwerfen Sie die Benutzeroberfläche im QML-Editor
  3. Wählen Sie für .qrc Qt Creator aus und verwenden Sie den Ressourcen-Editor
  4. Wählen Sie für .cpp/.ui LUpdate aus, um die Übersetzungsdatei zu erstellen
  5. Für .ts wählen Sie Linguist und beginnen Sie mit der Übersetzung

Automatische Verschönerung

Wenn Sie in Qt Creator einen Beautifier wie "Uncrustify" verwendet haben, um den Code beim Speichern einer Quelldatei automatisch zu verschönern, dann:

  1. Installieren Sie das Plugin "Aktionen speichern"
  2. Unter "Datei -> Einstellungen -> Aktionen speichern"
  3. Prüfen:
    1. Aktive Speicheraktionen beim Speichern
    2. Datei umformatieren
  4. Deaktivieren Sie für beste Leistung:
    1. Importe organisieren
11
AshkanVZ

Sie können QT-Anwendungen in CLion erstellen. QT Stellt CMake-Module bereit, die sich um alle Details kümmern. 

Das folgende CMake-Skript erstellt die Beispielanwendung ' Dynamic Layouts Example '

cmake_minimum_required(VERSION 3.7)
project(qtlayoutexample)
set(CMAKE_CXX_STANDARD 14)

# Find QT packages
find_package(Qt5Widgets)

# Add the include directories for the Qt 5 Widgets module to
# the compile lines.
include_directories(${Qt5Widgets_INCLUDE_DIRS})

# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Instruct CMake to run moc automatically when needed.
set(CMAKE_AUTOMOC ON)

# Add compiler flags for building executables (-fPIE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")

qt5_generate_moc(main.cpp main.moc)

# Tell CMake to create the qtlayoutexample executable
add_executable(qtlayoutexample main.cpp dialog.cpp main.moc)

#Link the qtlayoutexample executable to the Qt 5 widgets library.
target_link_libraries(qtlayoutexample Qt5::Widgets)

Weitere Informationen zum Erstellen von Qt-Anwendungen mit CMake .

2
Tom

Dieser Link hat ein Quickstart-Projekt. Sie müssen lediglich CMAKE_PREFIX_PATH in CMakeLists in den Speicherort des Qt-Compilers ändern, den Sie verwenden möchten (mein ist gcc_64, sein Standardwert ist clang_64) bereits gesetzte Antworten:

https://github.com/ArneGockeln/qtstarter

Außerdem (unter Ubuntu-basierten Linux) musste ich die OpenGL-Bibliotheken wie hier beschrieben installieren ( https://askubuntu.com/questions/11378/how-do-i-set-up-an-opengl-programming -Umgebung ).

2
Halcyon

Wie Tom Lank erwähnt, können Qt-Projekte jetzt mit CMake verwaltet und erstellt werden, was CLion glücklich macht.

Das CMake-Handbuch von Qt5 beschreibt, wie. Qt bietet hier viel Magie unter der Haube und wird in der CMake-Dokumentation viel besser erklärt.

Was im Qt CMake-Handbuch oder oben nicht erwähnt wird, ist, dass Sie auch die Zeilen benötigen:

set(CMAKE_AUTOUIC ON) # if you have any .ui files
set(CMAKE_AUTORCC ON) # if you have any .qrc files 

Alle diese Aufrufe an set() sollten wahrscheinlich vor der Zeile find_package(Qt5Widgets REQUIRED) stehen. Fügen Sie alle .ui- oder .qrc-Dateien zusammen mit Ihren .cpp-Dateien als Abhängigkeiten in den Aufruf von add_executable() ein.

Das war anfangs sehr verwirrend für mich durch das Surfen im Internet, aber Sie sollten keine Aufrufe von qt_*() oder qt5_*() benötigen. Diese wurden, soweit ich das beurteilen kann, abgelöst.

Um zu testen, ob Ihr CMakeLists.txt tatsächlich ordnungsgemäß funktioniert, können Sie das Erstellen von Qt Creator versuchen, indem Sie CMakeLists.txt als Projekt und Gebäude laden.

Nach der Bestätigung können Sie die CMakeLists.txt-Datei als Projekt in CLion ..__ laden. Am wahrscheinlichsten müssen Sie CMake mitteilen, wo Sie Ihre Qt-Pakete mit einer Zeile wie dieser finden müssen, bevor find_package

set(CMAKE_PREFIX_PATH "C:/Qt/5.9/msvc2015_64")

Wenn Sie Windows für Windows ausführen, wird Qt nicht mehr mit GCC/Mingw32-Bibliotheken vorinstalliert. Sie müssen mit Visual Studio bauen. Glücklicherweise unterstützt CLion jetzt Visual Studio experimentell und ich habe festgestellt, dass es für Qt-Projekte funktioniert. Stellen Sie nur sicher, dass die Architektur (unter Einstellungen-> Erstellen, Ausführen, Entwickeln-> CMake) auf x86_AMD64 gesetzt ist, um im 64-Bit-Modus zu bauen und mit den vorgefertigten Bibliotheken von Qt kompatibel zu sein.

All dies wird mit CLion 2017.1, Qt 5.9 und dem Visual Studio 2015-Compiler getestet.

2
jtbr

Das einzige, was Sie brauchen, ist, QT install ..Qt\5.10.1\mingw53_32\bin; zu Ihrem PATH hinzuzufügen. Vergessen Sie nicht, den PC anschließend neu zu starten, da CLion den Pfad aus irgendeinem Grund nicht aktualisieren kann. Nur der Neustart des PCs hilft. 

0
brgs

Sie können Qt problemlos mit VC, Eclipse, CLion usw. entwickeln, wenn Sie CMake als Build-Tool verwenden. CMake generiert die Projektdateien für jede IDE. Ich habe auf diese Weise mehrere IDEs verwendet. Nach dieser Reise bin ich noch zufriedener mit Qt Creator. 

0
Roland Wolf