[Solved] How to get comboBox data instead of index with registerfield



  • Hi,

    I'm making a GUI app with a QWizard and QWizardPages structure.

    In the first page I have a combobox (cb_info1) with some items:

    @cb_info->AddItem("A");
    cb_info->AddItem("B");
    cb_info->AddItem("C");@

    Then I register it using: registerField("Info_combo", cb_info);

    And finally in page2, I want to show which option was selected(if A, B or C) showing the info on a label:

    @myLabel->setText(field("Info_combo").toString());@

    If option A was selected, myLabel should show (or at least is want I am trying to): A
    But instead of that it shows '0' which I suppose its the index of the item selected of the Combobox.

    How can I make that the label shows "A" instead of the index ? I saw there is a itemtext property but u have to pass the index which I don't know or I don't see how to do it.

    Thank you.


  • Lifetime Qt Champion

    Hi,

    IIRC, you can use the currentText property when registring your field. Then you should get the text rather that the index.



  • That is something I've already tried but I just get errors cause I don't know how to put it really... I'm trying with registerField("Info_combo", cb_info, cb_info->currentText()) but there is no way to make it work



  • try
    @
    registerField("info_combo", m_ui->cb_info, "currentText", "currentTextChanged");
    @



  • Yeah!!! It worked Andre, thank you so much! I was trying to put currentText and currentTextChanged as if they were functions, not Strings.



  • Technically, they are not strings, but const char* :)

    Glad you got it to work.

    It is time IMHO that these signatures also get a more modern twin taking a function pointer instead.


Log in to reply
 

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