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

怎么做企业网站百度指数指的是什么

怎么做企业网站,百度指数指的是什么,qq网站临时会话,企业网站手机版模板免费下载在Qt应用程序开发中,经常会遇到需要自定义输入控件的需求。其中,对于QDoubleSpinBox控件,如果希望在点击时弹出一个自定义的软键盘,以便用户输入数值,并将输入的值设置给QDoubleSpinBox,该如何实现呢&#…

在Qt应用程序开发中,经常会遇到需要自定义输入控件的需求。其中,对于QDoubleSpinBox控件,如果希望在点击时弹出一个自定义的软键盘,以便用户输入数值,并将输入的值设置给QDoubleSpinBox,该如何实现呢?

在本文中,我们将介绍如何使用Qt框架,结合自定义的软键盘,实现一个可以在QDoubleSpinBox控件下方弹出的数字输入解决方案。我们将从头开始构建这个功能,并逐步引导您完成实现过程。

首先,我们将创建一个名为CustomDoubleSpinBox的自定义控件,它是QDoubleSpinBox的子类。我们将重写focusInEvent函数,该函数在QDoubleSpinBox获取焦点时被调用。在这个函数中,我们将创建并显示我们自己设计的软键盘CustomKeyboard,并确保它在QDoubleSpinBox的下方弹出。

接着,我们将继续创建CustomKeyboard类,它是一个继承自QWidget的自定义控件。在CustomKeyboard中,我们将实现一个数字键盘,允许用户输入数字,并在确认后返回输入的数值。

#ifndef CUSTOMKEYBOARD_H
#define CUSTOMKEYBOARD_H#include <QObject>
#include <QWidget>
#include <QDebug>
#include <QLabel>
#include <QGridLayout>
#include <QPushButton>
#include <QDebug>class CustomKeyboard : public QWidget
{Q_OBJECTpublic:explicit CustomKeyboard(QWidget *parent = nullptr);double getValue() const;signals:void confirmed(double);private:QString currentValue;QLabel *m_pCurrentLab;private slots:void on_digitButton_clicked();void on_decimalButton_clicked();void on_backspaceButton_clicked();void on_clearButton_clicked();void on_confirmButton_clicked();void on_closeButton_clicked();};#endif // CUSTOMKEYBOARD_H

#include "customkeyboard.h"CustomKeyboard::CustomKeyboard(QWidget *parent) : QWidget(parent)
{this->setWindowFlag(Qt::FramelessWindowHint);QVBoxLayout *layout = new QVBoxLayout;currentValue = "";m_pCurrentLab = new QLabel();QGridLayout *gridLayout = new QGridLayout;gridLayout->addWidget(m_pCurrentLab,0,0,1, 3);m_pCurrentLab->setStyleSheet("color:black");for (int i = 0; i <= 9; ++i){QPushButton *digitButton = new QPushButton(QString::number(i));connect(digitButton, &QPushButton::clicked, this, &CustomKeyboard::on_digitButton_clicked);if(i == 9){gridLayout->addWidget(digitButton, 4, 1);}elsegridLayout->addWidget(digitButton, i / 3 +1, i % 3+1);}QPushButton *decimalButton = new QPushButton(".");connect(decimalButton, &QPushButton::clicked, this, &CustomKeyboard::on_decimalButton_clicked);gridLayout->addWidget(decimalButton, 4, 2);QPushButton *backspaceButton = new QPushButton("Backspace");connect(backspaceButton, &QPushButton::clicked, this, &CustomKeyboard::on_backspaceButton_clicked);gridLayout->addWidget(backspaceButton, 5, 2);QPushButton *clearButton = new QPushButton("Clear");connect(clearButton, &QPushButton::clicked, this, &CustomKeyboard::on_clearButton_clicked);gridLayout->addWidget(clearButton,4, 3);QPushButton *confirmButton = new QPushButton("Confirm");connect(confirmButton, &QPushButton::clicked, this, &CustomKeyboard::on_confirmButton_clicked);gridLayout->addWidget(confirmButton, 5, 1, 1, 1);QPushButton *closeButton = new QPushButton("Close");connect(closeButton, &QPushButton::clicked, this, &CustomKeyboard::on_closeButton_clicked);gridLayout->addWidget(closeButton, 5, 3, 1, 1);layout->addLayout(gridLayout);setLayout(layout);this->setStyleSheet("QLabel{font: 22px;color:white;}\QPushButton{background-color:rgb(42, 49, 66);border: 1px solid rgb(206,206,206);border-radius: 5px;font:18px;Min-width:112px;Max-width:112px;Min-height:35px;color:white}\QPushButton:hover{background-color:rgb(210,210,210);}\QPushButton:pressed{background-color:rgb(160,160,160);}");}double CustomKeyboard::getValue() const{return currentValue.toDouble();}void CustomKeyboard::on_digitButton_clicked(){QPushButton *clickedButton = qobject_cast<QPushButton*>(sender());currentValue += clickedButton->text();m_pCurrentLab->setText(currentValue);}void CustomKeyboard::on_decimalButton_clicked(){if (!currentValue.contains('.')){currentValue += '.';}m_pCurrentLab->setText(currentValue);}void CustomKeyboard::on_backspaceButton_clicked(){currentValue.chop(1);m_pCurrentLab->setText(currentValue);}void CustomKeyboard::on_clearButton_clicked(){currentValue = "0";m_pCurrentLab->setText(currentValue);}void CustomKeyboard::on_confirmButton_clicked(){emit confirmed(getValue());}void CustomKeyboard::on_closeButton_clicked(){this->close();this->deleteLater();}

