Miscellaneous Widgets

本文详细介绍了GTK+中的多种基础控件,包括Label的文本格式化、Entry的文本输入与事件处理、SpinButton的简单描述、ProgressBar的使用、InfoBar的结构以及Tooltips的动态提示。同时涉及EntryCompletion和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(“<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;
    };
    

    image

  • EntryCompletion
    输出时提示与已输入文本相关的条目,类似百度搜索栏的关键词提示
    image

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

SpinButton

  • 不感兴趣
    image

ProgressBar

  • 没什么讲的,就是设置进度啥的
    image

InfoBar

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

Tooltips

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

ScrolledWindow

内容概要:本文围绕SecureCRT自动化脚本开发在毕业设计中的应用,系统介绍了如何利用SecureCRT的脚本功能(支持Python、VBScript等)提升计算机、网络工程等相关专业毕业设计的效率与质量。文章从关键概念入手,阐明了SecureCRT脚本的核心对象(如crt、Screen、Session)及其在解决多设备调试、重复操作、跨场景验证等毕业设计常见痛点中的价值。通过三个典型应用场景——网络设备配置一致性验证、嵌入式系统稳定性测试、云平台CLI兼容性测试,展示了脚本的实际赋能效果,并以Python实现的交换机端口安全配置验证脚本为例,深入解析了会话管理、屏幕同步、输出解析、异常处理和结果导出等关键技术细节。最后展望了低代码化、AI辅助调试和云边协同等未来发展趋势。; 适合人群:计算机、网络工程、物联网、云计算等相关专业,具备一定编程基础(尤其是Python)的本科或研究生毕业生,以及需要进行设备自动化操作的科研人员; 使用场景及目标:①实现批量网络设备配置的自动验证与报告生成;②长时间自动化采集嵌入式系统串口数据;③批量执行云平台CLI命令并分析兼容性差异;目标是提升毕业设计的操作效率、增强实验可复现性与数据严谨性; 阅读建议:建议读者结合自身毕业设计课题,参考文中代码案例进行本地实践,重点关注异常处理机制与正则表达式的适配,并注意敏感信息(如密码)的加密管理,同时可探索将脚本与外部工具(如Excel、数据库)集成以增强结果分析能力。
在裁剪 BusyBox 中的 **Miscellaneous Utilities(杂项实用程序)** 组件时,需要对 BusyBox 的配置系统进行调整,以确保这些工具不会被编译进最终的二进制文件中。 BusyBox 使用 Kconfig 配置系统(类似于 Linux 内核的配置方式),可以通过 `make menuconfig` 或其他图形化配置工具进行定制。以下是具体的操作步骤: ### 配置步骤 1. 进入 BusyBox 源码目录并打开配置界面: ```bash make menuconfig ``` 2. 在配置菜单中,导航至: ``` Miscellaneous Utilities ---> ``` 这个选项包含了多个小工具,例如 `basename`、`chrt`、`env`、`ionice`、`nice`、`timeout` 等。 3. 进入该菜单后,可以逐个取消选中不需要的工具。若希望彻底移除整个类别,可以将该选项设置为 `N`(即不编译该类别下的任何工具)[^1]。 4. 保存配置后,执行编译命令: ```bash make make install ``` ### 影响与注意事项 - **镜像大小优化**:移除 Miscellaneous Utilities 可以减少最终生成的 BusyBox 二进制文件体积,这在资源受限的嵌入式系统中尤为重要。 - **功能缺失风险**:某些脚本或应用程序可能依赖于这些工具(如 `timeout` 或 `nice`),移除后可能导致功能异常,因此需要充分测试系统行为是否符合预期。 - **兼容性处理**:如果某些脚本依赖这些工具,建议在裁剪前进行兼容性评估,或者提供替代实现以确保系统稳定性[^1]。 ### 示例代码片段 在 BusyBox 的 `.config` 文件中,Miscellaneous Utilities 的配置项如下所示: ```ini # Miscellaneous Utilities # CONFIG_MISCELLANEOUS=y # CONFIG_ADJTIMEX is not set # CONFIG_BASHPARAM is not set # CONFIG_BEEP is not set # CONFIG_CAL is not set # CONFIG_CHRT is not set # CONFIG_CROND is not set # CONFIG_ENV is not set # CONFIG_FEATURE_CROND_CALL_RANDOM_DELAY is not set # CONFIG_FEATURE_CROND_DEFAULT_TO_HOUR is not set # CONFIG_FEATURE_CROND_DIR is not set # CONFIG_FEATURE_CROND_SCRIPTS is not set # CONFIG_I2C_DEBUG_TOOLS is not set # CONFIG_IONICE is not set # CONFIG_LESS is not set # CONFIG_NICE is not set # CONFIG_NOHUP is not set # CONFIG_NSENTER is not set # CONFIG_PIVOT_ROOT is not set # CONFIG_READAHEAD is not set # CONFIG_RUN_INIT is not set # CONFIG_SETSID is not set # CONFIG_SLEEP is not set # CONFIG_SUID is not set # CONFIG_SV is not set # CONFIG_SYNC is not set # CONFIG_TTYSIZE is not set # CONFIG_UBIATTACH is not set # CONFIG_UBIDETACH is not set # CONFIG_UBIFORMAT is not set # CONFIG_UBIRENAME is not set # CONFIG_UBIRMVOL is not set # CONFIG_UBIRSVOL is not set # CONFIG_UBIUPDATEVOL is not set # CONFIG_UNSHARE is not set # CONFIG_UPTIME is not set # CONFIG_USERS is not set # CONFIG_WATCH is not set # CONFIG_WCHART_TEST is not set # CONFIG_WHO is not set # CONFIG_XARGS is not set ``` 通过将 `CONFIG_MISCELLANEOUS` 设置为 `n`,可以完全禁用该组件。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值