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

将Gtk2::EntryCompletion与Gtk2::SimpleList一起使用

是为了在Gtk2的图形界面应用程序中实现自动完成和列表显示的功能。

Gtk2::EntryCompletion是一个用于自动完成的小部件,它可以根据用户输入的文本提供匹配的建议项。它可以与文本输入框(如Gtk2::Entry)一起使用,以便在用户输入时显示匹配的建议项。

Gtk2::SimpleList是一个用于显示列表数据的小部件,它可以以表格的形式显示数据,并支持排序和选择功能。它可以与Gtk2::TreeView一起使用,以便在图形界面中显示和操作列表数据。

要将Gtk2::EntryCompletion与Gtk2::SimpleList一起使用,可以按照以下步骤进行:

  1. 创建一个Gtk2::EntryCompletion对象,并设置其属性和回调函数。可以使用Gtk2::EntryCompletion的方法来设置自动完成的匹配规则、最大显示行数等属性,并为其设置回调函数,以便在用户选择建议项时执行相应的操作。
  2. 创建一个Gtk2::SimpleList对象,并设置其列和数据。可以使用Gtk2::SimpleList的方法来设置列的标题、宽度等属性,并为其设置数据,以便在列表中显示相应的数据。
  3. 将Gtk2::EntryCompletion与Gtk2::SimpleList关联起来。可以使用Gtk2::EntryCompletion的方法将其与Gtk2::SimpleList关联起来,以便在用户输入时自动显示匹配的建议项,并在用户选择建议项时更新列表数据。
  4. 将Gtk2::EntryCompletion和Gtk2::SimpleList添加到图形界面中的适当位置。可以使用Gtk2的布局容器(如Gtk2::VBox、Gtk2::HBox)来管理它们的位置和大小,并将它们添加到主窗口或其他适当的容器中。

以下是一个示例代码,演示了如何将Gtk2::EntryCompletion与Gtk2::SimpleList一起使用:

代码语言:txt
复制
use Gtk2 '-init';
use Gtk2::SimpleList;
use Gtk2::EntryCompletion;

# 创建主窗口
my $window = Gtk2::Window->new('toplevel');
$window->set_title('EntryCompletion with SimpleList');
$window->set_default_size(400, 300);
$window->signal_connect('destroy' => sub { Gtk2->main_quit });

# 创建Gtk2::Entry对象
my $entry = Gtk2::Entry->new;
$entry->set_text('');  # 设置初始文本

# 创建Gtk2::EntryCompletion对象
my $completion = Gtk2::EntryCompletion->new;
$completion->set_model(Gtk2::ListStore->new('Glib::String'));
$completion->set_text_column(0);
$completion->set_match_func(\&match_func);  # 设置匹配规则的回调函数

# 创建Gtk2::SimpleList对象
my $list = Gtk2::SimpleList->new('Column 1' => 'text');
$list->set_headers_visible(0);  # 隐藏列标题

# 将Gtk2::EntryCompletion与Gtk2::SimpleList关联起来
$completion->set_popup_completion(1);
$completion->set_popup_set_width(1);
$completion->set_popup_single_match(0);
$completion->set_popup_rows(5);
$completion->set_popup_widget($list);

# 将Gtk2::EntryCompletion添加到Gtk2::Entry中
$entry->set_completion($completion);

# 将Gtk2::Entry和Gtk2::SimpleList添加到主窗口
my $vbox = Gtk2::VBox->new(0, 5);
$vbox->pack_start($entry, 0, 0, 0);
$vbox->pack_start($list, 1, 1, 0);
$window->add($vbox);

$window->show_all;
Gtk2->main;

# 匹配规则的回调函数
sub match_func {
    my ($completion, $key, $iter) = @_;
    my $model = $completion->get_model;
    my $iter = $model->get_iter_first;
    while ($iter) {
        my $text = $model->get_value($iter, 0);
        if ($text =~ /^$key/i) {
            return 1;
        }
        $iter = $model->iter_next($iter);
    }
    return 0;
}

