QT5-控件-QFontComboBox-字体选择下拉列表,使用一个标签查看效果

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QFontComboBox>
#include <QFont>
#include <QLabel>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

    QFontComboBox* fc[10];
    QLabel* label ;
public slots:
    void changedFont(const QFont& f);
};

#endif // MAINWINDOW_H
#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    this->resize(400,300);
    this->centralWidget();

    for(int i=0 ; i<5;i++)
    {
        fc[i] = new QFontComboBox(this);
    }

    fc[0]->setFontFilters(QFontComboBox::AllFonts);
    fc[1]->setFontFilters(QFontComboBox::ScalableFonts);
    fc[2]->setFontFilters(QFontComboBox::NonScalableFonts);
    fc[3]->setFontFilters(QFontComboBox::MonospacedFonts);
    fc[4]->setFontFilters(QFontComboBox::ProportionalFonts);

    int ypos = 30 ;
    for(int i=0;i<5;i++)
    {
        fc[i]->setGeometry(10,ypos,300,30);
        ypos += 40 ;
    }

    label = new QLabel("用此标签查看字体效果",this);
    label->setGeometry(10,230,200,30);
    connect(fc[0],SIGNAL(currentFontChanged(QFont)),this,SLOT(changedFont(QFont)));
}

MainWindow::~MainWindow()
{

}

void MainWindow::changedFont(const QFont& f)
{
    label->setFont(f);
}
#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

posted @ 2016-02-22 18:30  红莲教主  阅读(10580)  评论(0编辑  收藏  举报