Miscellaneous Widgets

文章目录

  • Label
  • Entry
  • SpinButton
  • ProgressBar
  • InfoBar
  • Tooltips
  • ScrolledWindow

Label

  • Gtk::Label
  • 可以在Label构造函数中指定文本, or later with the set_text() or set_markup() methods.
  • 标签的宽度将自动调整。您可以通过在标签字符串中放置换行符(“\n”)来生成多行标签。
  • 可以使用 set_justify() 方法调整标签文本。该小部件还能够自动换行,可以使用 set_wrap() 激活
  • Gtk::Label 支持一些简单的格式,例如允许您将某些文本设置为粗体、彩色或Larger。 您可以使用Pango 标记语法 向 set_markup() 提供一个字符串来完成此操作。 例如,粗体文本删除线文本:set_markup(“粗体文本删除线文本”)
    如果你想在其构造函数指定的文本使用这种语法, 请稍后对该Label调用set_use_markup(true); 默认不会去识别这种标记语法
  • 这里有一个例子:
    https://gnome.pages.gitlab.gnome.org/gtkmm-documentation/chapter-misc-widgets.html

Entry

  • Entry widgets allow the user to enter text. You can change the contents with the set_text() method, and read the current contents with the get_text() method.

  • 你可以使用
    m_Entry.signal_changed().connect(sigc::mem_fun(*this, &ExampleWindow::entry_activated));一有输入就触发事件

    你可以使用
    m_Entry.set_max_length(3);
    限制用户输入

    你可以使用
    m_Entry.signal_activate().connect(sigc::mem_fun(*this, &ExampleWindow::entry_activated));
    一回车就触发事件

  • 可以有图标,放在输入框内部左侧
    可以有进度条, 营造紧张氛围.也可以使进度条 pulse (跳动,抽搐)
    Glib::signal_timeout().connect(sigc::mem_fun(*this,&ExampleWindow::on_pulse),1000);

    bool on_pulse()
    {
        static double fraction = 0;
        m_Entry.set_progress_pulse_step(fraction += .1);
        if (fraction > 1)
        {
            fraction = 0;
        }
        m_Entry.progress_pulse();
        return true;
    };
    

  • EntryCompletion
    输出时提示与已输入文本相关的条目,类似百度搜索栏的关键词提示
    Miscellaneous Widgets_第1张图片

  • 这里有实例:
    https://gnome.pages.gitlab.gnome.org/gtkmm-documentation/sec-text-entry.html

SpinButton

  • 不感兴趣
    Miscellaneous Widgets_第2张图片

ProgressBar

  • 没什么讲的,就是设置进度啥的
    Miscellaneous Widgets_第3张图片

InfoBar

  • Gtk::ScrolledWindow 框起来文本输入区域Gtk::TextView 如果内容太多出界也可以滚屏查看
  • InfoBar就是一个Label和一个按钮包含在一个box中组成的 然后默认这个box隐藏,你点Clear它就显示
  • 例子中还用什么web语法设置了背景颜色.
    Miscellaneous Widgets_第4张图片

Tooltips

  • set_tooltip_text()设置一个文本串作为一个提示可在任何部件。 Gtk::Tooltip 是使用更先进的工具提的使用,如显示图像也可以显示文本。
  • Glib::RefPtr 可以包含一些格式化标签Tag来动态格式化这些文本
    Gtk::TextView 提供了与其对接的接口set_buffer()
    这就意味着即使是用户输入域的活动字符, 也能够动态设置格式化操作
  • 鼠标悬浮在设置了提示信息的widget上面就会提示信息
    Miscellaneous Widgets_第5张图片

ScrolledWindow

  • H V滚动条自动显示与否, 可以作为容器, 可以继承
  • https://gnome.pages.gitlab.gnome.org/gtkmm-documentation/chapter-container-widgets.html 有例子

你可能感兴趣的:(GTK,gtkmm,C++)