在上述示例代码中,我们创建了一个包含Gtk2::Entry和Gtk2::SimpleList的图形界面应用程序。用户在Gtk2::Entry中输入文本时,Gtk2::EntryCompletion会根据匹配规则显示匹配的建议项,并将选择的建议项更新到Gtk2::SimpleList中显示。

这个示例中使用的腾讯云相关产品和产品介绍链接地址如下:

  • 腾讯云产品:云服务器(CVM)
  • 产品介绍链接地址:https://cloud.tencent.com/product/cvm
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

IBM Websphere Message Broker(MB) 教程系列-(1) 在Fedora

上面设定shmmax为1G        如果不想重启系统,可以执行echo 1073741824 > /proc/sys/kernel/shmmax,一次性设置shmmax值, 系统重启通过...7)  使用yum localinstall *.rpm 安装所有的组件, 如果使用rpm -ivh *.rpm进行安装会有依赖错误,自已安装会很麻烦。     ...为立即停止)                             dltmqm CRMQM (删除队列管理器)  2  安装MB  2.1  MQ安装完成后,我们开始安装MB, 首先我们要安装gtk2...: yum install gtk2  2.2  安装ksh: yum install ksh,如果这个包不装,安装完成时,会出现错误,但仍可安装完成,但无法使用,为了避免不必要的麻烦,我们首先安装此包...安装Toolkit      由于toolkit 是32位版本,所以需要安装gtk2 x86版本,执行如下:       yum install gtk2*.i686      下载Toolkit的三个文件

1.4K100

使用xfce4桌面系统

XFCE是用GTK2 toolkit写的,同时也包含了其自己的开发环境(库、守护进程等),和其他大型的桌面环境差不多。...但GNOME和KDE不同的是,XFCE是一个轻量级的桌面环境,设计上软多地参考了CDE而不是Windows或Mac。其开发周期较长,但很可靠且运行速度非常快。,XFCE特别适合用于老硬件的环境。...使用GTK2,可换主题。你可以XFCE设置得看起来非常漂亮。字体显示上,完全支持AA(反锯齿)。 很好地支持多显示器。...没什么理由继续使用XFCE3了(不再继续开发了),但仍在软件库中,因为它能运行,且XFCE-4不冲突(底层代码是分开的)。这篇教程只涉及XFCE-4。...从控制台中启动XFCE,只需运行: startxfce4 定制启动XFCE使用这个方法。/opt/xfce4/etc/xfce4/xinitrc拷到$HOME/.xfce4,并编辑。

2.3K100

如何ReduxReact Hooks一起使用

在本文中,让我们一起来学习如何ReduxReact Hooks一起使用。 React Redux在2019年6月11日发布的7.1版中提供了对Hooks的支持。...这意味着我们可以在函数组件中将ReduxHooks一起使用,而不是使用高阶组件(HOC)。 什么是Hook?...回到正题 本文的原始目的是介绍如何ReduxHooks结合使用。 React Redux现在提供了useSelector和useDispatch Hook,可以使用它们代替connect。...在该示例中,我们将使用connect的React组件转换为使用Hooks的组件。...不使用高阶组件的另一个好处是不再产生多余的"虚拟DOM包装": ? 最后 现在,我们已经了解和学习了Hooks的基础知识,以及如何将它们Redux一起使用。编程愉快!

6.9K30

Linux系统之neofetch工具的基本使用

优雅高效的结合:Neofetch 通过 ASCII 艺术 Logo 和鲜明色彩的文本输出,优雅地展示系统信息。它不仅关注外观,而且通过清晰有序地显示关键数据以提高效率。...4.1 直接使用neofetch命令直接使用neofetch命令,这将显示操作系统和计算机的相关信息,例如系统名称、内核版本、主机名、CPU型号、内存、GPU等等。...:使用彩色的块来表示系统信息--kernel_shorthand:使用更简短的方式来表示内核版本--off:关闭某些特定的信息显示,例如标志、操作系统等--cpu:展示CPU信息--gpu:展示GPU信息...neofetch --ascii_distro arch图片图片五、输出信息保存文本导出neofetch输出:有时我们希望neofetch输出保存到文件中。...KKKKKKKK FV Icons: Adwaita [GTK2/3] ' VKKKKK'. .4 LJ K. .'

