Chapter 8. Miscellaneous Widgets
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("<b>粗体文本</b>和<s>删除线文本</s>")
如果你想在构造之初时指定的文本使用这种语法, 请稍后对该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
输出时提示与已输入文本相关的条目,类似百度搜索栏的关键词提示
-
这里有实例:
https://gnome.pages.gitlab.gnome.org/gtkmm-documentation/sec-text-entry.html
SpinButton
- 不感兴趣
ProgressBar
- 没什么讲的,就是设置进度啥的
InfoBar
- Gtk::ScrolledWindow 框起来文本输入区域Gtk::TextView 如果内容太多出界也可以滚屏查看
- InfoBar就是一个Label和一个按钮包含在一个box中组成的 然后默认这个box隐藏,你点Clear它就显示
- 例子中还用什么web语法设置了背景颜色.
Tooltips
- set_tooltip_text()设置一个文本串作为一个提示可在任何部件。 Gtk::Tooltip 是使用更先进的工具提的使用,如显示图像也可以显示文本。
- Glib::RefPtr<Gtk::TextBuffer> 可以包含一些格式化标签Tag来格式化这些文本
Gtk::TextView 提供了与其对接的接口set_buffer() - 鼠标悬浮在设置了提示信息的widget上面就会提示信息
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具