2015-02-05 3 views

ответ

1

Я думаю, вам нужно установить шрифт, используя таблицу стилей. Некоторое время назад я искал информацию, и я нашел решение, читающее документацию Qt, и использование некоторых официальных примеров Qt.

У вас есть пример. Измените css, следуя своим собственным требованиям.

.pro файл

HEADERS  = mainwindow.h 
FORMS   = mainwindow.ui 
RESOURCES  = stylesheet.qrc 
SOURCES  = main.cpp \ 
       mainwindow.cpp \ 

stylesheet.qrc

<RCC> 
<qresource prefix="/"> 
    <file>qss/cool.qss</file> 
</qresource> 
</RCC> 

main.cpp

#include <QtWidgets> 

#include "mainwindow.h" 

int main(int argc, char *argv[]) 
{ 
    Q_INIT_RESOURCE(stylesheet); 

    QApplication app(argc, argv); 
    MainWindow window; 
    window.show(); 
    return app.exec(); 
} 

mainwindow.h

#ifndef MAINWINDOW_H 
#define MAINWINDOW_H 

#include <QtWidgets> 

#include "ui_mainwindow.h" 

class MainWindow : public QMainWindow 
{ 
    Q_OBJECT 

public: 
    MainWindow(); 

    Ui::MainWindow ui; 

private: 
    void loadStyleSheet(const QString &sheetName); 
}; 

#endif 

mainwindow.cpp

#include <QtWidgets> 

#include "mainwindow.h" 

MainWindow::MainWindow() 
{ 
    ui.setupUi(this); 
    loadStyleSheet("Cool"); 
} 

void MainWindow::loadStyleSheet(const QString &sheetName) 
{ 
    QFile file(":/qss/" + sheetName.toLower() + ".qss"); 
    file.open(QFile::ReadOnly); 
    QString styleSheet = QString::fromLatin1(file.readAll()); 

    qApp->setStyleSheet(styleSheet); 
} 

Наконец, самый важный файл, cool.qss:

QTabWidget::pane { /* The tab widget frame */ 
    border: 2px solid #C2C7CB; 
} 

QTabWidget::tab-bar { 
    left: 5px; /* move to the right by 5px */ 
} 

/* Style the tab using the tab sub-control. Note that 
    it reads QTabBar _not_ QTabWidget */ 
QTabBar::tab { 
    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, 
           stop: 0 #E1E1E1, stop: 0.4 #DDDDDD, 
           stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3); 
    border: 2px solid #C4C4C3; 
    border-bottom-color: #C2C7CB; /* same as the pane color */ 
    border-top-left-radius: 4px; 
    border-top-right-radius: 4px; 
    /* You should change min-width according to the 
     lenght of your tab text */ 
    min-width: 14ex; 
    padding: 4px; 
    font: bold 14px; 
} 

QTabBar::tab:selected, QTabBar::tab:hover { 
    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, 
           stop: 0 #fafafa, stop: 0.4 #f4f4f4, 
           stop: 0.5 #e7e7e7, stop: 1.0 #fafafa); 
} 

QTabBar::tab:selected { 
    border-color: #9B9B9B; 
    border-bottom-color: #C2C7CB; /* same as pane color */ 
} 

QTabBar::tab:!selected { 
    margin-top: 2px; /* make non-selected tabs look smaller */ 
} 

В этом файле вы больше кода, чем необходимо, но, возможно, важно играть со всеми свойствами.

В любом случае, вам необходимо изменить следующую строку в соответствии с вашими требованиями.

font: bold 14px; 

Также важно проверить значение минимальной ширины для размера шрифта.

Смежные вопросы