65241

对于初学者,Linux的哪种桌面环境比较适用?

一个暖色的、使人亢奋的配色是绝对不适合长期工作使用的,还有,这是一个对触控“优化”了的桌面。事实证明,任何想统一PC和平板界面、平板和手机界面、PC和手机界面的尝试都是失败的,都只是异想天开。...GTK2下的最重量级桌面(曾经的GNOME2),优秀的传统桌面,GTK+下的效率之王。对于初学者来说,上手MATE要比上手GNOME和Unity容易得多。...未来的MATE基于GTK3。 Cinnamon Linux Mint一手搞出来的东西。体验接近MATE,稍微花哨一点。...不过基于GNOME Shell的CinnamonGNOME的发展方向是完全背道而驰的,所以发展很不容易。发行版只推荐Linux Mint,毕竟是人家开发的。...对初学者来说,可以根据喜好使用偏传统的KDE5或者偏触控的GNOME3,体验都比较好~

4.2K20

begin_centos7

安装 插入u盘, 重启电脑, 开机过程中按F2进入BIOS, 设置启动顺序为u盘优先, 保存配置并退出 在Install Centos 7这一行按e 进入编辑模式, 脚本中对应内容修改为 initrd...无线上网 有线可以忽略;无线需要购买对应的无线网卡, 支持linux,最好买不用驱动安装的,插入即可使用,要不然就会知道.ko文件如何生成和使用(linux驱动文件) 3..../configure --enable-gui --language=zh_CN依赖yasm-1.2.0-4.sdl7.x86_64.rpm yum install gtk2*报错就对应修改 编译 $.../configure 这次加上参数–codecsdir=/usr/local/lib/codecs 5. markdown编辑器 推荐使用Atom,下载rpm包直接安装即可,功能强大,目前使用其来进行markdown...终端配置目前主要是bashrc vimrc, 另外还有键盘的重新映射,即改键,我主要是把esc和caps互换,毕竟esc使用频率太高了,而它离手指又太远了。 8.

1.8K20

Python桌面程序开发入门(十六)-在应用程序中加入HTML

下面的两节,我们讨论HTML窗口对象,以及给你展示如何对本地的文本或远程的URL使用它。...之相反的样式是wx.html.HW_SCROLLBAR_NEVER,使用该样式将不会显示滚动条。...这在GTK2下运行wxPython时是特别有用的,它能够提供一套更好的字体。  如果由于某种原因,你需要改变窗口中文本边缘窗口边缘之间的间隔的话,HTML窗口定义了SetBorders(b)方法。...一旦状态栏的关联被创建,那么当鼠标移动到显示的页面的链接上时,相关链接的URL显示在状态栏中。  如何打印一个HTML页面?  一旦HTML被显示在屏幕上,接下来可能做的事就是打印该HTML。...你可以使用另一个构造函数wx.html.HtmlWinParser(wnd)一个wx.html.HtmlWinParser()一个已有的wx.html.HtmlWindow联系在一起,参数wnd是HTML

2.6K00

OpenCloudOS 9.2 发布!全新内核版本,全面平台支持

