QComboBox clear, error



  • Witam
    Jak skasować lite QComboBox bez awaryjnego zatrzymania programu?
    Przedstawiam uproszczony fragment kodu który runtime error

    ui->qComboBox->addItem("cos1");
    ui->qComboBox->addItem("cos2");
    ui->qComboBox->clear() ;

    Proszę o pomoc


  • Moderators

    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ę


  • Moderators

    @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?



  • Cześć

    ui->port->clear() ; 
    

    wcześniej też tak próbowałem ;

    link do print screena z debuugera



  • Dziękuję zamykam temat
    Twoja sugestia w pierwszej odpowiedzi okazała się pomocna
    Zapomniałem że wykorzystuję slot

     on_port_currentIndexChanged(int index)
    

Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.