首页 > 其他分享 >Chapter 8. Miscellaneous Widgets

Chapter 8. Miscellaneous Widgets

时间:2024-01-31 18:47:29浏览次数:29  
标签:Chapter set text Gtk Miscellaneous Label Widgets Entry 文本

目录

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

标签:Chapter,set,text,Gtk,Miscellaneous,Label,Widgets,Entry,文本
From: https://www.cnblogs.com/ComputerTech/p/17999136

相关文章

  • CSAPP学习笔记——chapter5 优化程序性能
    编写高效程序需要做到以下几点:第一,我们必须选择一组适当的算法和数据结构第二,我们必须编写出编译器能够有效优化以转换成高效可执行代码的源代码。对于这第二点,理解优化编译器的能力和局限性是很重要的。编写程序方式中看上去只是一点小小的变动,都会引起编译器优化方式很大的变化......
  • 数据挖掘概念与技术 - chapter 2 - 认识数据
    数据特性:均值中位数众数中心趋势度量这些基本统计量有助于数据预处理时填补空缺值、光滑噪声、识别离群点。考察数据对象的"相似性/相异性"可以用于检测最近邻分类数据对象:一个实体(样本实例数据点)属性:一个数据字段特征变量维度单变量双变量标称属性:与名称相关,......
  • CSAPP学习笔记——chapter8 异常控制流
    CSAPP学习笔记——chapter8异常控制流简介异常控制流(ExceptionalControlFlow,ECF)是在计算机系统中处理不寻常或异常情况的一种机制。它允许系统跳出正常的顺序控制流,响应那些并不直接由程序的控制流逻辑触发的事件。ECF在硬件、操作系统和应用程序层面都有体现,并且是现代计算......
  • CSAPP学习笔记——Chapter12 并行编程
    CSAPP学习笔记——Chapter12并行编程并发编程有着其独特的魅力,之前接触cuda编程的时候,感受到一些,没想到书里还有相关的内容。今天我们主要围绕进程,I/O多路复用,线程三种并发的方式,介绍并发编程的相关概念。并最终拓展chapter11讲中的echo服务器,使其能够处理多个客户端的连接请求......
  • CSAPP学习笔记——Chapter10,11 系统级I/O与网络编程
    CSAPP学习笔记——Chapter10,11系统级I/O与网络编程Chapter10系统级I/O系统级I/O这一章的内容,主要可以通过这张图概括:UnixI/O模型是在操作系统内核中实现的。应用程序可以通过诸如open、close、lseek、read、write和stat这样的函数来访UnixI/O。较高级别的RIO和标......
  • xv6book阅读 chapter3
    页表是硬件提供进程间隔离的方法之一,并通过它来实现虚拟地址和物理地址之间的转换,通过页表可以决定进程能够访问物理内存的哪些部分,xv6提供了一些小技巧,比如在不同的地址空间中可以映射相同的trampolinepage,trampoline是用来辅助用户模式进入内核模式的,所以它可被共用。1分页硬......
  • Understanding the linux kernel Chapter3 Processes
    ProcessDescriptorHowProcessesAreOrganizedtheprocessinstate:TASK_RUNNINGorganizedinrunqueuelistgroupTASK_STROPPED\EXIT_ZOMBIE\EXIT_DEADThereisnoneedtogroupprocessesinanyofthesethreestates,becausestopped,zombie,andd......
  • WidgetsBinding.instance.addPostFrameCallback widget首次渲染完成执行其他操作
    使用场景Flutter中的界面组件(控件)只要一帧就能绘制渲染在屏幕上,当然,这一帧Flutter做了很多事,包括Build、Layout和Painting阶段。而 addPostFrameCallback 就是在每一帧绘制完成后再回调执行一些自己的方法。这个机制的使用场景非常多。比如组件渲染完后做一些操作,像开......
  • xv6book阅读 chapter2
    一个操作系统至少应该满足三个需求:多路复用、隔离、交互。本章主要介绍如何组织操作系统来实现以上的三个需求,本文关注的是一种围绕单核进行设计的方法,这种设计是被许多uinx操作系统所使用的。Xv6运行在多核RISC-V微处理器上时,它的许多低级功能(例如,它的进程实现)是特定于RISC-V的......
  • 读后笔记 -- Pytest框架与自动化应用 Chapter4:DDT 和 参数传递
    4.2参数化应用1.单一参数化/多参数化#contentoftest_mark_parametrize.pymportpytest@pytest.mark.parametrize("test_case",[1,2,3,'orange','apple'])deftest_string(test_case):#单一参数化print(f"\n我们的测试数据:{test_case}&q......