Qt Quick - FontDialog字体对话框

一、概述

FontDialog允许用户选择字体。对话框最初是不可见的。你需要首先按需设置属性,然后将visible设置为true或调用open()。

FontDialog窗口对于其父窗口来说是自动临时的。因此,无论您在项目中还是在窗口中声明对话框,对话框都将显示在包含项目的窗口或您声明的窗口的中央。

FontDialog的实现将是一个平台字体对话框。如果这失败了,那么它将尝试实例化一个QFontDialog。如果这也失败了,那么它将回落到一个QML实现,DefaultFontDialog.qml。

在这种情况下,您可以通过编辑此文件来定制外观。DefaultFontDialog。qml包含一个矩形来保存对话框的内容,因为某些嵌入式系统不支持多个顶级窗口。当对话框变得可见时,如果可能的话,它将自动包装在一个窗口中,如果只能有一个窗口,则简单地在主窗口的顶部重新添加父元素。

二、使用

下面是一个打开字体对话框并在用户选择字体后退出的最小示例:
在这里插入图片描述

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Layouts 1.3
import QtQuick.Controls 2.5
import QtQuick.Dialogs 1.3

Window {
    
    
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    Button{
    
    
        id:button
        text: "字体选择"

        anchors.centerIn: parent

        onClicked: {
    
    
            fontDialog.open();
        }

        FontDialog {
    
    
              id: fontDialog
              title: "Please choose a font"
              font: Qt.font({
    
     family: "Arial", pointSize: 24, weight: Font.Normal })
              onAccepted: {
    
    
                  console.log("You chose: " + fontDialog.font)
                  button.font = fontDialog.font;
              }
              onRejected: {
    
    
                  console.log("Canceled")
              }
          }
    }
}

三、常用属性介绍

modality : Qt::WindowModality

  • 就是模态对话框的标志,默认是 Qt.NonModal.

猜你喜欢

转载自blog.csdn.net/qq_43680827/article/details/130171257