C++ 将css样式应用于Gtk::ToolButton与gtkmm中的选择器不兼容
我试图在gtkmm-3.0中设置应用程序范围的css样式。这是我初始化和加载样式的方式:C++ 将css样式应用于Gtk::ToolButton与gtkmm中的选择器不兼容,c++,css,gtk,gtkmm,gtkmm3,C++,Css,Gtk,Gtkmm,Gtkmm3,我试图在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:
#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);
}
所以我假设我的代码是正确的,而样式表中的选择器是错误的。
然而,文档中说GtkToolButton有一个名为toolbutton的CSS节点。
我目前没有自己使用set\u name
或add\u class
设置任何名称或类
我做错了什么?当我们创建Gtktoolbutton时,它实际上使用的是Gtkbutton。 因此,如果您在css中添加
toolbutton button {
它会起作用的
GTKCS学习起来有点混乱,因为你找不到合适的文档(我找不到非常详细的文档)。。最好使用gtk来调试gtk css。当我们创建gtk工具按钮时,它实际上使用的是gtk按钮。 因此,如果您在css中添加
toolbutton button {
它会起作用的
GTKCS学习起来有点混乱,因为你找不到合适的文档(我找不到非常详细的文档)。。最好使用GTKINSPTT调试gtk css。非常感谢,这确实是问题所在。这是应该在文档中提到的东西。非常感谢,这确实是问题所在。这是文档中应该提到的内容。