为企业开发者带了价值?本文将为大家详细介绍。...Tiered memory 分层内存系统 CXL 支持实现自动数据升降级搬迁,降低内存使用成本,构建大容量、低延迟内存池。...;提高查询规划器的性能;增加--sate 命令行选项,禁止使用有可能危害系统的 SQL 函数 支持企业级分布式 HTAP 开源数据库 OpenTenBase 新增基于 Nginx Lua 的高性能...,目前已支持 GTK2、GTK3、GTK4 新增支持 ibus 智能拼音输入法 镜像优化 根文件系统从 ext4 切换为 xfs X 的默认引擎从 wayland 改为 X11 3、支持周期版本规划...OpenCloudOS 9 每一年发布一个偶数版本,OpenCloudOS 9.2 维护支持至 2026 年。

23010

linux内核编译详解

如果用户想要使用这些新特性,或想根据自己的系统定制一个更高效、更稳定的内核,就需要手动编译Linux内核。那么如何编译内核呢?本文讲解Linux内核编译的详细程。...内核编译之解压源码包 编译内核时,一般把源码解压到/usr/src目录下,解压完成后会在该目录下生成一个源码包版本号一致的目录,为了方便起见,我们可将它做一个链接,链接为linux目录。...gcc和ncurses-devel make gconfig #依赖GNome桌面环境及GNome的图形开发环境,gtk2...所以我们可使用screen命令(需安装),启动多个窗口,即使连接中断,编译也不会终止。...只编译一个模块: make path /to/dir/MOD_NAME .ko 编译生成的文件保存至别处

5.8K20

浅析Linux系统的输入法平台

近一段时间,更多的接触了linux系统,之前的印象中,linux系统更偏向于命令行模式,更多的是作为服务器来使用,现在却作为跟windows一样的界面操作系统来使用,不得不说还是带来一定的冲击的。...scim现在维护滞后,不推荐使用。...Fcitx支持XIM和GTK2,GTK3,QT4的IM Module,可为支持 XIM 的 X 应用程序提供输入服务。 fcitx 的源码包内提供了区位和全/简/双拼,并支持基于码表的输入法。...有配置界面,界面展现形式更接近windows,比较适合windows转linux的用户。资源占用低,处理速度快。...QT,应用非常广泛,有的软件厂商可以维护自己的QT库,以更好的支持自己家的软件,基本现在市面上的操作系统厂商都带了QT,但是各软件使用的QT版本不同,仍然会存在兼容性的问题。

9.4K30

Daily Tips(Updated)

这篇博文取名为“Daily Tips”,意为日常技巧、小技巧,意在记录开发中或者电脑打交道过程中遇到的一些小问题及解决途径,这些小问题是值得记录但又无须长篇大论、深究的。...libgtk2.0-0:am 2.24.23-0ubu amd64 GTK+ graphical user interface lib 其中3.10.8、2.24.23分别为gtk3、gtk2...中,eclipse默认使用了gtk3的原因,解决问题如下: 在eclipse根目录的eclipse.ini配置文件中,添加如下配置: --launcher.GTK_version 2 ----...解决的办法就是,利用ppa在Ubuntu16.04下安装openjdk-7-jdk: 删除系统中所有java有关的包: sudo apt-get remove openjdk-* icedtea-*...解决方法如下: 删除系统自带的fonts-noto-cjk包: sudo apt-get remove fonts-noto-cjk 使用Ubuntu 开发团队的 Gunnar Hjalmarsson

1.4K20

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

有许多图形用户界面(GUI)工具包可以Python编程语言一起使用。其中三巨头是Tkinter、wxPython和PyQt。...图形用户界面是一个具有按钮、窗口和许多其他小部件的应用程序,用户可以使用这些小部件应用程序进行交互。web浏览器就是一个很好的例子。它有按钮、选项卡和一个主窗口,所有内容都在其中加载。...对于最流行的Linux版本,你可以在附带GTK2和GTK3版本的Extras Linux部分找到一些Python工具。...开发人员获取这些小部件,并将它们逻辑地排列在一个窗口上,以便用户之交互。 事件循环 图形用户界面的工作原理是等待用户做一些事情。这个东西叫做事件。...wxPython框架有特殊的线程安全方法,你可以使用这些方法应用程序通信,让它知道线程已经完成,或进行更新。 让我们创建一个框架应用程序来演示事件是如何工作的。

