将 css 样式应用于 Gtk::ToolButton 不适用于 gtkmm 中的选择器
Applying css style to Gtk::ToolButton is not working with a selector in gtkmm
我正在尝试在 gtkmm-3.0 中设置应用程序范围 css 样式。这就是我初始化和加载样式的方式:
#include "MainWindow.h"
#include <string>
#include <iostream>
const std::string style = R"(
toolbutton {
border-color : #000000;
border-width : 1px;
border-radius: 0px;
}
)";
void loadStyle()
{
try
{
auto css = Gtk::CssProvider::create();
css->load_from_data(style);
Gtk::StyleContext::add_provider_for_screen(
Gdk::Screen::get_default(), css,
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION
);
}
catch(const Gtk::CssProviderError error)
{
std::cerr << "Failed to load style:" <<error.code() << std::endl;
}
}
int main(int argc, char *argv[])
{
auto app = Gtk::Application::create(argc, argv,"com.test");
loadStyle();
MainWindow window(800, 600);
window.show_all();
return app->run(window);
}
MainWindow 只是一个 Gtk::Window,有一个 Gtk::Toolbar 和几个 Gtk::ToolButton。
但由于某种原因,该样式根本没有应用到我的 ToolButton。如果我将样式表选择器更改为 "select all elements",它将应用于我的工具按钮:
* {
border-color : #000000;
border-width : 1px;
border-radius: 0px;
}
所以我假设我的代码是正确的,我的样式表中的选择器是错误的。
但是文档说 GtkToolButton 有一个名为 toolbutton 的单个 CSS 节点。
我目前没有使用 set_name
或 add_class
.
设置任何名称或 类 自己
我做错了什么?
当我们创建 Gtktoolbutton 时,它实际上是在使用 Gtkbutton。
所以在你的 css 如果你添加
toolbutton button {
它会起作用。
gtkcss 学习起来可能有点混乱,因为您找不到合适的文档(好吧,我找不到非常详细的文档和所有文档).. 最好使用 GtkInspector 来调试 gtk css..
我正在尝试在 gtkmm-3.0 中设置应用程序范围 css 样式。这就是我初始化和加载样式的方式:
#include "MainWindow.h"
#include <string>
#include <iostream>
const std::string style = R"(
toolbutton {
border-color : #000000;
border-width : 1px;
border-radius: 0px;
}
)";
void loadStyle()
{
try
{
auto css = Gtk::CssProvider::create();
css->load_from_data(style);
Gtk::StyleContext::add_provider_for_screen(
Gdk::Screen::get_default(), css,
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION
);
}
catch(const Gtk::CssProviderError error)
{
std::cerr << "Failed to load style:" <<error.code() << std::endl;
}
}
int main(int argc, char *argv[])
{
auto app = Gtk::Application::create(argc, argv,"com.test");
loadStyle();
MainWindow window(800, 600);
window.show_all();
return app->run(window);
}
MainWindow 只是一个 Gtk::Window,有一个 Gtk::Toolbar 和几个 Gtk::ToolButton。
但由于某种原因,该样式根本没有应用到我的 ToolButton。如果我将样式表选择器更改为 "select all elements",它将应用于我的工具按钮:
* {
border-color : #000000;
border-width : 1px;
border-radius: 0px;
}
所以我假设我的代码是正确的,我的样式表中的选择器是错误的。
但是文档说 GtkToolButton 有一个名为 toolbutton 的单个 CSS 节点。
我目前没有使用 set_name
或 add_class
.
我做错了什么?
当我们创建 Gtktoolbutton 时,它实际上是在使用 Gtkbutton。
所以在你的 css 如果你添加
toolbutton button {
它会起作用。
gtkcss 学习起来可能有点混乱,因为您找不到合适的文档(好吧,我找不到非常详细的文档和所有文档).. 最好使用 GtkInspector 来调试 gtk css..