Я новичок в QT и пытаюсь создать программу, которая показывает разные изображения в зависимости от ввода с последовательного интерфейса.
Я понимаю, что есть несколько способов добиться этого, и я ищу информацию от человека, имеющего опыт работы с QT.
Моя идея состояла в том, чтобы отправить новые данные в функцию сравнения, которая возвращает целое число в основную функцию, это целое число будет определять, какое изображение будет показано. Однако использование цикла while приводит к перерисовке изображения, а не к статичности.
У меня вопрос: должен ли я запустить другую тему для программы просмотра изображений или использовать для нее другой класс?
Или этот подход отвратителен, и я должен начать все сначала?
Благодарен за любой вклад!
if(!serial.open(QIODevice::ReadOnly))
qDebug() << serial.errorString();
QObject::connect(&serial, &QSerialPort::readyRead, [&]
{
int comp=0;
int landscape =1;
int total_data = serial.bytesAvailable();
qDebug() << "New data Available: " << serial.bytesAvailable();
QByteArray datas = serial.readAll();
comp= compare(total_data,datas);
while(comp == landscape){
qDebug() << "I Picture";
QLabel label("<img src='landscape.jpg' /> ");
label.show();
}
qDebug() << datas;
});
Это функция сравнения, которая считывает данные из последовательного интерфейса
int compare(int x, QByteArray y)
{
int r=0;
for(int i = 0; i <= x ; i++){
if (strncmp (y, "\x00",1) ==0)
{
//picture();
r=1;
return r;
}
}
return r;
}