4.8K40

Ubuntu 13.04CentOS 6.4 下C++开发时的相关设置

库文档在连接(静态库和共享库)和运行(仅限于使用共享库的程式)时被使用,其搜索路径是在系统中进行配置的。.../etc/ld.so.cache 是个非文本的数据文档,不能直接编辑,他是根据/etc/ld.so.conf中配置的搜索路径由 /sbin/ldconfig命令这些搜索路径下的共享库文档集中在一起而生成的...ldconfig,简单的说,他的作用就是/etc/ld.so.conf列出的路径下的库文档缓存到/etc/ld.so.cache以供使用。...而且,当系统重新启动后,任何的基于GTK2 的程式在运行时都将使用新安装的 GTK+ 库。不幸的是,由于GTK+版本的改变,这有时会给应用程式带来兼容性的问题,造成某些程式运行不正常。...为了避免出现上面的这些情况,在GTK+及其依赖库的安装过程中对于库的搜索路径的配置采用第一种方式进行。

65730

翻译连载 |《你不知道的JS》姊妹篇 |《JavaScript 轻量级函数式编程》- 第 5 章:减少副作用

如果你总是指定了相同的种子,那么你始终从后续的“随机数”中得到相同的输出序列。这对于测试是非常有用的,但是在真正的应用中使用也是非常危险的。...换句话说,foo(x) 产生 foo(foo(x))、foo(foo(foo(x))) 等相同的输出。 一个典型的数学例子是 Math.abs(..)(取绝对值)。...和 simpleList(..) 是纯的。 但是如果这种突变更难被发现呢?纯函数和不纯的函数的合成总是产生不纯的函数。如果我们一个不纯的函数传递到另一个纯函数 simpleList(..)...但是,因为在我们的学习中不仅仅是学习学术,而且实用主义相平衡,我认为这个结论需要更多的观点。让我们探索一下。 性能影响 你经常会发现这些不易观察的副作用被用于性能优化的操作。...我们研究解决这些情况的方法。 封闭的影响 如果副作用的本质是使用词法自由变量,并且您可以选择修改周围的代码,那么您可以使用作用域来封装它们。

1.2K70

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

它目前支持的平台包括Microsoft Windows、Mac OS X和macOS,以及Linux或其他具有GTK2或GTK3库的类unix系统。...它可以图绘制到屏幕上,然后轻松地导出为各种格式,包括SVG和PDF。使用Gaphas可以构建带有树、网络、流程图或其他图表的应用程序。...它由一个基本组件库和一个共享接口组成,以简化平台无关的GUI开发。Toga可以在Mac OS、Windows、Linux(GTK)以及Android和iOS等移动平台上使用。...该库由三个子库组成,每个子库实现负责在每个不同环境下解释Pyforms应用程序的层,这些层可以单独为用户使用,也可以一起使用。...该框架duilib运行时和python运行时结合到一起,实现用xml快速构建界面的同时,利用python及其众多久经考验的库编写业务逻辑,极大地缩短开发周期。

5.1K50

安利一款好用到爆的可视化拖拽库

它在 github 上有17.4k star,提供了很多非常精美的拖拽案例, 我们使用它可以轻松实现可视化拖拽,组件排序,网格拖拽等效果,而且浏览器兼容性也非常不错,原生 javascript 开发,...接下来我就和大家一起介绍一下这款开源插件。...如果你有好的开源项目,欢迎在评论区交流反馈~ 安装使用 我们可以使用如下方式安装: # yarn add shopify/draggable pnpm add shopify/draggable 在项目里使用...Swappable, } from 'shopify/draggable' github地址:https://github.com/Shopify/draggable 接下来我就来和大家分享几个非常有价值的使用案例...可拖拽的列表 源码地址:https://github.com/Shopify/draggable/tree/master/examples/src/content/Sortable/SimpleList

14510
领券