Szukaj…


Uwagi

Zgodnie z oficjalną dokumentacją , Qt to platforma programistyczna dla wielu platform dla komputerów stacjonarnych, wbudowanych i mobilnych. Obsługiwane platformy to Linux, OS X, Windows, VxWorks, QNX, Android, iOS, BlackBerry, Sailfish OS i inne.

Ta sekcja zawiera przegląd tego, czym jest Qt i dlaczego deweloper może chcieć z niego korzystać.

Powinien również wymieniać wszelkie duże tematy w Qt i link do powiązanych tematów. Ponieważ dokumentacja qt jest nowa, może być konieczne utworzenie początkowych wersji tych pokrewnych tematów.

Wersje

Wersja Data wydania
Qt 3.0 2001-10-16
Qt 3.3 2004-02-05
Qt 4.1 2005-12-20
Qt 4.8 15.12.2011
Qt 5.0 19.12.2012
Qt 5.6 16.03.2016
Qt 5.7 16.06.2016
Qt 5.8 23.01.2017
Qt 5.9 31.05.2017

Instalacja i konfiguracja w systemie Windows i Linux

Pobierz wersję Qt dla Linux Open Source

Przejdź do https://www.qt.io/download-open-source/ i kliknij Pobierz teraz, upewnij się, że pobierasz instalator Qt dla systemu Linux.

Strona pobierania open source Qt Linux

Plik o nazwie qt-unified-linux-x-online.run zostanie pobrany, a następnie dodaj uprawnienia exec

chmod +x qt-unified-linux-x-online.run

Pamiętaj, aby zmienić „x” dla faktycznej wersji instalatora. Następnie uruchom instalator

./qt-unified-linux-x-online.run

Pobierz Qt dla Windows Open Source w wersji

Idź do https://www.qt.io/download-open-source/ . Poniższy zrzut ekranu pokazuje stronę pobierania w systemie Windows:

Qt Windows strona pobierania open source

To, co powinieneś teraz zrobić, zależy od tego, którego IDE będziesz używać. Jeśli zamierzasz użyć Qt Creatora, który jest zawarty w programie instalacyjnym, po prostu kliknij Pobierz teraz i uruchom plik wykonywalny.

Jeśli zamierzasz używać Qt w Visual Studio, zwykle powinien również działać przycisk Pobierz teraz. Upewnij się, że pobrany plik nazywa się qt-opensource-windows-x86-msvc2015_64-xxxexe lub qt-opensource-windows-x86-msvc2015_32-xxxexe (gdzie xxx to wersja Qt, na przykład 5.7.0). Jeśli tak nie jest, kliknij opcję Wyświetl wszystkie pobrane i wybierz jedną z czterech pierwszych opcji w obszarze Windows Host.

Jeśli zamierzasz używać Qt w Code :: Blocks, kliknij Wyświetl wszystkie pobrane i wybierz Qt xxx dla Windows 32-bit (MinGW xxx, 1,2 GB) w Windows Host.

Po pobraniu odpowiedniego pliku instalatora uruchom plik wykonywalny i postępuj zgodnie z instrukcjami poniżej. Pamiętaj, że musisz być administratorem, aby zainstalować Qt. Jeśli nie jesteś administratorem, można znaleźć kilka alternatywnych rozwiązań tutaj .

Zainstaluj Qt w dowolnym systemie operacyjnym

Po pobraniu Qt i otwarciu programu instalacyjnego procedura instalacji jest taka sama dla wszystkich systemów operacyjnych, chociaż zrzuty ekranu mogą wyglądać nieco inaczej. Zrzuty ekranu dostarczone tutaj pochodzą z systemu Linux.

Zaloguj się przy użyciu istniejącego konta Qt lub utwórz nowe:

Instalator Qt

Wybierz ścieżkę, aby zainstalować biblioteki i narzędzia Qt

ścieżka instalacji

Wybierz wersję biblioteki i żądane funkcje

Charakterystyka Qt

Po pobraniu i zakończeniu instalacji przejdź do katalogu instalacyjnego Qt i uruchom Qt Creator lub uruchom go bezpośrednio z wiersza poleceń.

wprowadź opis zdjęcia tutaj

Witaj świecie

W tym przykładzie po prostu tworzymy i pokazujemy przycisk w ramce okna na pulpicie. Przycisk będzie miał etykietę Hello world!

Jest to najprostszy możliwy program Qt.

Po pierwsze potrzebujemy pliku projektu:

helloworld.pro

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = helloworld
TEMPLATE = app

SOURCES += main.cpp
  • QT służy do wskazania, jakie biblioteki (moduły Qt) są używane w tym projekcie. Ponieważ nasza pierwsza aplikacja to mały GUI, potrzebujemy QtCore i QtGui. Ponieważ Qt5 oddziela QtWidgets od QtGui, musimy dodać linię greaterThan , aby skompilować ją z Qt5.
  • TARGET to nazwa aplikacji lub biblioteki.
  • SZABLON opisuje typ do zbudowania. Może to być aplikacja (aplikacja), biblioteka (lib) lub po prostu podkatalogi (podkatalogi).
  • ŹRÓDŁA to lista plików kodu źródłowego, które będą używane podczas budowania projektu.

