38 lines
		
	
	
		
			981 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			981 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include "qt_helpers.hpp"
 | |
| 
 | |
| #include <QString>
 | |
| #include <QFont>
 | |
| #include <QWidget>
 | |
| #include <QStyle>
 | |
| #include <QVariant>
 | |
| 
 | |
| QString font_as_stylesheet (QFont const& font)
 | |
| {
 | |
|   QString font_weight;
 | |
|   switch (font.weight ())
 | |
|     {
 | |
|     case QFont::Light: font_weight = "light"; break;
 | |
|     case QFont::Normal: font_weight = "normal"; break;
 | |
|     case QFont::DemiBold: font_weight = "demibold"; break;
 | |
|     case QFont::Bold: font_weight = "bold"; break;
 | |
|     case QFont::Black: font_weight = "black"; break;
 | |
|     }
 | |
|   return QString {
 | |
|       " font-family: %1;\n"
 | |
|       " font-size: %2pt;\n"
 | |
|       " font-style: %3;\n"
 | |
|       " font-weight: %4;\n"}
 | |
|   .arg (font.family ())
 | |
|      .arg (font.pointSize ())
 | |
|      .arg (font.styleName ())
 | |
|      .arg (font_weight);
 | |
| }
 | |
| 
 | |
| void update_dynamic_property (QWidget * widget, char const * property, QVariant const& value)
 | |
| {
 | |
|   widget->setProperty (property, value);
 | |
|   widget->style ()->unpolish (widget);
 | |
|   widget->style ()->polish (widget);
 | |
|   widget->update ();
 | |
| }
 | 
