Unsolved QComboBox clear, error
-
Witam
Jak skasować lite QComboBox bez awaryjnego zatrzymania programu?
Przedstawiam uproszczony fragment kodu który runtime errorui->qComboBox->addItem("cos1");
ui->qComboBox->addItem("cos2");
ui->qComboBox->clear() ;Proszę o pomoc
-
Cześć,
Ten kawałek kodu wygląda ok. Błąd musi być w innym miejscu. Możesz pokazać więcej? Gdzie wołasz ten kawałek, czy combo na pewno już/jeszcze istnieje? -
Dzięki za szybką odpowiedz,
faktycznie sam ten kod w nowym projekcie działa.
A oto szerszy fragment mojego nie działającego kodu:Wywala się na wciśnięciu przycisku:
/* Konstruktor*/
searchDevices(); connect( ui->pushButtonOdswiezCom,SIGNAL( clicked(bool)) , this, SLOT (refresh() )) ; // odsiweznie dostępnych portów
void F_ustawieniaKomunikacji::searchDevices()
{
available_port = QSerialPortInfo::availablePorts();if ( available_port.size() <=0) { ui->port->addItem("Brak"); } for(int i=0;i<available_port.size();i++) { ui->port->addItem(available_port.at(i).portName()); }
}
/* na Tym sie wywala*/
void F_ustawieniaKomunikacji::refresh()
{while ( ui->port->count()>0) ui->port->removeItem(0);
}
Z góry dziękuję
-
@Miniu said in QComboBox clear, error:
while ( ui->port->count()>0)
ui->port->removeItem(0);Nie ma sensu usuwać elementów po jednym. To dużo niepotrzebnych updatów modelu, zaznaczenia i odrysowywania kontrolki. Wystarczy:
ui->port->clear();
Tak czy inaczej błędu tu nie widzę, chyba, że
ui->port
jest skasowany albo jest nullem. Co na to debugger? -
-
Dziękuję zamykam temat
Twoja sugestia w pierwszej odpowiedzi okazała się pomocna
Zapomniałem że wykorzystuję sloton_port_currentIndexChanged(int index)