首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使子部件在GTK C++中可滚动?

在GTK C++中,可以通过将子部件放置在一个可滚动的容器中来实现子部件的滚动。常用的可滚动容器有GtkScrolledWindow和GtkViewport。下面是使用GtkScrolledWindow和GtkViewport实现子部件滚动的具体步骤:

  1. 创建一个GtkScrolledWindow或GtkViewport的实例,作为容器。
  2. 将需要滚动的子部件放置在容器中。
  3. 将容器添加到主窗口或其他适当的容器中。
  4. 设置容器的滚动行为,包括滚动条的显示方式、滚动速度等。

以下是一个示例代码,演示如何将子部件放置在GtkScrolledWindow中实现滚动:

代码语言:txt
复制
#include <gtkmm.h>

int main(int argc, char* argv[])
{
    // 初始化GTK
    auto app = Gtk::Application::create(argc, argv);

    // 创建主窗口
    Gtk::Window window;
    window.set_default_size(400, 300);

    // 创建可滚动容器
    Gtk::ScrolledWindow scrolledWindow;
    scrolledWindow.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); // 设置滚动条的显示方式为自动

    // 创建子部件
    Gtk::Box box(Gtk::ORIENTATION_VERTICAL, 10); // 假设子部件是一个垂直排列的盒子

    for (int i = 0; i < 100; i++) {
        Gtk::Label* label = Gtk::manage(new Gtk::Label("Label " + std::to_string(i)));
        box.pack_start(*label, Gtk::PACK_SHRINK);
    }

    // 将子部件添加到可滚动容器中
    scrolledWindow.add(box);

    // 将可滚动容器添加到主窗口
    window.add(scrolledWindow);

    // 显示窗口
    window.show_all();

    // 运行GTK主循环
    return app->run(window);
}

在上述示例中,我们创建了一个GtkScrolledWindow实例scrolledWindow,并设置了滚动条的显示方式为自动。然后,我们创建了一个GtkBox实例box,将一些GtkLabel子部件添加到box中。最后,我们将box添加到scrolledWindow中,并将scrolledWindow添加到主窗口window中。这样就实现了子部件在GTK C++中的可滚动效果。

推荐的腾讯云相关产品:无

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Matplotlib 中文用户指南 7.1 交互式导航

如果在平移时按'x'或'y',移动会分别限制x或y轴。 按鼠标右键并将其拖动到新位置来进行缩放。 向右移动使x轴成比例放大,或者向左移动成比例缩小。 y轴和上/下移动同上。...开始缩放时鼠标下的点会保持静止,你可以缩放图形的其它任意点。 你可以使用快捷键'x','y'或CONTROL分别将缩放约束为x轴,y轴或保留宽高比。 使用极坐标绘图时,平移和缩放功能的行为不同。...在此模式还有一个实验性的zoom out to rectangle(缩小到矩形),使用右键,将整个轴域缩小并放置矩形定义的区域中。...Subplot-configuration(图配置)按钮 使用此工具配置图的参数:左边距,右边距,上边距,下边距,行间隔和列间隔。 Save(保存)按钮 单击此按钮启动文件保存对话框。...如果你正在编写自己的用户界面代码,则可以将工具栏添加为窗口小部件

2.1K20

原创 | 整理了32个Python图形化界面库

Toga可以Mac OS、Windows、Linux(GTK)以及Android和iOS等移动平台上使用。...它是基于Qt构建的,这使得它具有高度的定制性和跨平台性。htmlPy与Python2和Python3兼容。...26 Pyforms 官网: https://pyforms.readthedocs.io/en/v4/ 概述: Pyforms是一个Python 3框架,用于开发能够桌面GUI、终端和Web三种不同环境执行的应用程序...该库由三个库组成,每个子库实现负责每个不同环境下解释Pyforms应用程序的层,这些层可以单独为用户使用,也可以一起使用。...它使用SDL库和其他几个流行的库来抽象最常见的函数,使编写这些程序成为一项更直观的任务。Pygame具有高度的可移植性,可以几乎所有平台和操作系统上运行。

