2015-03-09 2 views
1

Я не смог найти окончательного ответа на вопрос, поэтому решил опубликовать свой первый вопрос на этом сайте. Я довольно новичок в программировании и уже несколько месяцев использую Qt. Мой код взаимодействует с микроконтроллером через последовательные порты, однако доступный порт отличается от ПК к ПК. Я показываю количество портов, доступных с кодом;Выбор из всех доступных последовательных портов с использованием Qt GUI

qDebug() << "Number of serial ports:" << QSerialPortInfo::availablePorts().count(); 

Мой вопрос: как я могу отобразить имена всех доступных портов, например "COM 10, 17. 22, etc", а затем показать их в моей GUI. То, что я в конечном итоге надеюсь сделать, это иметь поле со списком, которое может быть динамически заполнено доступными портами, у меня есть тот, который переключается между двумя портами на данный момент, но это фиксированные порты, соответствующие конкретным компьютерам.

ответ

4

попробовать что-то вроде этого:

#include <QApplication> 
#include <QWindow> 
#include <QSerialPortInfo> 
#include <QComboBox> 


int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    QWidget w; 
    w.resize(200,200); 
    w.show(); 

    QComboBox box(&w); 
    Q_FOREACH(QSerialPortInfo port, QSerialPortInfo::availablePorts()) { 
     box.addItem(port.portName()); 
    } 
    box.move(100 - box.width()/2,100 - box.height()/2); 
    box.show(); 

    return a.exec(); 
} 

код довольно понятно.

+0

Спасибо за ваш ответ, я только что опубликовал ссылку в своем ответе, которая решила мою проблему. – SageDO

1

Найдены соответствующие ответы на qt center, пример кода;

foreach (const QSerialPortInfo &serialPortInfo, QSerialPortInfo::availablePorts()) 
    { 
    ui->comboBox->addItem(serialPortInfo.portName()); 
    } 
+0

Не могли бы вы обобщить содержание? StackOverflow не любит ссылки только для ответов. они страдают от гниения. – MSalters

+0

Отредактирован ответ. – SageDO

Смежные вопросы