LINUX.ORG.RU

[GTK+] Вывод альтернативного значения в GtkTreeView при пустом поле в GtkListStore


0

1

У меня есть GtkListStore с двумя полями скрин из Glade.

одно gchararray - G_TYPE_STRING а другое - G_TYPE_INT

Этот GtkListStore связан с GtkTreeView скрин из Glade

Вопрос в следующем: каким образом можно организовать вывод альтернативного значения в втором объекте отображения cellrenderertextValue. Т.е. есть флаг chkbutValueFlag - это обычный GtkCheckButton. И при добалвении новой строки (событие on_butAdd_clicked) я смотрю на него. Если он установлен - я добавляю и 0 и 1 столбец в GtkListStore, если не установлен, то добавляю только 0 столбец GtkListStore, т.е. столбец 1 по сути пустой, но при этом в GtkTreeView отображается 0. А я хочу например вывести тест туда: «нет значения». Как это можно реализовать? Есть вариант конечно сделать второе поле не G_TYPE_INT, а так же G_TYPE_STRING и делать преобразования типов, но это не очень здорово.

void on_butAdd_clicked(GtkWidget *button, gpointer data)
{
    MainWindowObjects* mwo = (MainWindowObjects*)data;
    GtkTreeIter iter;
    gtk_list_store_append(GTK_LIST_STORE( mwo->liststoreValues ), &iter);
    if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON(mwo->chkbutValueFlag ) ) )
    {
        gtk_list_store_set(GTK_LIST_STORE( mwo->liststoreValues ), &iter, NAME, gtk_entry_get_text(mwo->entryName),
                                                                      VALUE, static_cast<int>( gtk_adjustment_get_value(mwo->adjValue) ),
                                                                      -1 );
    }
    else
    {
        gtk_list_store_set(GTK_LIST_STORE( mwo->liststoreValues ), &iter, NAME, gtk_entry_get_text(mwo->entryName), -1 );
    }    
}

man nan

хотя в случае с целыми результат может быть коряв. но так как gtk_adjustment_get_value() тоже возвращает double, можно просто указать соответствующий тип полю

ananas ★★★★★
()
Ответ на: комментарий от ananas

ну это да, там приведение типов сработает

g-71
() автор топика
Ответ на: комментарий от g-71

то, что ты хочешь, т.е. вывести произвольный текст в числовое поле - нельзя. зато есть NaN.

или же, как вариант, добавить еще одно булево поле, и привязать к нему атрибут visible для числового столбца

ananas ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.