Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Portuguese
  4. Como preencher um combobox usando um Qvector
Forum Updated to NodeBB v4.3 + New Features

Como preencher um combobox usando um Qvector

Scheduled Pinned Locked Moved Portuguese
22 Posts 11 Posters 9.0k Views 1 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.
  • L Offline
    L Offline
    lima_will
    wrote on last edited by
    #1

    Pessoal,

    Preciso mais uma vez da ajuda de vocês, preciso preencher um combobox usando um vetor.
    Tenho uma tela em que o usuario digita os dados, esses dados são armazenados em um Qvector.
    Agora preciso preencher um combobox com os dados desse Qvector.
    Segue abaixo o código de preenchimento do Qvector:

    @QString IP;
    QTextCharFormat textFormat;
    IP = ui->Campo_Digitar_ip->text();
    IP += "\n";
    QTextCursor cursor(ui->textEdit->textCursor());
    cursor.insertText(IP);
    vetorIP.append(IP);@

    E como tentei até o momento preencher o combobox

    @while(vetorIP.operator !=(0))
    {
    ui->comboBox_IP_Cadastro->addItem(vetorIP);
    }@

    1 Reply Last reply
    0
    • T Offline
      T Offline
      TioRoy
      wrote on last edited by
      #2

      Não entendí o seu "while".

      Não seria +- assim?

      @
      for (int i = 0; i < vetorIP.size(); ++i) {
      ui->comboBox_IP_Cadastro->addItem(vetorIP.at(i));
      }
      @

      Você poderia tentar usar o AddItens, mas ele recebe um QStringList e não um QVector.

      --

      1 Reply Last reply
      0
      • L Offline
        L Offline
        lima_will
        wrote on last edited by
        #3

        TioRoy,

        Foi teste mesmo, imaginei que estava errado mesmo o laço de repetição mas estava sem ideias de como fazer.

        Cara poderia me dar um exemplo de como faria para preencher com um QStringList? Pois quando estava testando não consegui incluir varios (neste caso) IPs em uma lista, somente um susbstituindo o outro.

        1 Reply Last reply
        0
        • V Offline
          V Offline
          volnei
          wrote on last edited by
          #4

          Olá,

          Veja se esse exemplo se aplica ao seu caso:
          @
          // Use o seu combo já definido
          QComboBox *comboBox = new QComboBox;

          // C++11 compativel
          QStringList list = {
          "192.168.1.1" ,
          "192.168.1.2",
          "192.168.1.3"
          };

          // Insere a lista a partir do index 0 (zero)
          comboBox->insertItems(0,list);
          @

          Nota: Para compilar código C++11 coloque no seu arquivo .pro: @QMAKE_CXXFLAGS += -std=c++11@

          1 Reply Last reply
          0
          • L Offline
            L Offline
            lima_will
            wrote on last edited by
            #5

            Volnei,

            O problema que o corre é que fiz uma tela para o usuario digitar esses dados em um textEdit, dele quero jogar em um QStringList e depois jogar em um combobox por isso não dá para usar:

            @ // C++11 compativel
            QStringList list = {
            "192.168.1.1" ,
            "192.168.1.2",
            "192.168.1.3"
            };@

            1 Reply Last reply
            0
            • V Offline
              V Offline
              volnei
              wrote on last edited by
              #6

              você usa algum separador? tipo espaço em branco ou virgulas?
              Se sim, pode fazer assim então:

              Presumo que o usuário irá digitar por no textEdit assim:

              192.168.1.1,192.168.1.2,192.168.1.3

              Fazer isso passar online para o combo não é um boa opção por questões do usuário
              poder errar e corrigir o texto. Então digamos que após ele terminar de digitar ele
              aperte um botão. Ok?

              @
              /* Na funcao membro que executa o código do botao
              codifique algo assim
              */
              QStringList list;

              /* O 'simplified' e para tirar espacoes em branco desnecessarios

              • o split(',') ira separar o texto assim com se digitasse assim:
              • list << "IP1" << "IP2" << "IP3" ... ;
              • Se o separador for outro caractér simplesmente troque-o.
              • Se for espaco em branco, tire o 'simplified()' use apenas o spli(' ')
                */
                list = textEdit->toPlainText().simplified().split(',');
                comboBox->clear(); // limpa antes de colocar os novos valores
                comboBox->insertItems(0,list);
                @
              1 Reply Last reply
              0
              • T Offline
                T Offline
                TioRoy
                wrote on last edited by
                #7

                Ou se você quiser adicionar um item de cada vez:

                @
                QStringList list;

                list << "192.168.0.1";
                list << "192.168.0.2";
                list << "192.168.0.3";
                list << "192.168.0.4";

                @

                1 Reply Last reply
                0
                • L Offline
                  L Offline
                  lima_will
                  wrote on last edited by
                  #8

                  Caras,

                  Valeu mesmo pela ajuda mas para terminar como faria para acessar essa list em outra tela?

                  Fiz o seguinte criei um .h com uma variavel extern e dela dento jogo os valores do list nesta variavel e tento capturar na outra tela. Tem o link do projeto aqui:

                  https://docs.google.com/file/d/0BwQ4G9j5uY1JUzdfSFlrYTV5V2s/edit?usp=sharing

                  1 Reply Last reply
                  0
                  • V Offline
                    V Offline
                    volneicp
                    wrote on last edited by
                    #9

                    Bom dia lima_will,

                    Procure não usar variáveis globais.
                    Bem, você pode passar a sua QStringList como um parâmetro que está definido na classe da janela a ser chamada.
                    Por exemplo:
                    A classe da Ui a ser camada é incluir_ip() então na definição:
                    @
                    explicit incluir_ip(QWidget *parent = 0, QStringList list);
                    @

                    na mainwindow.cpp

                    @
                    void MainWindow::on_Button_IPS_clicked()
                    {
                    // ao invés disso
                    incluir_ip ips;
                    ips.exec();

                    // use isso
                    incluir_ip *ips = new incluir_ip(this, list);
                    incluir_ip->show();
                    }
                    @

                    Isso é apenas uma das várias técnicas existentes para isso.
                    Mas eu acho que funcionará bem para você.

                    1 Reply Last reply
                    0
                    • L Offline
                      L Offline
                      lima_will
                      wrote on last edited by
                      #10

                      Bom dia Volneicp,

                      Ontem a noite estava lendo sobre isso que não é aconselhavél usar variaveis globais. Mas cara ainda não deu certo mesmo com suas dicas, segue como está as classes:

                      incluir_ip.h
                      @#ifndef INCLUIR_IP_H
                      #define INCLUIR_IP_H

                      #include <QDialog>
                      #include <QStringList>

                      namespace Ui {
                      class incluir_ip;
                      }

                      class incluir_ip : public QDialog
                      {
                      Q_OBJECT

                      public:
                      explicit incluir_ip(QWidget *parent = 0, QStringList list);

                      ~incluir_ip();
                      

                      private slots:
                      void on_Botao_incluir_ip_clicked();

                      void on_Botao_voltar_ip_clicked();
                      
                      void on_Botao_incluir_clicked();
                      

                      private:
                      Ui::incluir_ip *ui;
                      };

                      #endif // INCLUIR_IP_H@

                      incluir_ip.cpp
                      @#include "incluir_ip.h"
                      #include "ui_incluir_ip.h"
                      #include <QDebug>

                      incluir_ip::incluir_ip(QWidget *parent) :
                      QDialog(parent),
                      ui(new Ui::incluir_ip)
                      {
                      ui->setupUi(this);
                      }

                      incluir_ip::~incluir_ip()
                      {
                      delete ui;
                      }

                      void incluir_ip::on_Botao_incluir_ip_clicked()
                      {

                      }

                      void incluir_ip::on_Botao_voltar_ip_clicked()
                      {
                      QStringList listas;

                      listas = ui->textEdit->toPlainText().simplified().split(',');
                      qDebug() << listas;
                      close();
                      

                      }

                      void incluir_ip::on_Botao_incluir_clicked()
                      {
                      QString IP;
                      IP = ui->Campo_Digitar_ip->text();
                      IP += ",";
                      IP += "\n";
                      QTextCursor cursor(ui->textEdit->textCursor());
                      cursor.insertText(IP);
                      ui->Campo_Digitar_ip->clear();
                      }@

                      mainwindows.cpp
                      @#include "mainwindow.h"
                      #include "ui_mainwindow.h"
                      #include "incluir_ip.h"
                      #include "Globais.h"

                      MainWindow::MainWindow(QWidget *parent) :
                      QMainWindow(parent),
                      ui(new Ui::MainWindow)
                      {
                      ui->setupUi(this);

                      QStringList list;
                      ui->comboBox_IPS->insertItems(0,list);
                      

                      }

                      MainWindow::~MainWindow()
                      {
                      delete ui;
                      }

                      void MainWindow::on_Button_IPS_clicked()
                      {
                      incluir_ip *ips = new incluir_ip(this, list);
                      incluir_ip->show();
                      }@

                      A saida é a seguinte:

                      @C:\Users\willian.toledo\Documents\QT\Duvida\incluir_ip.h:16: error: C2548: 'incluir_ip::incluir_ip' : missing default parameter for parameter 2
                      C:\Users\willian.toledo\Documents\QT\Duvida\incluir_ip.cpp:7: error: C2511: 'incluir_ip::incluir_ip(QWidget *)' : overloaded member function not found in 'incluir_ip'
                      c:\users\willian.toledo\documents\qt\duvida\incluir_ip.h:11: see declaration of 'incluir_ip'
                      C:\Users\willian.toledo\Documents\QT\Duvida\incluir_ip.cpp:47: error: C1004: unexpected end-of-file found
                      C:\Users\willian.toledo\Documents\QT\Duvida\incluir_ip.h:16: error: C2548: 'incluir_ip::incluir_ip' : missing default parameter for parameter 2
                      C:\Users\willian.toledo\Documents\QT\Duvida\mainwindow.cpp:4: error: C1083: Cannot open include file: 'Globais.h': No such file or directory@

                      Poderia me mostrar o que fiz de errado dessa vez? E muito grato pela ajuda!

                      1 Reply Last reply
                      0
                      • V Offline
                        V Offline
                        volnei
                        wrote on last edited by
                        #11

                        Oi,

                        Faz o seguinte: Compacta o seu projeto todo e me passa para eu testar aqui.
                        Ai assim que der eu te aviso dos resultados.

                        1 Reply Last reply
                        0
                        • L Offline
                          L Offline
                          lima_will
                          wrote on last edited by
                          #12

                          Cara,

                          Segue o link do projeto:

                          https://docs.google.com/file/d/0BwQ4G9j5uY1JU2tvM1BDenpELXM/edit?usp=sharing

                          Valeu mesmo pela ajuda!

                          1 Reply Last reply
                          0
                          • V Offline
                            V Offline
                            volnei
                            wrote on last edited by
                            #13

                            Oi,

                            Como eu posso devolver o código para você?

                            1 Reply Last reply
                            0
                            • L Offline
                              L Offline
                              lima_will
                              wrote on last edited by
                              #14

                              Volnei,

                              Mandei um e-mail para vc daqui do forum com meu endereço de e-mail pessoal.

                              Muito obrigado pela ajuda cara!!!!

                              1 Reply Last reply
                              0
                              • V Offline
                                V Offline
                                volnei
                                wrote on last edited by
                                #15

                                Lima_will,

                                Desculpe, você pode me enviar o endereço novamente?

                                Obrigado

                                1 Reply Last reply
                                0
                                • N Offline
                                  N Offline
                                  need4openid
                                  wrote on last edited by
                                  #16
                                  This post is deleted!
                                  1 Reply Last reply
                                  0
                                  • KaramazovK Offline
                                    KaramazovK Offline
                                    Karamazov
                                    Banned
                                    wrote on last edited by
                                    #17
                                    This post is deleted!
                                    1 Reply Last reply
                                    0
                                    • J Offline
                                      J Offline
                                      John White
                                      Banned
                                      wrote on last edited by John White
                                      #18
                                      This post is deleted!
                                      1 Reply Last reply
                                      0
                                      • S Offline
                                        S Offline
                                        Santana5
                                        Banned
                                        wrote on last edited by
                                        #19
                                        This post is deleted!
                                        1 Reply Last reply
                                        0
                                        • P Offline
                                          P Offline
                                          PabelBN
                                          Banned
                                          wrote on last edited by
                                          #20
                                          This post is deleted!
                                          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