Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Polish
  4. QComboBox clear, error

QComboBox clear, error

Scheduled Pinned Locked Moved Unsolved Polish
6 Posts 2 Posters 2.1k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    Miniu
    wrote on last edited by
    #1

    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

    1 Reply Last reply
    0
    • Chris KawaC Offline
      Chris KawaC Offline
      Chris Kawa
      Lifetime Qt Champion
      wrote on last edited by
      #2

      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?

      1 Reply Last reply
      0
      • M Offline
        M Offline
        Miniu
        wrote on last edited by
        #3

        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ę

        Chris KawaC 1 Reply Last reply
        0
        • M Miniu

          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ę

          Chris KawaC Offline
          Chris KawaC Offline
          Chris Kawa
          Lifetime Qt Champion
          wrote on last edited by
          #4

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

          1 Reply Last reply
          0
          • M Offline
            M Offline
            Miniu
            wrote on last edited by
            #5

            Cześć

            ui->port->clear() ; 
            

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

            link do print screena z debuugera

            1 Reply Last reply
            0
            • M Offline
              M Offline
              Miniu
              wrote on last edited by
              #6

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

               on_port_currentIndexChanged(int index)
              
              1 Reply Last reply
              0

              • Login

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • Users
              • Groups
              • Search
              • Get Qt Extensions
              • Unsolved