LINUX.ORG.RU

C++ Gtkmm spinbutton не может в вертикальную ориентацию?

 ,


0

1

не могу понять, как сделать вертикальную ориентацию у данной сущности в gtkmm?
через билдер вроде делается, через код не могу познать каким образом.

решения:

тут

тут

тут

тут

★★

не могу понять, как сделать вертикальную ориентацию у данной сущности в gtkmm?

Что конкретно непонятно? Хоть код какой-то выложил бы…

через билдер вроде делается

Что значит «через билдер»? И что значит «вроде»?

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

Что конкретно непонятно? Хоть код какой-то выложил бы…

да код тут какой приложить то? у меня не ошибка в коде — просто не пойму как вообще сделать что бы было вертикальная ориентация.

Что значит «через билдер»? И что значит «вроде»?

ну билдер енто значить Gnome builder или через Glade...
вроде означает чо я их ui файлы не применял в коде, но запускал в них самих.

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

в mm вообще функций нет, только методы. но, цитата,

GtkSpinButton implements AtkImplementorIface, GtkBuildable, GtkEditable, GtkCellEditable and GtkOrientable.

поэтому метод set_orientable для объекта GtkSpinButton присутствовать должен

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

Ну видимо и я не понял чего вы хотите, а хотите вы видимо так.

[  +  ]
[value]
[  -  ]

Это делается стилями вроде бы.

https://developer.gnome.org/gtk3/stable/GtkSpinButton.html

The orientation of the spin button is reflected in the .vertical or .horizontal style class on the main node.

Ну и как выше сказали можно попробовать gtk_orientable_set_orientation может и с ним что получится.

Ну или если опять не то, то я хз что вам надо )

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

да — вы верно поняли чего я хочу.

но я все енто видел — я не могу понять как енто применить — ни одного примера не нашел в гугле, в офф доках ни слова о применении — видимо я как то должен сам догадаться но чот не догадываюсь...
как применять енти .vertical и .horizontal? куда их указывать?

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

В Glade xml получается:

      <object class="GtkSpinButton">
        <property name="orientation">vertical</property>
        <property name="numeric">True</property>
        <property name="width_chars">2</property>
      </object>

а у тебя:

spSeconds.set_numeric();
spSeconds.set_width_chars( 2 );
Может в ваших gtkmm'ах надо тупо добавить spSeconds.set_orientation( "vertical" ); или spSeconds.set_orientation( GTK_ORIENTATION_VERTICAL ); или spSeconds.set_orientation( 1 );?

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

Идиотская затея кодить лайаут, но ради интереса попробовал на vala. Кнопка вертикальная:

int main (string[] args) {

    Gtk.init(ref args);

    var window = new Gtk.Window();
    window.destroy.connect(Gtk.main_quit);

    var sb = new Gtk.SpinButton.with_range (0, 100, 1);
    sb.set_orientation(Gtk.Orientation.VERTICAL);

    window.add(sb);
    window.show_all();

    Gtk.main();
    return 0;
}

anonymous ()
Ответ на: комментарий от safocl

Вот как код выше на Vala транслировался на C:

GtkSpinButton* sb = NULL;
sb = (GtkSpinButton*) gtk_spin_button_new_with_range ((gdouble) 0, (gdouble) 100, (gdouble) 1);
gtk_orientable_set_orientation ((GtkOrientable*) sb, GTK_ORIENTATION_VERTICAL);

Если в Vala записать так:

((Gtk.Orientable) sb).set_orientation(Gtk.Orientation.VERTICAL);
то в си транслируется так:
gtk_orientable_set_orientation (G_TYPE_CHECK_INSTANCE_CAST (sb, gtk_orientable_get_type (), GtkOrientable), GTK_ORIENTATION_VERTICAL);

anonymous ()
Ответ на: комментарий от safocl

Если бы у меня был апельсин ©, я бы сделал custom widget AlarmClock используя описание лейаута в ui, а логику в коде custom widget’а. Обявлял бы и плюхал в окно. И не трахался бы с заковыристостью языковых особенноестей лейаута в коде…

anonymous ()