Potrzebujemy również pliku main.cpp zawierającego aplikację Qt:

main.cpp

#include <QApplication>
#include <QPushButton>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QPushButton button ("Hello world!");
    button.show();

    return a.exec(); // .exec starts QApplication and related GUI, this line starts 'event loop'    
}
  • Obiekt QApplication. Ten obiekt zarządza zasobami aplikacji i jest niezbędny do uruchomienia dowolnego programu Qt, który ma GUI. Wymaga argv i args, ponieważ Qt akceptuje kilka argumentów wiersza poleceń. Podczas wywoływania a.exec() uruchamiana jest pętla zdarzeń Qt.
  • Obiekt QPushButton. Przycisk z etykietą Hello world! . Następny wiersz, button.show() , pokazuje przycisk na ekranie we własnej ramce okna.

Na koniec, aby uruchomić aplikację, otwórz wiersz polecenia i przejdź do katalogu, w którym znajduje się plik .cpp programu. Wpisz następujące polecenia powłoki, aby zbudować program.

qmake -project
qmake
make

Podstawowa aplikacja z QtCreator i QtDesigner

QtCreator jest obecnie najlepszym narzędziem do tworzenia aplikacji Qt. W tym przykładzie zobaczymy, jak utworzyć prostą aplikację Qt, która zarządza przyciskiem i pisze tekst.

Aby utworzyć nową aplikację, kliknij Plik-> Nowy plik lub Projekt:

wprowadź opis zdjęcia tutaj

Następnie wybierz Projekty-> Aplikacja-> Aplikacja Qt Widgets

wprowadź opis zdjęcia tutaj

Następnie możesz wybrać nazwę i ścieżkę swojego projektu:

wprowadź opis zdjęcia tutaj

Następnie możesz wybrać zestawy, których będziesz używać. Jeśli nie masz żadnego zestawu, QtCreator utworzy zestaw z twoją wersją Qt i głównym kompilatorem twojego komputera. Jeśli nie masz żadnego kompilatora, możesz go zainstalować. W systemie Windows: zainstaluj program Visual Studio. W systemie Linux / Mac: zainstaluj g ++ lub clang ++.

wprowadź opis zdjęcia tutaj

Następnie możesz wybrać nazwę głównej klasy okna, odziedziczoną klasę, nazwę pliku odpowiadającą głównej klasie okna. Jeśli uczysz się lub testujesz Qt, tak naprawdę nie musisz ich zmieniać.

wprowadź opis zdjęcia tutaj

Ostatnim krokiem może być wybranie podprojektu tego projektu i dodanie kontroli wersji, takiej jak git i svn. Ponownie, jeśli dotyczy to tylko testów, nie musisz ich zmieniać.

wprowadź opis zdjęcia tutaj

Następnie kliknij przycisk Zakończ. Teraz powinieneś tu być:

wprowadź opis zdjęcia tutaj

To jest podstawa twojej aplikacji. jeśli uruchomisz go teraz, klikając Build-> Run lub ctrl + R (domyślnie) zobaczysz puste okno.

Teraz dodamy tekst i przycisk. w tym celu użyjemy Qt Designer. Kliknij dwukrotnie mainwindow.ui Więc powinieneś zobaczyć: (jeśli nie, a zobaczysz plik xml, kliknij przycisk Projekt po lewej)

wprowadź opis zdjęcia tutaj

Oto Qt Designer! Wydaje się dość skomplikowane. Ale kiedy już się przyzwyczaisz, to naprawdę świetnie. Dodamy trochę tekstu i przycisk. Po lewej stronie znajduje się lista przedmiotów. Możesz kliknąć jeden i przeciągnąć i upuścić obiekty. Kliknij przycisk i upuść go w oknie. Następnie wyszukaj etykietę i zrób to samo (w lewym górnym rogu masz filtr, w którym możesz napisać szukany obiekt).

Powinieneś mieć teraz coś takiego:

wprowadź opis zdjęcia tutaj

Dwukrotne kliknięcie obiektu umożliwia zmianę tekstu na nim. Lub możesz zobaczyć w prawym dolnym rogu właściwości obiektu, którym jesteś teraz i znaleźć właściwość text. Tutaj możesz również zmienić nazwę.

Teraz, jeśli zapiszesz i uruchomisz (lepiej kliknij przycisk edycji, a następnie zapisz ponownie, aby upewnić się, że zmiany zostały zapisane), otrzymasz:

wprowadź opis zdjęcia tutaj

Co? Dlaczego moja etykieta i przycisk są takie po uruchomieniu? To dlatego, że nie ma układu w naszym obiekcie centralnym. Nawiasem mówiąc, jeśli zmienisz rozmiar głównego okna, możesz zobaczyć, że obiekt zachowuje swoje miejsce. Aby to naprawić, dodamy układ. Powiedzmy, że układ pionowy. Przeciągnij i upuść układ pionowy z listy obiektów po lewej stronie. Teraz powinieneś zobaczyć:

