一.第一阶段
运行结果:
day14.pro
QT += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++11# The following define makes your compiler emit warnings if you use# any Qt feature that has been marked deprecated (the exact warnings# depend on your compiler). Please consult the documentation of the# deprecated API in order to know how to port your code away from it.DEFINES += QT_DEPRECATED_WARNINGS# You can also make your code fail to compile if it uses deprecated APIs.# In order to do so, uncomment the following line.# You can also select to disable deprecated APIs only up to a certain version of Qt.#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cpp \widget.cppHEADERS += \widget.h# Default rules for deployment.qnx: target.path = /tmp/$${TARGET}/binelse: unix:!android: target.path = /opt/$${TARGET}/bin!isEmpty(target.path): INSTALLS += target
widget.h
#ifndef WIDGET_H#define WIDGET_H#include <QWidget>class Widget : public QWidget{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();};#endif // WIDGET_H
widget.cpp
#include "widget.h"#include<QFont>#include<QDebug>#include<QLabel>Widget::Widget(QWidget *parent): QWidget(parent){QFont font=this->font();font.setPointSize(200);this->setFont(font);qDebug()<<this->font()<<endl;QLabel* label=new QLabel("helloworld",this);}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();}
二.第二阶段
widget.cpp
#include "widget.h"#include<QFont>#include<QDebug>#include<QLabel>#include<QFontDatabase>Widget::Widget(QWidget *parent): QWidget(parent){QFont font=this->font();font.setPointSize(200);font.setFamily("Rockwell Condensed");this->setFont(font);QFontDatabase db;qDebug()<<db.families()<<endl;new QLabel("helloworld",this);}Widget::~Widget(){}
三.第三阶段
运行结果(GIF动图):
day14.pro
QT += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++11# The following define makes your compiler emit warnings if you use# any Qt feature that has been marked deprecated (the exact warnings# depend on your compiler). Please consult the documentation of the# deprecated API in order to know how to port your code away from it.DEFINES += QT_DEPRECATED_WARNINGS# You can also make your code fail to compile if it uses deprecated APIs.# In order to do so, uncomment the following line.# You can also select to disable deprecated APIs only up to a certain version of Qt.#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cpp \widget.cppHEADERS += \widget.h# Default rules for deployment.qnx: target.path = /tmp/$${TARGET}/binelse: unix:!android: target.path = /opt/$${TARGET}/bin!isEmpty(target.path): INSTALLS += target
widget.h
#ifndef WIDGET_H#define WIDGET_H#include <QWidget>class Widget : public QWidget{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();public slots:void showFontDialog();};#endif // WIDGET_H
widget.cpp
#include "widget.h"#include<QFont>#include<QDebug>#include<QLabel>#include<QFontDialog>#include<QFontDatabase>#include<QPushButton>#include<QVBoxLayout>Widget::Widget(QWidget *parent): QWidget(parent){QFont font=this->font();font.setPointSize(50);font.setFamily("Rockwell Condensed");this->setFont(font);QFontDatabase db;qDebug()<<db.families()<<endl;QLabel* label=new QLabel("helloworld",this);QVBoxLayout* vBox=new QVBoxLayout(this);QPushButton* pb=new QPushButton("showFontDialog");vBox->addWidget(label);vBox->addWidget(pb);connect(pb,SIGNAL(clicked()),this,SLOT(showFontDialog()));}void Widget::showFontDialog(){bool ok;QFont font=QFontDialog::getFont(&ok,this->font(),this,"Font");if(ok){qDebug()<<font<<endl;this->setFont(font);}}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();}