File indexing completed on 2026-09-20 09:24:01
0001
0002
0003
0004
0005 #ifndef QFONTCOMBOBOX_H
0006 #define QFONTCOMBOBOX_H
0007
0008 #include <QtWidgets/qtwidgetsglobal.h>
0009 #include <QtWidgets/qcombobox.h>
0010 #include <QtGui/qfontdatabase.h>
0011
0012 QT_REQUIRE_CONFIG(fontcombobox);
0013
0014 QT_BEGIN_NAMESPACE
0015
0016 class QFontComboBoxPrivate;
0017
0018 class Q_WIDGETS_EXPORT QFontComboBox : public QComboBox
0019 {
0020 Q_OBJECT
0021 Q_PROPERTY(QFontDatabase::WritingSystem writingSystem READ writingSystem WRITE setWritingSystem)
0022 Q_PROPERTY(FontFilters fontFilters READ fontFilters WRITE setFontFilters)
0023 Q_PROPERTY(QFont currentFont READ currentFont WRITE setCurrentFont NOTIFY currentFontChanged)
0024
0025 public:
0026 explicit QFontComboBox(QWidget *parent = nullptr);
0027 ~QFontComboBox();
0028
0029 void setWritingSystem(QFontDatabase::WritingSystem);
0030 QFontDatabase::WritingSystem writingSystem() const;
0031
0032 enum FontFilter {
0033 AllFonts = 0,
0034 ScalableFonts = 0x1,
0035 NonScalableFonts = 0x2,
0036 MonospacedFonts = 0x4,
0037 ProportionalFonts = 0x8
0038 };
0039 Q_DECLARE_FLAGS(FontFilters, FontFilter)
0040 Q_FLAG(FontFilters)
0041
0042 void setFontFilters(FontFilters filters);
0043 FontFilters fontFilters() const;
0044
0045 QFont currentFont() const;
0046 QSize sizeHint() const override;
0047
0048 void setSampleTextForSystem(QFontDatabase::WritingSystem writingSystem, const QString &sampleText);
0049 QString sampleTextForSystem(QFontDatabase::WritingSystem writingSystem) const;
0050
0051 void setSampleTextForFont(const QString &fontFamily, const QString &sampleText);
0052 QString sampleTextForFont(const QString &fontFamily) const;
0053
0054 void setDisplayFont(const QString &fontFamily, const QFont &font);
0055 std::optional<QFont> displayFont(const QString &fontFamily) const;
0056
0057 public Q_SLOTS:
0058 void setCurrentFont(const QFont &f);
0059
0060 Q_SIGNALS:
0061 void currentFontChanged(const QFont &f);
0062
0063 protected:
0064 bool event(QEvent *e) override;
0065
0066 private:
0067 Q_DISABLE_COPY(QFontComboBox)
0068 Q_DECLARE_PRIVATE(QFontComboBox)
0069 };
0070
0071 Q_DECLARE_OPERATORS_FOR_FLAGS(QFontComboBox::FontFilters)
0072
0073 QT_END_NAMESPACE
0074
0075 #endif