在gtkmm-4.0中增加TextView的字体大小



假设我们有一个简单的应用程序,一个窗口中的Gtk::TextView。我使用gtkmm-4.0

主窗口.h

#pragma once
#include <gtkmm.h>
class mainwindow : public Gtk::Window
{
public:
mainwindow();
protected:
Gtk::TextView myTextEntry;
};

mainwindow.cpp

#include "mainwindow.h"
mainwindow::mainwindow()
{
this->set_default_size(300,300);
this->set_child(myTextEntry);
}

main.cpp

#include <gtkmm.h>
#include "mainwindow.h"
int main (int argc, char** argv)
{
auto app = Gtk::Application::create();
return app->make_window_and_run<mainwindow>(argc,argv);
}

这是输出:

屏幕截图

我想把myTextEntry的字体大小调大一点,我该怎么做?

谢谢。

OK。我就是这么做的。我必须使用Gtk::CssProvider类来设计我的应用程序。基本上,您可以用css语言定义一个具有名称的类。您使用name()方法将小部件命名为它(两者名称相同(,然后使用get_style_context()->add_provider():将该css类赋予您的wigdet

在我的mainwindow.hprotected:部分中添加Glib::RefPtr<Gtk::CssProvider> provider;

然后我转到主体mainwindow.cpp中的构造函数,并添加了以下内容:

provider=Gtk::CssProvider::create();
provider->load_from_data("#MainCodeText{"
"font-size:22px;"
"}");
myTextEntry.set_name("MainCodeText");
myTextEntry.get_style_context()->add_provider(TextViewStyle,1);

注意,您可以使用CssProvider的另一种方法来导入css样式,您可以像我一样从文件(load_from_file(、路径(load_from_path(或简单字符串中添加它。对于我的例子,我在上面提到的代码是这样的。

主窗口.h

#pragma once
#include <gtkmm.h>
class mainwindow : public Gtk::Window
{
public:
mainwindow();
protected:
Gtk::TextView myTextEntry;
Glib::RefPtr<Gtk::CssProvider> provider;
};

mainwindow.cpp

#include "mainwindow.h"
mainwindow::mainwindow()
{
this->set_default_size(300,300);
this->set_child(myTextEntry);
provider=Gtk::CssProvider::create();
provider->load_from_data("#MainCodeText{"
"font-size:22px;"
"}");
myTextEntry.set_name("MainCodeText");
myTextEntry.get_style_context()->add_provider(TextViewStyle,1);
}

main.cpp

#include <gtkmm.h>
#include "mainwindow.h"
int main (int argc, char** argv)
{
auto app = Gtk::Application::create();
return app->make_window_and_run<mainwindow>(argc,argv);
}

相关内容

  • 没有找到相关文章

最新更新