日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

html写界面,C++|Qt后台处理业务(后台登录例子JavaScript给Qt提供数据)

發(fā)布時間:2025/3/15 c/c++ 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html写界面,C++|Qt后台处理业务(后台登录例子JavaScript给Qt提供数据) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

?

?

背景

演示及源碼


?

背景

因為前些日子,去了XX培訓(xùn),看到某公司寫的軟件,簡直驚艷無比,如果使用Qt傳統(tǒng)的widgets來寫,辣么,將會是無比的復(fù)雜。

如果使用qml去寫,難道稍微降低了一點點,但還是比較難。

但是,如果用html寫,那尼瑪就簡單很多了(因為和很多三方的js,提供了很有意思的功能)。

下面來演示Html使用JavaScript和Qt進(jìn)行數(shù)據(jù)交互的例子;

JavaScript給Qt提供數(shù)據(jù)!

這里使用的QWebView!

為什么不用QWebEngineView去搞呢。因為實在不想再安VS2013,VS2015了,感覺都差不多,以后換新電腦在用QWebEngine把!

?

演示及源碼

程序運行截圖如下:

輸入用戶名和密碼后

程序結(jié)構(gòu)如下:

源碼如下:

webInputDemo.pro

QT += core gui script webkitwidgetsgreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = WebInputDemo TEMPLATE = appSOURCES += main.cpp\widget.cppHEADERS += widget.hFORMS += widget.uiRESOURCES += \resources.qrc

widget.h

#ifndef WIDGET_H #define WIDGET_H#include <QWidget>namespace Ui { class Widget; }class Widget : public QWidget {Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();protected slots:void addObjectToJs();void clickSubmit(const QString userName, const QString password);private:Ui::Widget *ui; };#endif // WIDGET_H

main.cpp

#include "widget.h" #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); }

widget.cpp

#include "widget.h" #include "ui_widget.h" #include <QUrl> #include <QFileInfo> #include <QDebug> #include <QWebPage> #include <QMessageBox> #include <QWebFrame>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);QFileInfo file;file.setFile(qApp->applicationDirPath() + "/res/login.html");this->setWindowTitle("CSDN IT1995");ui->webView->load(QUrl::fromLocalFile(file.absoluteFilePath()));this->setFixedSize(1024, 768);connect(ui->webView->page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()),this, SLOT(addObjectToJs())); }Widget::~Widget() {delete ui; }void Widget::addObjectToJs() {ui->webView->page()->mainFrame()->addToJavaScriptWindowObject("Widget", this); }void Widget::clickSubmit(const QString userName, const QString password) {QMessageBox::information(this, QString::fromLocal8Bit("前端登錄數(shù)據(jù)"),QString::fromLocal8Bit("用戶名:") + userName +QString::fromLocal8Bit("\n密碼:") + password); }

widget.ui

login.html

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>登錄</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/semantic-ui/2.2.4/semantic.min.css"><style type="text/css">body {background-image: url("bg.jpg");}div {filter:alpha(Opacity=90);-moz-opacity:0.9;opacity: 0.9;}</style><script type = "text/javascript">function submitClicked(){//alert("submit");//alert(userName.value + " " + password.value);Widget.clickSubmit(userName.value, password.value);}</script></head><body bgcolor="black"><table width="100%" height="100%" border="1"><tr><td align="center" valign="top"><table width="980px" height="100%" border="0"><tr><td><div class="ui three column stackable grid login-div Absolute-Center"><div class="column"></div><div class="column"><form id="login" class="ui fluid form segment" onsubmit="return submitClicked()" ><div class="field"><label class="">用戶名</label><div class="ui left icon input"><input type="text" name="userName" id="userName" placeholder=""><i class="user icon"></i></div></div><div class="field"><label class="">密碼</label><div class="ui left icon input"><input type="password" name="password" id="password" placeholder=""><i class="lock icon"></i></div></div><div><button class="ui blue button" style="width: 100%">登錄</button></div></td></tr></table></td></tr> </table> </body></html>

?

總結(jié)

以上是生活随笔為你收集整理的html写界面,C++|Qt后台处理业务(后台登录例子JavaScript给Qt提供数据)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。