假设我们有一个简单的应用程序,一个窗口中的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.h
到protected:
部分中添加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);
}