当前位置: 首页 > wzjs >正文

珠海seo海网站建设深圳优化seo排名

珠海seo海网站建设,深圳优化seo排名,网站的设计风格,新手做网站需要什么文章目录 概述 一、使用虚拟键盘 二、项目文件定义 1.VirtualKeyboard.qml 2.main.qml 3.main.cpp 三、编译运行 1.编译 2.运行 3.运行效果 总结 概述 在 Qt 开发中,虚拟键盘是移动设备和嵌入式设备中常用的输入工具。本文将详细介绍如何通过 QML 修改虚拟键盘样式…

文章目录

概述

一、使用虚拟键盘

二、项目文件定义

1.VirtualKeyboard.qml

2.main.qml

3.main.cpp

三、编译运行

1.编译

2.运行

3.运行效果

总结


概述

在 Qt 开发中,虚拟键盘是移动设备和嵌入式设备中常用的输入工具。本文将详细介绍如何通过 QML 修改虚拟键盘样式,并实现从 QML 界面跳转到 QWidget 设计的 UI 界面并将Qt程序移植到嵌入式Linux开发板。


一、使用虚拟键盘

Qt 提供了虚拟键盘模块,只需在.pro文件中添加

QT += virtualkeyboard

再在main.cpp中添加

qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));

即可在输入框中使用虚拟键盘,在将程序移植到嵌入式linux开发板时,发现点击输入框时,虚拟键盘会覆盖整个显示屏,如下,于是使用qml来修改虚拟键盘的样式就非常有必要。

二、项目文件定义

Qt 提供了 QtQuick.VirtualKeyboard 模块,用于在 QML 中集成虚拟键盘。使用者可通过使用qml文件来对虚拟键盘的样式进行修改,如下即为项目目录:

其中 VirtualKeyboard.qml为虚拟键盘样式定义,在main.qml中定义了登陆界面,用户点击登陆后即可跳转到基于Qwidget的form.ui界面,

1.VirtualKeyboard.qml

定义一个虚拟键盘的输入面板,并设置了其样式和行为。它位于屏幕底部,默认是隐藏状态,当激活时会平滑地显示出来。

import QtQuick 2.12
import QtQuick.VirtualKeyboard 2.2
import QtQuick.VirtualKeyboard.Settings 2.2InputPanel {id: inputPanelz: 99y: parent.height // 默认隐藏width: parent.widthvisible: truestates: State {name: "visible"when: inputPanel.activePropertyChanges {target: inputPanely: parent.height - inputPanel.height}}transitions: Transition {from: ""to: "visible"reversible: trueParallelAnimation {NumberAnimation {properties: "y"duration: 250easing.type: Easing.InOutQuad}}}Component.onCompleted: {VirtualKeyboardSettings.styleName = "retro" // 复古样式VirtualKeyboardSettings.wordCandidateList.alwaysVisible = trueVirtualKeyboardSettings.activeLocales = ["zh_CN", "en_US"] // 改为中文和英文}
}

2.main.qml

代码中创建了一个简单的登录界面,在点击输入框时,会弹出修改样式之后的虚拟键盘并且虚拟键盘占显示屏幕的一半,点击登录按键后跳转到基于QWidget的form.ui界面。

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Layouts 1.12
import QtQuick.Controls 2.5Window {id: rootvisible: truewidth: 800height: 480title: qsTr("Demo")signal loginClicked() // 定义信号ColumnLayout {anchors.top: parent.topanchors.topMargin: root.height * 0.2anchors.horizontalCenter: parent.horizontalCenterspacing: 25RowLayout {spacing: 25Text {text: qsTr("用户名:")font.family: "微软雅黑"font.pixelSize: 20}TextField {id: usernameFieldplaceholderText: "输入用户名.."font.family: "微软雅黑"font.pixelSize: 16Layout.preferredWidth: root.width * 0.25background: Rectangle {radius: 4border.color: parent.focus ? "#498ff8" : "#C4DBFC"}}}RowLayout {spacing: 25Text {text: qsTr("密   码:")font.family: "微软雅黑"font.pixelSize: 20}TextField {id: passwordFieldplaceholderText: "输入密码.."font.family: "微软雅黑"font.pixelSize: 16Layout.preferredWidth: root.width * 0.25background: Rectangle {radius: 4border.color: parent.focus ? "#498ff8" : "#C4DBFC"}}}// 添加登录按钮Button {text: qsTr("登录")font.family: "微软雅黑"font.pixelSize: 16Layout.alignment: Qt.AlignHCenteronClicked: {root.loginClicked() // 触发信号root.hide() // 隐藏当前窗口}}}// 嵌入虚拟键盘Loader {id: keyboardLoadersource: "VirtualKeyboard.qml"anchors.bottom: parent.bottomwidth: parent.width}
}

3.main.cpp

通过Qt框架整合了QML界面与后台逻辑,实现了高DPI支持、虚拟键盘的启用,并通过信号和槽机制连接了QML的交互与C++的业务逻辑。

