Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将css样式应用于Gtk::ToolButton与gtkmm中的选择器不兼容_C++_Css_Gtk_Gtkmm_Gtkmm3 - Fatal编程技术网

C++ 将css样式应用于Gtk::ToolButton与gtkmm中的选择器不兼容

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:

我试图在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);
}
所以我假设我的代码是正确的,而样式表中的选择器是错误的。 然而,文档中说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。

非常感谢,这确实是问题所在。这是应该在文档中提到的东西。非常感谢,这确实是问题所在。这是文档中应该提到的内容。