Difference between revisions of "Select an Entry or Add a New One ComboBox"

From Qt Wiki
Jump to: navigation, search
Line 1: Line 1:
[[Category:HowTo]]<br />[[Category:snippets]]
+
[[Category:HowTo]]
 +
[[Category:snippets]]
  
 
= How to select a specific text entry (or add it if does not exist) in a combo box =
 
= How to select a specific text entry (or add it if does not exist) in a combo box =
  
The following method acts on a combo box searching for a specified text string and:<br />* if the string is present select it<br />* if the string is not present add it to the combo box model
+
The following method acts on a combo box searching for a specified text string and:
 +
* if the string is present select it
 +
* if the string is not present add it to the combo box model
  
 
In the following piece of code ''myText'' is the QString searched for and ''combo'' is a reference to the combo box.
 
In the following piece of code ''myText'' is the QString searched for and ''combo'' is a reference to the combo box.
  
<code> bool found = false;<br /> for( int i = 0; i < combo->count() &amp;&amp; ! found ; i++ )<br /> if( combo->itemText( i ) == myText ){<br /> combo->setCurrentIndex( i );<br /> found = true;<br /> }
+
<code> bool found = false;
 +
for( int i = 0; i < combo->count() &amp;&amp; ! found ; i++ )
 +
if( combo->itemText( i ) == myText ){
 +
combo->setCurrentIndex( i );
 +
found = true;
 +
}
  
if( ! found ){<br /> int index = combo->count();<br /> combo->addItem( myText );
+
if( ! found ){
 +
int index = combo->count();
 +
combo->addItem( myText );
  
 
combo->setCurrentIndex( index );
 
combo->setCurrentIndex( index );

Revision as of 12:19, 25 February 2015


How to select a specific text entry (or add it if does not exist) in a combo box

The following method acts on a combo box searching for a specified text string and:

  • if the string is present select it
  • if the string is not present add it to the combo box model

In the following piece of code myText is the QString searched for and combo is a reference to the combo box.

bool found = false;

for( int i = 0; i < combo->count() && ! found ; i++ )
if( combo->itemText( i ) == myText ){
combo->setCurrentIndex( i );
found = true;
}

if( ! found ){

int index = combo->count();
combo->addItem( myText );

combo->setCurrentIndex( index );