Qt之QFontDialog

widget.h:

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

class Widget : public QWidget
{
    Q_OBJECT
public slots:
void showFontDialog();
public:
    Widget(QWidget *parent = 0);
    ~Widget();
};

#endif // WIDGET_H

widget.cpp:

#include "widget.h"
#include<QFont>
#include<QDebug>
#include<QPushButton>
#include<QVBoxLayout>
#include<QFontDialog>
#include<QFontDatabase>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    this->resize(600,480);
QFont qf=this->font();
qf.setFamily("仿宋");
qf.setPointSize(30);
 this->setFont(qf);

 //QFontDatabase db; //系统字体数据库
//qDebug()<<db.families()<<endl;
QPushButton *qp_one=new QPushButton("用户名");
QPushButton *qp_two=new QPushButton("密码");
QVBoxLayout *qv=new QVBoxLayout(this);
qv->addWidget(qp_one);
qv->addWidget(qp_two);
this->setLayout(qv);
connect(qp_one,SIGNAL(clicked()),this,SLOT(showFontDialog()));
connect(qp_two,SIGNAL(clicked()),this,SLOT(showFontDialog()));
}
void Widget::showFontDialog()
{
    bool ok;
   // QFont qf=QFontDialog::getFont(&ok,this);
     QFont qf=QFontDialog::getFont(&ok,this->font(),this,"ff");
    if(ok)
    {
        this->setFont(qf);
    }

}
Widget::~Widget()
{

}

main.cpp:

#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();

    return a.exec();
}

效果:

 

posted @ 2020-07-08 12:48  sunshine_gzw  阅读(318)  评论(0编辑  收藏  举报