Ответы пользователя по тегу Qt
  • Как заполнить QTableWidget данными JSON?

    @neosapient
    VC9, VC11, QT4, QT5, MySQL
    Здравствуйте

    Ссылки для QTableWidget
    - описание класса QTableWidget на русском и на английском
    - статья "Программирование модель/представление" на русском и на английском
    - несколько глав из книги Жасмин Бланшет, Марк Саммерфилд "Qt 4. Программирование GUI на С++". Там полноценный разбор работы с QTableWidget
    - так же смотрите примеры %Qt%\Examples\Qt-5.13.0\widgets

    Ссылки для QJson
    - описание классов QJsonDocument, QJsonObject и QJsonArray на английском
    - статья на Хабре
    Ответ написан
  • Компиляция в QT?

    @neosapient
    VC9, VC11, QT4, QT5, MySQL
    По первому вопросу:
    Можно попробовать поставить 32 битную сборку "Desktop Qt 5.12.1 MSVC2017 32bit". А на Windows XP поставить Microsoft Visual C++ Runtime 2017.

    По второму вопросу:
    В *.pro файле проекта надо прописать путь к внешней библиотеке:
    LIBS += -L"path/to/library/directory"
    Ответ написан
  • Какие есть варианты заданий для начинающего программиста на Qt?

    @neosapient
    VC9, VC11, QT4, QT5, MySQL
    >> нужна практика по решению каких либо тривиальных заданий

    Вам для чего Qt? Для быстрого прототипирования офисных программок?

    Тогда ставлю следующие задачи:
    В данной библиотеке неплохо реализован паттерн Model-View-Controller.
    Сделайте модель таблицы с полями <ФИО, дата рождения>. (смотри QAbstractItemModel и наследники; для простоты возьмите QStandardItemModel)
    Далее, сделайте представление, которое отображает таблицу <ФИО, дата рождения>. (смотри QTableView)
    И сделайте второе представление, которое отображает таблицу <ФИО, возраст> (смотри работу с делегатами)
    Ну и наконец, добавьте редактирование полей таблицы через первое представление. Т.е. чтобы в первой вьюхе можно было поменять дату, и тогда автоматически обновлялся возраст во второй вьюхе.

    Для мотивировки, сроки и условия будут как на обычной работе в офисе, т.е.: "Сдать надо было ещё вчера. Выполнять!"
    Ответ написан
  • Как отправить http запрос с помощью QNerworkAccessManager в с++?

    @neosapient
    VC9, VC11, QT4, QT5, MySQL
    Как знать, может ваш код работоспособен за исключением одной маленькой ошибки - такого url как 'http: //qt.nokia.com' более не существует. Попробуйте обращаться к 'www.qt.io'

    net_test.pro
    QT += core
    QT -= gui
    QT += network
    CONFIG += c++11
    
    TARGET = net_test
    CONFIG += console
    CONFIG -= app_bundle
    
    TEMPLATE = app
    
    SOURCES += main.cpp \
        test.cpp
    
    HEADERS += \
        test.h


    test.h
    #ifndef QXTEST_H
    #define QXTEST_H
    
    #include <QObject>
    
    class QNetworkReply;
    
    class QxTest: public QObject
    {
        Q_OBJECT
    public:
        QxTest();
    public slots:
        void replyFinished(QNetworkReply* rep);
    };
    
    #endif // QXTEST_H


    test.cpp
    #include <QNetworkRequest>
    #include <QNetworkReply>
    #include <QUrl>
    #include <QNetworkAccessManager>
    #include "test.h"
    
    QxTest::QxTest()
    {
        QNetworkAccessManager *manager = new QNetworkAccessManager(this);
        connect(manager, SIGNAL(finished(QNetworkReply*)),
                this, SLOT(replyFinished(QNetworkReply*)));
    
        manager->get(QNetworkRequest(QUrl("http://www.qt.io")));
    
    }
    
    void QxTest::replyFinished(QNetworkReply* rep)
    {
        qDebug() << rep->readAll();
    }


    main.cpp
    #include <QCoreApplication>
    #include "test.h"
    
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
        QxTest test;
        return a.exec();
    }
    Ответ написан
  • Что использовать в Qt close() или destroy()?

    @neosapient
    VC9, VC11, QT4, QT5, MySQL
    Идея такая:
    - покажите клиенту форму для ввода данных
    - клиент заполняет эту форму и нажимает OK
    - вы обрабатываете сигнал о закрытии окна и скрываете его
    - далее, метаданные из окна никуда не делись, вы можете продолжить их использовать. (ну например это было окно настроек программы и вы сохраняете данные на диск).
    - как только решите, что никакие данные из этого окна более не нужны, то смело уничтожайте его.
    Ответ написан