如何为选定的文本设置突出显示颜色

Posted

技术标签:

【中文标题】如何为选定的文本设置突出显示颜色【英文标题】:How to set highlight color for selected text 【发布时间】:2019-09-11 15:06:59 【问题描述】:

我有一个包含这段代码 sn-p 的 python3 程序:

    dmsg.set_selectable(True)
    dmsg.set_name("sMsg")
    style_provider = Gtk.CssProvider()
    css = "#sMsg  background-color: #002348; color: white; padding: 4px 8px; "
    style_provider.load_from_data(bytes(css.encode()))
    Gtk.StyleContext.add_provider_for_screen(
        Gdk.Screen.get_default(),
        style_provider,
        Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)

选择文本时,选择不可见。必须在“css”语句中添加什么来设置突出显示颜色和突出显示背景颜色?

互联网搜索显示了许多 html 的结果,但没有适合这种情况的示例。一个实际的例子会更好。

【问题讨论】:

【参考方案1】:

我可能记错了,但你可能需要添加css“选择”伪元素。

所以试试这样的:

dmsg.set_selectable(True)
dmsg.set_name("sMsg")
style_provider = Gtk.CssProvider()
css = "#sMsg  background-color: #002348; color: white; padding: 4px 8px;  #sMsg::selection color: red; background: yellow;"
style_provider.load_from_data(bytes(css.encode()))
Gtk.StyleContext.add_provider_for_screen(
    Gdk.Screen.get_default(),
    style_provider,
    Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)

更多信息请参见here

【讨论】:

您的建议会导致此错误消息:“GLib.Error: gtk-css-provider-error-quark: :1:70Missing name of pseudo-class (1)”。你能解决它吗? 也许尝试为伪选择元素分配一个类名?然后在您的 HTML 中将指定的类添加到您的元素中。有关如何完成此操作的示例,请参阅编辑后的解决方案。 这不是 HTML。它是 Python3 Gtk3。 编辑了解决方案。现在可以试试吗? 对不起,同样的错误。我想知道'::selection'是否不是Python3 Gtk3中的有效伪元素。

以上是关于如何为选定的文本设置突出显示颜色的主要内容,如果未能解决你的问题,请参考以下文章

iOS:为 UITableViewCell 设置选定突出显示颜色的 alpha

删除选定 UIButton 中的突出显示

Xamarin.Forms ListView:设置点击项的突出显示颜色

如何更改 WPF 文本框的突出显示文本颜色?

如何为状态 UIControlStateHighlighted 设置按钮标签文本颜色

Sublime Monokai 语法突出显示:如何为方法调用着色并使插值字符串内部的颜色不同