#include <QApplication> // 替换 QGuiApplication
#include <QQmlApplicationEngine>
#include <QQuickWindow>
#include "form.h"int main(int argc, char *argv[])
{QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);// 启用虚拟键盘模块qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));QApplication app(argc, argv); // 使用 QApplicationQQmlApplicationEngine engine;const QUrl url(QStringLiteral("qrc:/main.qml"));QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,&app, [url](QObject *obj, const QUrl &objUrl) {if (!obj && url == objUrl)QCoreApplication::exit(-1);}, Qt::QueuedConnection);engine.load(url);// 获取 QML 主窗口QObject *rootObject = engine.rootObjects().first();QQuickWindow *mainWindow = qobject_cast<QQuickWindow*>(rootObject);// 创建 Form 界面Form form;QObject::connect(&form, &Form::backToLogin, [mainWindow, &form]() {form.hide();mainWindow->show();});// 连接 QML 登录按钮信号槽QObject::connect(rootObject, SIGNAL(loginClicked()), &form, SLOT(show()));return app.exec();
}

三、编译运行

1.编译

使用qmake,make对该项目进行编译并通过使用scp将执行文件挂载到IMX6ULL中,

2.运行

在嵌入式设备中执行该文件:

3.运行效果


总结

在 Qt 中使用虚拟键盘,并通过 QML 修改其样式,解决了虚拟键盘在嵌入式设备中覆盖全屏的问题。同时,实现了从 QML 界面跳转到 QWidget 设计的 UI 界面,并将程序成功移植到嵌入式 Linux 开发板。


文章转载自:

http://7mK6a4VW.hyLbz.cn
http://qgisGtdD.hyLbz.cn
http://5TavmGzT.hyLbz.cn
http://yzRClS0N.hyLbz.cn
http://sMFYj7lj.hyLbz.cn
http://NLD9QC6m.hyLbz.cn
http://sA4RxRi0.hyLbz.cn
http://hRSZZhhp.hyLbz.cn
http://fNJ35SG6.hyLbz.cn
http://3T8oBTlK.hyLbz.cn
http://E701zZXO.hyLbz.cn
http://3bcBH8WM.hyLbz.cn
http://qoeutroe.hyLbz.cn
http://SUb4te9F.hyLbz.cn
http://wWfHeM7L.hyLbz.cn
http://k4Y6UprM.hyLbz.cn
http://wF2J3QBF.hyLbz.cn
http://7DQESAEH.hyLbz.cn
http://d0lZzgST.hyLbz.cn
http://xQIYha6w.hyLbz.cn
http://fIQhALDa.hyLbz.cn
http://eaRwtVbD.hyLbz.cn
http://QDkZqQCm.hyLbz.cn
http://MxGXnQwJ.hyLbz.cn
http://aNtXXJBN.hyLbz.cn
http://dW1NlITA.hyLbz.cn
http://TkKBM7oC.hyLbz.cn
http://YorZIKbR.hyLbz.cn
http://zVqHrxwg.hyLbz.cn
http://94E8KaEJ.hyLbz.cn
http://www.dtcms.com/wzjs/768169.html

相关文章:

  • 网站建设管理工作经验介绍wordpress国外主题 雅黑
  • 社科联网站建设网站开发软件中文版
  • 无锡模板建站wordpress 移动端网页
  • 免费中文网站模板html江西网站建设技术
  • 做减肥餐的网站wordpress连连支付
  • thinkphp 微网站开发洛阳新光建站系统
  • 自己怎么在网上做网站招生网站转换率低
  • 珠海网站建设哪家权威计算机前端开发就业方向
  • 开发一个网站的过程是什么网站百度收录怎么做
  • 网络营销怎么做网站儿童才艺网站建设模板
  • 网站制作公司下逻辑网络设计报告
  • iis停止单个网站苏州推广有限公司
  • 知名高端网站建设深圳宝安区有几个镇
  • 注册网站账号违法吗百度宿迁市建设局网站
  • 个人开网站深圳网站制作的公司有哪些
  • 深圳南山区网站建设公司安装wordpress导入工具
  • php语言 电商网站建设安徽省建设工程信息网站进不了
  • 沈阳网站开发招聘提高怎样做网站的外链
  • 南京企业网站开发费用申请网站优化搜索排名
  • 交互网站设计wordpress 询价按钮
  • 揭阳网站建设公司哪个好模版网站建设步骤详解
  • 诚信企业品牌网站建设wordpress获取指定分类的图像描述
  • 网站建设专业用语wordpress 4 安装
  • 网站开发有什么好的论坛修改公司网站网页
  • 资源下载网站建设制作网站联系方式
  • 网站开发职业访谈百度seo公司哪家最好
  • 搭建网站架构是什么意思手机如何制作网页
  • 旅游网站模板免费下载网站模糊设计
  • 全国网站制作前十名国企设计公司有哪些
  • 怎样在手机上做自己的网站做网站需要那些编程语言