obsidian/笔记文件/2.笔记/testWebViewer.md

109 lines
2.3 KiB
Markdown
Raw Permalink Normal View History

2025-03-26 00:02:56 +08:00
#qt
头文件
``` cpp
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
```
cpp文件
``` cpp
#include "windows.h"
#include "winuser.h"
#include "qwindow.h"
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
// QString cmd = "C:/Windows/system32/calc.exe";
// STARTUPINFO si = { sizeof(si) };
// PROCESS_INFORMATION pi;
// si.dwFlags = STARTF_USESHOWWINDOW;
// si.wShowWindow = true;
// bool bRet = CreateProcess(
// NULL,
// (LPWSTR)cmd.toStdWString().c_str(),
// NULL,
// NULL,
// FALSE,
// CREATE_NEW_CONSOLE,
// NULL,
// NULL, &si, &pi);
// Sleep(5000);
WId wid = (WId)FindWindow(L"Qt5152QWindowIcon", L"MainWindow");
QWindow *m_window = QWindow::fromWinId(wid);
m_window->setFlags(m_window->flags() | Qt::CustomizeWindowHint | Qt::WindowTitleHint); //
QWidget *m_widget;
m_widget = QWidget::createWindowContainer(m_window, this->ui->web_widget);
m_widget->setMinimumSize(700, 1080);
m_widget->update();
// WId wid = (WId)FindWindow(L"UnityWndClass", L"SYKitForUnity");
// qInfo()<<"wid:"<<wid;
// QWindow * window = QWindow::fromWinId(wid);
// if (window)
// {
// qInfo()<<"right4:"<<ui->web_widget;
// window->setFlags(window->flags() | Qt::CustomizeWindowHint | Qt::WindowTitleHint); //这边可以设置一下属性
// QWidget * widget = QWidget::createWindowContainer(window, this);
// QVBoxLayout *layout = new QVBoxLayout(ui->web_widget);
// layout->addWidget(widget);
// widget->show();
// layout->update();
// }
// else
// {
// qInfo()<<"wrong";
// }
// ui->web_widget->load(QUrl("http://pan.isscuss.xyz"));
// ui->web_widget->load(QUrl("http://baidu.com"));
// ui->web_widget->show();
}
MainWindow::~MainWindow()
{
delete ui;
}
```