在完成这两个自定义控件的设计后,我们将把它们组合在一起,实现自定义的QDoubleSpinBox软键盘功能。当用户点击QDoubleSpinBox控件时,我们的自定义软键盘将弹出,并在用户输入数字后自动设置给QDoubleSpinBox,使整个输入流程更加便捷和友好。

// customdoublespinbox.h#ifndef CUSTOMDOUBLESPINBOX_H
#define CUSTOMDOUBLESPINBOX_H#include <QDoubleSpinBox>
#include "customkeyboard.h"class CustomDoubleSpinBox : public QDoubleSpinBox
{Q_OBJECTpublic:explicit CustomDoubleSpinBox(QWidget *parent = nullptr);protected:void focusInEvent(QFocusEvent *event) override;private:CustomKeyboard *keyboard;
};#endif // CUSTOMDOUBLESPINBOX_H
// customdoublespinbox.cpp#include "customdoublespinbox.h"
#include <QFocusEvent>
#include <QApplication>
#include <QDesktopWidget>CustomDoubleSpinBox::CustomDoubleSpinBox(QWidget *parent) : QDoubleSpinBox(parent)
{// 初始化成员变量keyboard = nullptr;
}void CustomDoubleSpinBox::focusInEvent(QFocusEvent *event)
{// 在QDoubleSpinBox获取焦点时弹出软键盘if (keyboard == nullptr){// 获取主屏幕的尺寸QRect primaryScreenRect = QApplication::primaryScreen()->geometry();// 创建一个 CustomKeyboard 实例keyboard = new CustomKeyboard(this);connect(keyboard, &CustomKeyboard::confirmed, [this]() {// 从 CustomKeyboard 获取输入的值并设置给 QDoubleSpinBoxdouble value = this->valueFromText(QString::number(keyboard->getValue()));this->setValue(value);keyboard->deleteLater(); // 关闭软键盘});// 将 CustomKeyboard 设置为 QDoubleSpinBox 的特殊键盘this->setSpecialValueText(" ");this->setKeyboardTracking(false);// 获取 QDoubleSpinBox 在主窗口中的位置QPoint spinBoxPos = this->mapToGlobal(QPoint(0, this->height()));// 设置 CustomKeyboard 在 QDoubleSpinBox 下方弹出keyboard->move(spinBoxPos.x(), spinBoxPos.y());keyboard->show();}QDoubleSpinBox::focusInEvent(event);
}

通过本文的介绍和示例代码,您将学会如何在Qt应用程序中实现自定义的QDoubleSpinBox软键盘功能。这将为您的应用程序带来更好的用户体验,并增加交互性。如果您对此功能感兴趣,可以参考本文提供的示例代码,并将其应用于您自己的项目中。

 

希望本文对您有所帮助,并且能够在Qt应用程序开发中为您带来更多灵活、个性化的控件定制体验。如果您有任何问题或建议,欢迎在评论区留言,我们将竭诚为您解答。谢谢阅读!

http://www.dinnco.com/news/61298.html

相关文章:

  • 机械行业网站建设制作开发方案百度6大核心部门
  • 集团公司网站源码php企业网站多少钱一年
  • 做网站的叫云啥怎样制作一个网页
  • 个人兴趣网站设计站长之家ppt素材
  • 分析杭州高端网站建设开发的区别培训机构网站设计
  • django 做网站赚钱seo营销排名
  • 印记室内设计网站旅行网站排名前十名
  • 怎么做网站挣钱刷seo关键词排名软件
  • 佛山微网站建设营销咨询公司排名前十
  • 公安机关互联网站备案网络营销推广工具
  • 静态网站代做惠州网站排名提升
  • 南京移动网站建设2022最新新闻
  • 网站锚点链接怎么做链接推广平台
  • 做调味品批发上哪个网站好重庆森林台词
  • io游戏网站惠州seo排名优化
  • 医学ppt模板免费下载网站免费发外链平台
  • 的网站建设公司seo服务外包客服
  • 深圳设计大厦qq排名优化网站
  • 网站内容建设流程培训网站模板
  • 企业网站模板中文seo排名优化公司哪家好
  • 站酷设计官方网站全国疫情高峰感染高峰进度查询
  • 做义工的网站济南网站推广
  • 个人网站的服务器环境安装网络营销成功的案例分析
  • 自己做的网站设定背景图像跨境电商网站
  • excel表如何做网站连接优化大师绿色版
  • 优化推广网站淄博媒体发稿公司
  • 赵公口网站建设北京网站设计扬州百度seo公司
  • 营销类网站建设免费网站建设seo
  • 用记事本做电影介绍的网站什么搜索引擎搜索最全
  • php动态网站开发实训目的100个经典创意营销方案