LINUX.ORG.RU

Сообщения Tumyq

 

Qt:: Подключение и использование HIDAPI библиотеки для работы с USB

Всем привет!!) Cкачал и установил библиотеку «hidapi-0.7.0.zip» по этой ссылке https://github.com/signal11/hidapi/downloads

т.е. скопировал папки «linux, windows, mac, hidapi» в свой проект, прописал к ним путь в .pro файле

macx:  SOURCES += mac/hid.c
unix: !macx:  SOURCES += linux/hid-libusb.c
win32: SOURCES += windows/hid.c
macx: LIBS += -framework CoreFoundation -framework IOkit
unix: !macx: LIBS += -lusb-1.0
win32: LIBS += -lSetupAPI

соответственно, прописал

#include <hidapi/hidapi.h>

Далее делаю все как батюшка прописал: отсюда: http://microsin.net/programming/pc/multi-platform-hid-api.html

Начиная со строчки:

res = hid_get_manufacturer_string(handle, wstr, MAX_STR);

программа виснет к ядреной бабушке и закрывается с кодом -1

Я в недоумении, что я такого сделал или не сделал, чтобы она так поступала... Подскажите, пожалуйста

Qt версия Qt 5.10.1

 

Tumyq
()

Qt::Передача контейнера через SIGNAL и SLOT

Всем доброго времени суток)

Такая незадача: заполняю контейнер

QMap<QString,QString> cont;
далее пишу в первом классе сигнал
void sendMap(const QMap<QString,QString> &map);
и в другом слот:
void receiveMap(const QMap<QString,QString> &map);
делаю коннект в классе, где слот, соответственно:
connect(objFirstClass, &FirstClass::sendMap, this, &SecondClass::receiveMap);

и компилятор пишет мне, что нет такого типа метаобъекта или что-то в этом роде для коннекта. Но, если просто заменить в сигнатуре QMap на QString, все работает прекрасно. Подскажите, пожалуйста, что нужно дописать, когда работа касается контейнеров для этих случаев?

 

Tumyq
()

Как подключить в Qt -creator работу с .xlsx (Excel файлы)?

У меня Qt-Ceator, сейчас хочу подключить к проекту работу с .xlsx файлами. Есть такая библиотека

https://github.com/dbzhang800/QtXlsxWriter

Там нужно её как-то собрать, видимо, под конкретную ОС. Ранее собирать не приходилось, подскажите, если кто знает. Может быть, есть другие решения. Или научите собирать, пожалуйста.

 

Tumyq
()

Qt: Как получить доступ к ui из другого класса?

Всем доброго времени суток. Похожая тема уже звучала, но я так и не нашел в ней ответа на главный вопрос. Ситуация такая: подключил библиотеку QCustomPlot через элемент QWidget, создал отдельный класс-наследник от QCustomPlot, соответственно. Теперь я хочу реализовать всю работу с этой библиотекой в этом классе, оставив в MainWindow только создание элемента объекта этого класса и один метод, который будет только отправлять массив данных в этот объект. Усё. Тут у меня начинается головоломка:

-нужно обращаться к элементу в форме через ui->, которого нет в моем классе, он там не наследован и по ссылке не передан, и никто его там не видел, и никто там его не узнает) как это сделать понятия не имею. Пробовал: множественное наследование и создание там отдельного объекта - не вышло. Не исключено, что в силу моих ошибок. Сделать метод в MainWindow, возвращающий ссылку на объект ui - не вышло, хотя, народ пишет, что это вполне возможно, но нет нигде кода, у кого бы это вышло. Сейчас все работает допотопно: я создаю объект моего класса в MainWindow, и дергаю там методы моего класса. А мне нужно реализовать все там. Возможно, я могу передавать эту ссылку как-то в конструктор при создании объекта, но я не ведаю , как это сделать. Помогите, люди добрые, кто чем может) Код привожу ниже:

Это .cpp моего класса

Charts::Charts(QWidget *parent) : QCustomPlot(parent)
{}


void Charts::setupgraph(QCustomPlot *customPlot)

{
    // set dark background gradient:
    QLinearGradient gradient(0, 0, 0, 400);
    gradient.setColorAt(0, QColor(90, 90, 90));
    gradient.setColorAt(0.38, QColor(105, 105, 105));
    gradient.setColorAt(1, QColor(70, 70, 70));

    customPlot->setBackground(QBrush(gradient));

и т.д.

это его .h

#include <QtCore/QDebug>
#include <qcustomplot.h>

class MainWindow;

class Charts : public QCustomPlot {
    Q_OBJECT

signals:
    void getData(const QByteArray &data);

public:
    explicit Charts(QWidget *parent = nullptr);

protected:
private slots:  

public:
    void setupgraph(QCustomPlot *customPlot);    

private:
    QCPGraph *graphic;          // Объявляем график

};

В MainWindow все в штатном режиме, как Qt прописал.

private:
     Ui::MainWindow *ui;

Заранее благодарен каждому, кто испытает малейшее желание оказать помощь

 ,

Tumyq
()

RSS подписка на новые темы