2014-08-28 6 views
0

У меня есть QListWidget, в котором я добавил несколько QListWidgetItem s с некоторым текстом. Некоторые из этих элементов должны иметь правый указательный треугольник (с использованием юникода) в правой видимой позиции.Правильно видимая позиция/характер QListWidgetItem?

Есть ли способ, которым я могу рассчитать положение самого видимого в данный момент символа, чтобы я мог вставить пробел между треугольником справа и справа?

Было бы здорово, если бы был динамический способ узнать эту информацию. Причина, по которой этот список не является статичным, изменяется в соответствии с изменением в combobox ... Поэтому иногда может быть полоса прокрутки, иногда нет.

ответ

0

Например:

ui->listWidget->addItem(("▶ text")); 
QString st = ui->listWidget->item(0)->text();//just get text from item 
int pos = st.indexOf("▶");//find position 
if(pos == -1) 
    qDebug() << "this iten doesn't have this symbol"; 
//st.insert(pos,"A");//now you have position, you can insert what you want 
ui->listWidget->item(0)->setText(st);//set text back to the item 

Это пример, поэтому, возможно, вам необходимо адаптировать этот код к вашему.

Чтобы сделать это динамически, вы можете использовать механизм сигналов/слотов. QComboBox имеет отличный сигнал: currentIndexChanged (const QString & text)