wprowadź opis zdjęcia tutaj

Układ pływający.

Teraz kliknij prawym przyciskiem myszy główne okno, gdziekolwiek, z wyjątkiem etykiety i przycisku. c \ Kliknij polecenie Układ -> Układ w pionie. Teraz powinieneś zobaczyć, że twoje obiekty są ustawione pionowo w oknie. Teraz przenieś (ponownie przeciągnij i upuść) etykietę i przycisk w układzie. teraz powinieneś otrzymać:

wprowadź opis zdjęcia tutaj

U twojego projektanta. A jeśli uruchomisz swoją aplikację:

wprowadź opis zdjęcia tutaj

Tutaj możesz zobaczyć swoją aplikację z etykietą i przyciskiem. A jeśli zmienisz rozmiar okna, zmienia się również rozmiar etykiety i przycisku.

Ale nasz przycisk wciąż nic nie robi. Możemy to zmienić na 2 różne sposoby. Pierwszym z nich jest połączenie przycisku utworzoną przez nas metodą. Możemy to zrobić z nazwą metody connect. Wróćmy więc do naszego kodu i przejdźmy do mainwindow.cpp teraz dodaj:

connect(ui->pushButton, SIGNAL(clicked(bool)), this, SLOT(whenButtonIsClicked()));

W konstruktorze twojego MainWindow PO ui->setupUI(this); które inicjują interfejs użytkownika.

Następnie możemy utworzyć MainWindow :: whenButtonIsClicked () w naszej klasie .cpp, która mogłaby zmienić tekst etykiety w ten sposób:

void MainWindow::whenButtonIsClicked()
{
    ui->label->setText("the button has been clicked !");
}

A w naszym mainwindow.h musimy dodać:

public slots:
    void whenButtonIsClicked();

Publiczne sloty oznaczają, że tę metodę można wywołać po odebraniu sygnału. połącz link sygnał po kliknięciu przycisku i metodę wywołania.

Jeśli teraz uruchomimy naszą aplikację i klikniemy przycisk, otrzymamy:

wprowadź opis zdjęcia tutaj

Co oznacza, że nasz connect działa. Ale z Qt Designer mamy jeszcze prostszy sposób na zrobienie tego. Jeśli chcesz zrobić to w inny sposób, usuń połączenie, aby odłączyć przycisk (ponieważ podłączymy go inaczej), wróć do mainwindow.ui i kliknij prawym przyciskiem myszy przycisk. Kliknij Idź do gniazda ..., wybierz kliknięty () i naciśnij OK.

wprowadź opis zdjęcia tutaj

Następnie powinieneś przejść do tej funkcji:

void MainWindow::on_pushButton_clicked()
{
}

Jest to funkcja, która zostanie wywołana po kliknięciu przycisku. Możesz więc dodać

ui->label->setText("it's even easier !");

W tym. Przejdź do mainwindow.h, aby zapisać zmianę (kiedy robisz przejście do slotu, tworzy metodę powiązaną z żądanym sygnałem. Definiuje funkcję w .h, ale nie zapisuj jej. Więc powinieneś iść do pliku i zapisz go).

A teraz, kiedy uruchomisz aplikację i naciśniesz przycisk, zobaczysz nową wiadomość (jeśli nadal widzisz starą, oznacza to, że nie usunąłeś połączenia).

wprowadź opis zdjęcia tutaj

Możemy również dodać int, double, itp. Do naszej etykiety dzięki QVariant która jest niesamowitą klasą, która może przekształcić wiele rzeczy w wiele innych rzeczy. Więc w lewo dodaj int, który zwiększa się po naciśnięciu przycisku.

Więc .h:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

public slots:
    void whenButtonIsClicked();

private slots:
    void on_pushButton_clicked();

private:
    Ui::MainWindow  *ui;
    double          _smallCounter;
};

#endif // MAINWINDOW_H

.Cpp:

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
//    connect(ui->pushButton, SIGNAL(clicked(bool)), this, SLOT(whenButtonIsClicked()));
    _smallCounter = 0.0f;
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::whenButtonIsClicked()
{
    ui->label->setText("the button has been clicked !");
}

void MainWindow::on_pushButton_clicked()
{
    _smallCounter += 0.5f;
    ui->label->setText("it's even easier ! " + QVariant(_smallCounter).toString());
}

A teraz możemy zapisać i uruchomić ponownie. Za każdym razem, gdy klikniesz przycisk, pokazuje on „to jest jeszcze łatwiejsze!” Z wartością _smallCounter. Więc powinieneś mieć coś takiego:

wprowadź opis zdjęcia tutaj

Ten samouczek jest gotowy. Jeśli chcesz dowiedzieć się więcej o Qt, zobacz inne przykłady i dokumentację Qt w Dokumentacji StackOverflow lub Dokumentacji Qt



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow