Я создал кнопку, которая при нажатии должна отправить список команд через последовательный порт, чтобы завершить действие кнопки.Мой список строк определен в моем файле mainwindow.h следующим образом:
QStringList database_dump =
{
"STRING1",
"STRING2",
"STRING3",
"STRING4",
"STRING5",
"STRING6",
"STRING7"
};
Из моего сигнала нажатия кнопки я хочу извлечь каждую строку и отправить ее в мою функцию write_to_port
, как показано ниже:
void MainWindow::on_dump_database_clicked()
{
QString * file_name;
QByteArray key_value;
while(!database_dump.isEmpty())
{
file_name = new QString(database_dump.takeFirst());
key_value = file_name->toLatin1();
key_value.append(NEW_LINE_CR);
write_to_port(key_value);
}
}
После каждой строки необходимо смоделировать клавишу ввода, как показано на рисунке.
Проблема в том, что метод takefirst()
берет строку и удаляет ее из списка.Первый цикл нажатия кнопки работает отлично.Однако во второй раз он ничего не делает, потому что QStringList
пусто.
Как сбросить список строк после каждого нажатия кнопки?