qml 对话框 ColorDialogs FontDialog FileDialog

颜色选择对话框 ColorDialogs

版本一 QtQuick.Dialogs 从QT5.1开始

  • 最初是不可见的,需要设置属性visible设置为true或者是调用open()
  • 属性
    color : 用户选择的颜色
    currentColor : 用户当前选择的颜色
    modality : 对话框应相对于包含对话框的父项的窗口是模态显示,还是相对于整个应用程序模态显示,还是非模态显示
    showAlphaChannel : bool,对话框是否将提供更改不透明度的方法
    title : string,对话框窗口的标题
    visible : bool,保存对话框是否可见
  • 方法
    void close(),关闭对话框
    void open(),显示对话框
  • 实例
    在这里插入图片描述
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.2
import QtQuick.Dialogs 1.2 //需要导入此控件

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("test")
    color: colorDialog.color

        Button{
            text: qsTr("选择颜色")
            height: 48
            width: 120
            anchors.centerIn: parent
            MouseArea{  //鼠标事件
                anchors.fill: parent
                onClicked: {
                    colorDialog.open();
                }
            }
        }

        ColorDialog {
            id: colorDialog
            title: qsTr("选择颜色")
            color: "#AAAAAA"
        }
}

版本二 Qt.labs.platform 从QT5.8开始

  • 修改.pro文件
    QT += quick widgets
  • 在qml文件导入模块
    import Qt.labs.platform 1.0
  • qml的Window改为ApplicationWindow, 其它控件和版本一都一样
  • 如果没有,则手动安装Qt.labs.platform
    sudo apt-get install qml-module-qt-labs-platform

在这里插入图片描述

import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.2
import Qt.labs.platform 1.0

ApplicationWindow {
    visible: true
    width: 640
    height: 480
    title: qsTr("test")
    color: colorDialog.color

        Button{
            text: qsTr("选择颜色")
            height: 48
            width: 120
            anchors.centerIn: parent
            MouseArea{  //鼠标事件
                anchors.fill: parent
                onClicked: {
                    colorDialog.open();
                }
            }
        }

        ColorDialog {
            id: colorDialog
            title: qsTr("选择颜色")
            color: "#AAAAAA"
        }
}

字体选择对话框 FontDialog

  • 属性font保存最终接受的字体,而currentFont保存对话框中当前选择的字体

在这里插入图片描述

import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.2
import Qt.labs.platform 1.0

ApplicationWindow {
    visible: true
    width: 640
    height: 480
    title: qsTr("test")
    color: colorDialog.color

    Column{
            anchors.centerIn: parent
            spacing: 100
            Text{
                id: text
                font: fontDialog.font
                text: "Hello World"
            }

            Button{
                text: qsTr("选择字体")
                height: 48
                width: 120
                MouseArea{
                    anchors.fill: parent
                    onClicked: {
                        fontDialog.open();
                    }
                }
            }
        }

        FontDialog{
            id: fontDialog
            font.pixelSize: 25
            onAccepted: {
                console.debug(qsTr("选择的字体名称是: ") + fontDialog.currentFont.family)
                console.debug(qsTr("选择的字体大小是: ") + fontDialog.currentFont.pointSize)
            }
        }
}

文件对话框 FileDialog

  • 属性
    acceptLabel : string,保存显示在接受对话框的按钮上的标签文本
    currentFile : url,保存当前选择的文件
    currentFiles : list,保存当前选择的多个文件
    defaultSuffix : string,保留一个后缀,该后缀将添加到未指定后缀的选定文件中
    file : url,保存最终接受的文件
    fileMode : enumeration,保存对话框的模式 1)FileDialog.OpenFile 默认 选择现有文件 2)FileDialog.OpenFiles 选择多个现有文件 3)FileDialog.SaveFile 选择任何文件;此文件不必存在
    files : list,保存最终接受的文件们
    folder : url,保存选择文件的文件夹
    nameFilters : list,包含用于限制可以选择的文件类型的筛选器
    options : flags,包含影响对话框外观的各种选项
    rejectLabel : string,保存显示在拒绝对话框的按钮上的标签文本
    selectedNameFilter

在这里插入图片描述

import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.2
import Qt.labs.platform 1.0

ApplicationWindow {
    visible: true
    width: 640
    height: 480
    title: qsTr("test")
    color: colorDialog.color

    Button{
        text: qsTr("打开文件")
        height: 48
        width: 120
        anchors.centerIn: parent
        MouseArea{
            anchors.fill: parent
            onClicked: {
                fileDialog.open()
            }
        }
    }

    FileDialog {
        id: fileDialog
        fileMode: FileDialog.OpenFile
        nameFilters: ["图像文件 (*.png *.jpg *.gif *.bmp)", "全部文件 (*.*)"]
        options :FileDialog.ReadOnly
        onAccepted: {
            console.log(fileDialog.currentFile)
        }
    }
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
qml中的FileDialogQtQuick.Dialogs模块中的一个组件,用于在QML界面中显示文件对话框,以便用户选择文件或保存文件。要在qml中使用FileDialog,首先需要导入QtQuick.Dialogs模块,可以通过以下方式导入:import QtQuick.Dialogs 1.2。然后可以在qml文件中使用FileDialog组件,例如: ```qml import QtQuick.Dialogs 1.2 FileDialog { id: fileDialog title: "选择文件" folder: "/" nameFilters: ["文本文件 (*.txt)", "所有文件 (*)"] onAccepted: { // 用户点击了确定按钮,可以在这里处理选择的文件 } onRejected: { // 用户点击了取消按钮,可以在这里处理取消操作 } } ``` 在上述例子中,FileDialog的title属性设置对话框的标题,folder属性设置默认显示的文件夹,nameFilters属性设置文件过滤器,可以限制用户只能选择某些类型的文件。当用户点击确定按钮时,会触发onAccepted信号,可以在该信号的处理函数中获取选择的文件路径进行后续操作。当用户点击取消按钮时,会触发onRejected信号,可以在该信号的处理函数中进行取消操作。这样就可以在qml中使用FileDialog组件实现文件选择和保存的功能了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [QMLFileDialog](https://blog.csdn.net/qingyulove/article/details/79035586)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [qml使用FileDialog](https://blog.csdn.net/zs1123/article/details/114632886)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值