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

网站建设哪家好知道万维科技做网站商城必须要买空间吗

网站建设哪家好知道万维科技,做网站商城必须要买空间吗,哪家做网站最便宜,做彩票类网站用什么服务器在Qt应用程序开发中#xff0c;经常会遇到需要自定义输入控件的需求。其中#xff0c;对于QDoubleSpinBox控件#xff0c;如果希望在点击时弹出一个自定义的软键盘#xff0c;以便用户输入数值#xff0c;并将输入的值设置给QDoubleSpinBox#xff0c;该如何实现呢#…在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 QDebugclass 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.hCustomKeyboard::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 % 31);}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_castQPushButton*(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.hclass 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 QDesktopWidgetCustomDoubleSpinBox::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.dnsts.com.cn/news/202956.html

相关文章:

  • 个人网站logo公众号的维护与运营
  • 南京安居建设集团网站wordpress 博客同步
  • 医院网站做品牌推广需要哪些电子商务软文写作
  • 安徽省建设厅八大员报名网站网站设计平台 动易
  • 一般网站尺寸国外手机网站模板
  • wordpress模板站杭州江干区抖音seo品牌
  • 做it的网站有哪些购物网站制作实例
  • 做投票页面什么网站好网络培训的优点包括什么
  • 做网站要学c语言网站域名为个人的公司能备案
  • 织梦新手网站建设h5广告
  • 广东英德网站建设动漫制作技术专业入门
  • 手机网站营销的含义android auto
  • 部标平台软件网站开发网站备案太麻烦
  • 连云港网站建设贵州网站建设工作室
  • 丰南建设网站机械代工
  • 网站提交 入口买了域名怎么建网站
  • 免费行情网站网站设计网站设计公司价格
  • 旅游网站开发报价单微信贷款怎么申请开通
  • 做网站前端实战视频wordpress新增管理员
  • 做电影网站前途设计排版软件
  • 龙岩做网站哪家最好专业做网文的网站
  • 珠海网站上排名小程序直播助手
  • 部署个人网站厦门旅游必去十大景点
  • 北京网站设计公司排名推荐一个两学一做的网站
  • 室内设计网站 知乎域名三天更换一次
  • 做简单视频网站自己看如何给网站加cdn
  • 高仿酒网站怎么做东莞网站优化哪个公司好
  • 做徒步网站怎么样无法定位wordpress内容目录(wp-content).
  • 那些网站做民宿个人如何做跨境电商?
  • 一个网站可以做几级链接张家口网站开发