6.6K50
  • 分享13个Python GUI库

    因此空白Python具有重要的意义。 Python提供了允许小规模和大规模上编程的设计理念,而且具有一个非常庞大的标准库。Python使用动态类型系统,并具有自动内存管理功能。...GUI库 GUI库包含部件部件是一系列图形控制元素的集合。构建GUI程序时,通常使用层叠方式。众多图形控制元素直接叠加起来。...其主要用于第三方应用程序嵌入式浏览器的使用上。 Dabo 该框架的底层框架是WxPython。这是一个三层框架。总的来说,Dabo是一个跨平台的应用程序开发框架。...该框架鼓励代码的重用性。 PyGObject 通过PyGObject,你可以为GNOME项目编写Python应用程序,也可以使用GTK+编写Python应用程序。...它具有以下特点: 以Python语言内置变量类型显示元素 事件处理系统 计时器 支持日志 PyGTK | PyGObject Linux中常用的“GTK+”是“PyGTK”的“GTK +”封装。

    1.8K30

    13个Python GUI库

    因此空白Python具有重要的意义。 Python提供了允许小规模和大规模上编程的设计理念,而且具有一个非常庞大的标准库。Python使用动态类型系统,并具有自动内存管理功能。...GUI库 GUI库包含部件部件是一系列图形控制元素的集合。构建GUI程序时,通常使用层叠方式。众多图形控制元素直接叠加起来。...其主要用于第三方应用程序嵌入式浏览器的使用上。 4. Dabo ? 该框架的底层框架是WxPython。这是一个三层框架。总的来说,Dabo是一个跨平台的应用程序开发框架。 5. Kivy ?...该框架鼓励代码的重用性。 7. PyGObject ? 通过PyGObject,你可以为GNOME项目编写Python应用程序,也可以使用GTK+编写Python应用程序。 8....PyGTK | PyGObject Linux中常用的“GTK+”是“PyGTK”的“GTK +”封装。

    1.9K00

    13个Python GUI库

    因此空白Python具有重要的意义。 Python提供了允许小规模和大规模上编程的设计理念,而且具有一个非常庞大的标准库。Python使用动态类型系统,并具有自动内存管理功能。...GUI库 GUI库包含部件部件是一系列图形控制元素的集合。构建GUI程序时,通常使用层叠方式。众多图形控制元素直接叠加起来。...其主要用于第三方应用程序嵌入式浏览器的使用上。 4. Dabo 该框架的底层框架是WxPython。这是一个三层框架。总的来说,Dabo是一个跨平台的应用程序开发框架。 5....该框架鼓励代码的重用性。 7. PyGObject 通过PyGObject,你可以为GNOME项目编写Python应用程序,也可以使用GTK+编写Python应用程序。 8....PyGTK | PyGObject Linux中常用的“GTK+”是“PyGTK”的“GTK +”封装。

    1.6K10

    用wxPython打造Python图形界面(上)

    wxpython入门 wxPython GUI工具包是一个围绕名为wxWidgets的c++库的Python包装器。...这是一个很好的小应用程序,演示了wxPython包含的绝大多数小部件。演示允许开发人员一个选项卡查看代码,并在第二个选项卡运行代码。...你甚至可以在演示编辑和重新运行代码,以查看更改如何影响应用程序。 安装wxPython 本文将使用最新的wxPython,即wxPython 4,也称为Phoenix发行版。...对于最流行的Linux版本,你可以附带GTK2和GTK3版本的Extras Linux部分找到一些Python工具。...当你将panel小部件添加到框架,并且该面板是框架的唯一元素时,它将自动展开以填充框架。 下一步是添加一个wx.textcrl到面板。几乎所有小部件的第一个参数都是小部件应该指向哪个父部件

    4.9K40

    Python GTK+ 3 创建一个框

    盒子布局就是这样一个容器,它允许小部件水平或垂直堆叠,从而产生多功能和动态的用户界面设计。要在 Python 制作框布局,请导入模块并配置 GTK+ 库。... __init__ 方法,初始化窗口并设置其标题、默认大小,并将“destroy”信号连接到Gtk.main_quit以处理窗口关闭。...再创建 2 个 Gtk.Label 小部件,label3 和 label4,并将它们垂直打包在 vbox 。 创建一个名为 window 的自定义框实例。...Gtk.main() 启动主 GTK 循环,该循环处理用户交互和事件。 输出具有一个自定义窗口,其中水平 Gtk 标签以框样式分组。垂直 GTK 框,并排有两个标签。两个标签分层一个框的顶部。...本文展示了如何使用框创建基本的 GTK 应用程序和布局小部件

    32910

    10 个派上用场的 Flutter 小部件

    今天的文章,我将告诉你我希望早点知道的最方便的几个Flutter小部件。 Spacer Spacer 创建一个可调整的空白空间,它占据 Flex 容器中小部件之间的任何剩余空间,例如行或列。...它提供了一个很好的过渡,使应用程序非常流畅。始终为其部件添加一个键以确保其正常工作。...SafeArea(child: Container()) RefreshIndicator 将可滚动的小部件作为一个孩子。...当孩子被过度滚动时,动画圆形进度指示器会淡入视图并调用未来来更新滚动的内容。...InteractiveViewer 部件上引入缩放、平移、拖动和捏合功能的最简单方法。它可以根据您的需要高度定制。 Flow 这个小部件利用转换的力量来提供很酷的动画。

    1.3K20

    Flutte部件目录-布局

    Padding 通过给定的填充来插入其的小部件。 Center 一个将自己的子部件集中自己的中心的部件。 Align 一个部件,它自己内部排列它的子部件,并根据子部件的大小自行选择大小。...如果给定孩子,这个小部件强制它的孩子有一个特定的宽度和/或高度(假设这个小部件的父母允许这个值)。 如果宽度或高度为空,则此小部件将自行调整大小以匹配该维度级大小。...GridView 滚动的2D小部件阵列。 Flow 实现流布局算法的小部件。 Table 为其子项使用表格布局算法的小部件 Wrap 一个小部件,它以多个水平或垂直运行显示其子项。...ListBody 一个小部件,它沿着一个给定的轴顺序排列它的元素,强制它们到另一个轴的父元素的维度。 ListView 滚动的线性小部件列表。 ListView是最常用的滚动部件。...它在滚动方向上一个接一个地显示其子项。 交叉轴上,子部件们需要填充ListView。 CustomMultiChildLayout 一个使用代理来调整尺寸和定位多个子项的小部件

    1.5K10

    Flutte部件目录-基本部件(一)

    颜色使箱子蓝绿色。alignment使得子部件被置于框。foregroundDecoration将九个斑点的图像叠加到文本上。最后,transform对整个装置施加轻微旋转以完成效果。...read-only, inherited key → Key 控制一个部件如何替换树的另一个部件。 [...]...Row部件不会滚动(并且一般认为一行中有更多的孩子比适合可用的房间更好是错误的)。如果您有一行小部件,并希望它们空间不足的情况下能够滚动,请考虑使用ListView。...Column部件滚动(并且通常认为宁愿列中有更多子项也不使用适合可用空间是错误的)。 如果您有一行小部件,并希望它们空间不足的情况下能够滚动,请考虑使用ListView。...调试模式下,溢出边缘处呈现黄色和黑色条纹条以指示问题,并在列下方显示一条消息,指出检测到多少溢出。 通常的解决方案是使用ListView而不是Column来垂直空间有限时使内容滚动

    7.5K20

    如何在Linux桌面下使用PyGObject创建GUI应用程序

    Linux创建GUI应用程序 - 第1部分 今天,我们要开始了一系列关于创建GUI(图形用户界面)使用GTK +库和PyGobject语言Linux桌面应用下,该系列将包括以下内容: 第1部分 :如何创建...的/ usr / bin/ Python的 :对Python解释器(2.7版本大多数情况下)的默认路径,这条线必须在每个Python文件的第一行。...,运行: # yum install glade 您下载并安装该程序,并运行后,你会看到左边的可用GTK构件,以创建一个新的窗口,单击“ 窗口 ”,窗口小部件。...添加小部件 你会发现,按键ID为“Button1的 ”,现在指的是信号标签右侧工具栏,并搜索“ 点击 ”信号,并在其下输入“button1_clicked”。...窗口= builder.get_object(“窗口1”):在这里我们称之为从.glade文件的“窗口1”的对象,以便在以后节目中表现出来。 就是这样! 您已经Linux下成功创建了第一个程序!

    3.8K30

    全志 Tina Linux 图形系统 框架介绍 最全介绍 MiniGUI、QT5、EFL、GTK+(WebkitGtk、Midori)、DirectFB、Wayland

    GTK部件已经被制作方便支持ATK框架。 GdkPixbuf是一个允许你从图像数据或图像文件创建GdkPixbuf(“pixel buffer”)的小的库。...GTK+是GTK+库本身包含的部件,确切的说是GUI零件,比如GtkButton或者Gtk-TextView。...更多GTK应用编程参考:示例 Gtk+(GIMP Tool Kit,GIMP工具包)是一个用于创造图形用户接口的图形库,下面是GIMP on GNU/Linux的截图: Tina系统移植了GTK+3...高级图形引擎:动画、抗锯齿、不透明度、平滑滚动、混合模式等。 支持各种输入设备:触摸屏、鼠标、键盘、编码器、按钮等。 支持多显示器。 独立于硬件,与任何微控制器和显示器一起使用。...用C编写并与C++兼容。 Micropython BindingMicropython公开LVGL API。 可以PC上使用模拟器开发。 100 多个简单的例子。

    16.9K10

    Tina_Linux_图形系统_开发指南

    GTK部件已经被制作方便支持ATK框架。 GdkPixbuf是一个允许你从图像数据或图像文件创建GdkPixbuf(“pixel buffer”)的小的库。...GTK+是GTK+库本身包含的部件,确切的说是GUI零件,比如GtkButton或者Gtk-TextView。...更多GTK应用编程参考:示例 Gtk+(GIMP Tool Kit,GIMP工具包)是一个用于创造图形用户接口的图形库,下面是GIMP on GNU/Linux的截图: Tina系统移植了GTK+3...高级图形引擎:动画、抗锯齿、不透明度、平滑滚动、混合模式等。 支持各种输入设备:触摸屏、鼠标、键盘、编码器、按钮等。 支持多显示器。 独立于硬件,与任何微控制器和显示器一起使用。...用C编写并与C++兼容。 Micropython BindingMicropython公开LVGL API。 可以PC上使用模拟器开发。 100 多个简单的例子。

    13.3K10

    【五万言】Rust 2022 生态版图调研报告(下)

    GTK ,小部件接受回调,调用者为这些回调提供函数。按预期使用它是一个巨大的错误。修复 GTK 应用程序的一般解决方案是通过基于消息的回调使其类似于 Elm。...创建自定义小部件所需的代码 C 中非常乏味, Rust 更是如此。 考虑到 GTK面向对象编程非常流行的时候开发的面向对象框架。...它允许通过外部生成的库 Flutter 应用程序中使用 Rust 代码。 Gtk-rs 发布了新版本 GTK是一个流行的跨平台、面向对象的部件工具包,由GNOME项目[247]开发。...fltk-rs crate支持旧的架构,有80多个定制的小部件和超过4个支持的主题方案,包括GTK方案。你也可以使用 `fltk-theme`[252] crate来进行更多的定制。...因为 Rust 函数调用缺少命名参数和可选参数,所以向现有小部件添加可选修饰符是很痛苦的。

    2.9K51

    Flutter构建布局 顶

    Flutter的布局机制如何工作。 如何垂直和水平布局小部件如何构建一个Flutter布局。 这是Flutter构建布局的指南。 您将构建以下屏幕截图的布局: ?...如果您愿意,可以构建仅使用小部件的标准小部件的应用程序。 如何在Flutter布置单个小部件? 本节介绍如何创建一个简单的小部件并将其显示屏幕上。...标准小部件 Container: 向边框添加填充,边距,边框,背景颜色或其他装饰。 GridView: 放置小部件作为滚动的网格。 ListView: 将小部件列为滚动列表。...Stack摘要: 用于与另一个小部件重叠的小部件 列表的第一个小部件是基础小部件; 随后的被覆盖基础小部件的顶部 堆栈的内容不能滚动 您可以选择剪切超过渲染框的子项 Stack示例: ?...处理Flutter的盒子约束:讨论小部件如何受其渲染框限制。 Flutter添加资产和图像:说明如何将图像和其他资源添加到应用程序包

    43.1K10
    领券