【发布时间】:2019-08-02 10:51:53
【问题描述】:
我想在 Linux c 程序中更改 Gtk 刻度的滑块以显示图像。 我正在使用 CSS 文件来设置背景图像。 图像正在显示,但问题是滑块太小而无法完全显示图像。
我尝试在 CSS 文件中使用 min-width 和 min-height,但它似乎不起作用。
这是我使用的 CSS。 border-radius 和 background-image 有效,但 min-width 和 min-height 不起作用。
.scale .slider{
min-width: 100px;
min-height: 150px;
border-radius: 0px;
background-image: url("fader.png");
}
编辑:这是将 css 样式应用于 gtk 元素的 C 代码:
...
GtkCssProvider *provider = gtk_css_provider_new ();
gtk_css_provider_load_from_path (provider, "gtktut01.css", NULL);
GtkStyleContext *context;
context = gtk_widget_get_style_context(GTK_WIDGET(window));
gtk_style_context_add_provider (context,GTK_STYLE_PROVIDER(provider),GTK_STYLE_PROVIDER_PRIORITY_USER);
context = gtk_widget_get_style_context(GTK_WIDGET(scale));
gtk_style_context_add_provider (context,GTK_STYLE_PROVIDER(provider),GTK_STYLE_PROVIDER_PRIORITY_USER);
gtk_widget_show_all (GTK_WIDGET(window));
gtk_main ();
...
窗口和比例是使用 glade 创建的。
【问题讨论】:
-
如果您也可以发布相关的HTML会更好。但是,试试
background-size: cover- developer.mozilla.org/en-US/docs/Web/CSS/background-size#Values -
嗨,没有 HTML。它是一个使用 GTK+ 的 C 程序。我编辑了我的帖子以包含 C 代码的重要部分。
-
我尝试了背景大小,但这并没有成功。问题不在于图像的大小,而在于滑块手柄的大小。这太小了,所以只显示图像的一部分。我当然可以调整图像大小,但是滑块手柄太小而无法正常看到。
-
即使程序是基于使用 GTK+ 的 C 语言,也必须有特定的 HTML 才能应用 CSS,对吧?
-
不,没有 HTML。 CSS 被 GTK+ 系统应用。它是一个在 Linux 上运行的独立 gui 程序,而不是在 Web 浏览器中。 CSS 被应用到程序的其他部分,例如主窗口背景颜色,滑块上的边框半径也可以调整得很好。只有大小会以某种方式被否决。