LINUX.ORG.RU

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

 ,


0

1

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

решения:

тут

тут

тут

тут

★★

Последнее исправление: safocl (всего исправлений: 2)

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

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

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

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

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

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

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

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

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

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

Какой резон кодить лейаут

если он может изменяться в процессе работы

ananas ★★★★★
()
Ответ на: комментарий от 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
()
Ответ на: комментарий от anonymous

а в gtkmm3 нету почему то... и в gtk3 как я понимаю тоже, хатя в доках указано иное

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

нету таких методов у spinbutton

тогда через set_property задай

ananas ★★★★★
()
Ответ на: комментарий от 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
()
Ответ на: комментарий от anonymous

Я собственно о том, что может в этих ваших цпп тоже можно что-то типа

[code] ( (GtkOrientable*) spSeconds).set_orientation( GTK_ORIENTATION_VERTICAL ); [/code]

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

а так не получается — грит сегфолт...

safocl ★★
() автор топика

gtk умеет исключительно в заднеприводную ориентацию

как и тот кто поставил на ЛОРе гуглокапчу

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

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

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

да — возможно так и буду потом делать — но хотел все познать на примере ентой проги... — я тока изучаю gtkmm

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