被HTML优雅界面吸引,初次学习QT+html混合编程开发,参考了https://blog.csdn.net/Best_ZYJ/article/details/79027245。以下是简单的登陆界面开发步骤,附源码。
QT:
工程文件.pro添加:
Webenginewidgets (web显示类,用于显示web界面)
Webchannel(web数据通道类,用于数据通信)
QT += core gui webenginewidgets webchannel
创建通道对象类(qt与web通信是通过对象的方式交换数据)
创建类TinteractObj:
class TInteractObj : public QObject
{
Q_OBJECT
public:
TInteractObj(QObject *parent);
~TInteractObj();
//页面端调用QT公共接口,必须有Q_INVOKABLE
//页面端调用QT变量,用Q_PROPERTY,用法与QML相同
Q_INVOKABLE void JSSendMessage(QString strParameter,QString str);
Q_PROPERTY(QString username READ username WRITE setusername NOTIFY sig_nameChanged)
Q_PROPERTY(QString password READ password WRITE setpassword NOTIFY sig_passwdChanged)
QString m_username; //本地保存的数据对象
QString m_password;
QString username(){
return m_username;
}
QString password(){
return m_password;
}
void setusername(QString str){
m_username = str;
}
void setpassword(QString str){
m_password = str;
}
signals:
void sig_nameChanged();
void sig_passwdChanged();
void SigReceivedMessFromJS(QString strParameter,QString str); //网页调用函数给qt发送该信号
void SigSendMessageToJS(QString strParameter); //给网页发送数据的信号
};
3、在主类中添加私有对象:</