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
Qt 6.11 is out! See what's new in the release blog

QComboBox clear, error

Scheduled Pinned Locked Moved Unsolved Polish
6 Posts 2 Posters 2.8k Views 2 Watching
  • 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