C++ Qt自建网页浏览器
如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助!
前言
这篇博客针对<<C++ Qt自建网页浏览器>>编写代码,代码整洁,规则,易读。 学习与应用推荐首选。
文章目录
一、所需工具软件
二、使用步骤
1. 引入库
2. 窗体界面
3. 运行结果
三、在线协助
一、所需工具软件
1. VS, Qt
2. Win10, Win11
二、使用步骤
1.引入库
代码如下(示例):
#include "QUrl"
#include <iostream>
#include<string>
#include<QKeyEvent>
#include<QFontDatabase>
#include<QWebEngineSettings>
#include<QWebEngineCookieStore>
2.窗体界面
代码如下(示例):
QT_BEGIN_NAMESPACE
class Ui_MainWindowClass
{
public:
QAction *actionaa;
QWidget *centralWidget;
QGridLayout *gridLayout_3;
QFrame *frame_2;
QGridLayout *gridLayout_2;
QComboBox *comboBox;
QHBoxLayout *horizontalLayout;
QPushButton *pushButton_4;
QPushButton *pushButton_3;
QPushButton *pushButton_2;
QLineEdit *lineEdit;
QPushButton *pushButton;
QPushButton *pushButton_5;
QPushButton *pushButton_6;
QSpacerItem *horizontalSpacer;
QSpacerItem *horizontalSpacer_2;
QLabel *label;
QFrame *frame;
QGridLayout *gridLayout;
QWebEngineView *webEngineView;
QMenuBar *menuBar;
QToolBar *mainToolBar;
QStatusBar *statusBar;
void setupUi(QMainWindow *MainWindowClass)
{
if (MainWindowClass->objectName().isEmpty())
MainWindowClass->setObjectName(QString::fromUtf8("MainWindowClass"));
MainWindowClass->resize(716, 400);
actionaa = new QAction(MainWindowClass);
actionaa->setObjectName(QString::fromUtf8("actionaa"));
QIcon icon;
QString iconThemeName = QString::fromUtf8("dfds");
if (QIcon::hasThemeIcon(iconThemeName)) {
icon = QIcon::fromTheme(iconThemeName);
} else {
icon.addFile(QString::fromUtf8(":/MainWindow/png/\346\211\223\345\274\200\346\226\207\344\273\266\345\244\271-\347\272\242\350\211\262.png"), QSize(), QIcon::Normal, QIcon::Off);
}
actionaa->setIcon(icon);
centralWidget = new QWidget(MainWindowClass);
centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
gridLayout_3 = new QGridLayout(centralWidget);
gridLayout_3->setSpacing(6);
gridLayout_3->setContentsMargins(11, 11, 11, 11);
gridLayout_3->setObjectName(QString::fromUtf8("gridLayout_3"));
frame_2 = new QFrame(centralWidget);
frame_2->setObjectName(QString::fromUtf8("frame_2"));
QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
sizePolicy.setHorizontalStretch(1);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(frame_2->sizePolicy().hasHeightForWidth());
frame_2->setSizePolicy(sizePolicy);
QFont font;
font.setFamily(QString::fromUtf8("3ds"));
font.setPointSize(16);
frame_2->setFont(font);
frame_2->setFrameShape(QFrame::Box);
frame_2->setFrameShadow(QFrame::Raised);
gridLayout_2 = new QGridLayout(frame_2);
gridLayout_2->setSpacing(6);
gridLayout_2->setContentsMargins(11, 11, 11, 11);
gridLayout_2->setObjectName(QString::fromUtf8("gridLayout_2"));
comboBox = new QComboBox(frame_2);
comboBox->addItem(QString());
comboBox->addItem(QString());
comboBox->addItem(QString());
comboBox->setObjectName(QString::fromUtf8("comboBox"));
QFont font1;
font1.setFamily(QString::fromUtf8("\345\276\256\350\275\257\351\233\205\351\273\221"));
font1.setPointSize(12);
comboBox->setFont(font1);
gridLayout_2->addWidget(comboBox, 0, 2, 1, 1);
horizontalLayout = new QHBoxLayout();
horizontalLayout->setSpacing(6);
horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
pushButton_4 = new QPushButton(frame_2);
pushButton_4->setObjectName(QString::fromUtf8("pushButton_4"));
horizontalLayout->addWidget(pushButton_4);
pushButton_3 = new QPushButton(frame_2);
pushButton_3->setObjectName(QString::fromUtf8("pushButton_3"));
horizontalLayout->addWidget(pushButton_3);
pushButton_2 = new QPushButton(frame_2);
pushButton_2->setObjectName(QString::fromUtf8("pushButton_2"));
horizontalLayout->addWidget(pushButton_2);
lineEdit = new QLineEdit(frame_2);
lineEdit->setObjectName(QString::fromUtf8("lineEdit"));
QFont font2;
font2.setFamily(QString::fromUtf8("\345\276\256\350\275\257\351\233\205\351\273\221"));
lineEdit->setFont(font2);
horizontalLayout->addWidget(lineEdit);
pushButton = new QPushButton(frame_2);
pushButton->setObjectName(QString::fromUtf8("pushButton"));
QFont font3;
font3.setFamily(QString::fromUtf8("\345\276\256\350\275\257\351\233\205\351\273\221"));
font3.setPointSize(16);
pushButton->setFont(font3);
horizontalLayout->addWidget(pushButton);
pushButton_5 = new QPushButton(frame_2);
pushButton_5->setObjectName(QString::fromUtf8("pushButton_5"));
pushButton_5->setFont(font2);
horizontalLayout->addWidget(pushButton_5);
pushButton_6 = new QPushButton(frame_2);
pushButton_6->setObjectName(QString::fromUtf8("pushButton_6"));
pushButton_6->setFont(font2);
horizontalLayout->addWidget(pushButton_6);
horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
horizontalLayout->addItem(horizontalSpacer);
gridLayout_2->addLayout(horizontalLayout, 0, 0, 1, 1);
horizontalSpacer_2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
gridLayout_2->addItem(horizontalSpacer_2, 0, 1, 1, 1);
label = new QLabel(frame_2);
label->setObjectName(QString::fromUtf8("label"));
label->setFont(font2);
gridLayout_2->addWidget(label, 0, 3, 1, 1);
gridLayout_3->addWidget(frame_2, 0, 0, 1, 1);
frame = new QFrame(centralWidget);
frame->setObjectName(QString::fromUtf8("frame"));
QSizePolicy sizePolicy1(QSizePolicy::Preferred, QSizePolicy::Preferred);
sizePolicy1.setHorizontalStretch(0);
sizePolicy1.setVerticalStretch(6);
sizePolicy1.setHeightForWidth(frame->sizePolicy().hasHeightForWidth());
frame->setSizePolicy(sizePolicy1);
frame->setFrameShape(QFrame::Box);
frame->setFrameShadow(QFrame::Raised);
gridLayout = new QGridLayout(frame);
gridLayout->setSpacing(5);
gridLayout->setContentsMargins(11, 11, 11, 11);
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
gridLayout->setContentsMargins(0, 0, 0, 0);
webEngineView = new QWebEngineView(frame);
webEngineView->setObjectName(QString::fromUtf8("webEngineView"));
webEngineView->setUrl(QUrl(QString::fromUtf8("about:blank")));
gridLayout->addWidget(webEngineView, 0, 0, 1, 1);
gridLayout_3->addWidget(frame, 1, 0, 1, 1);
mainToolBar->addAction(actionaa);
mainToolBar->addSeparator();
retranslateUi(MainWindowClass);
QMetaObject::connectSlotsByName(MainWindowClass);
} // setupUi
void retranslateUi(QMainWindow *MainWindowClass)
{
MainWindowClass->setWindowTitle(QCoreApplication::translate("MainWindowClass", "MainWindow", nullptr));
actionaa->setText(QCoreApplication::translate("MainWindowClass", "aa", nullptr));
#if QT_CONFIG(shortcut)
actionaa->setShortcut(QCoreApplication::translate("MainWindowClass", "Ctrl+O", nullptr));
#endif // QT_CONFIG(shortcut)
comboBox->setItemText(0, QString());
comboBox->setItemText(1, QCoreApplication::translate("MainWindowClass", "www.baidu.com", nullptr));
comboBox->setItemText(2, QCoreApplication::translate("MainWindowClass", "www.csdn.net", nullptr));
};
namespace Ui {
class MainWindowClass: public Ui_MainWindowClass {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_MAINWINDOW_H
3.运行结果如下
三、在线协助:
如需安装运行环境或远程调试,见文章底部个人 QQ 名片,由专业技术人员远程协助!
1)远程安装运行环境,代码调试
2)Qt, C++, Python入门指导
3)界面美化
4)软件制作
博主推荐文章:https://blog.csdn.net/alicema1111/article/details/123851014