У меня проблема с вставкой виджета во вкладку в Tab Widget. Поскольку я пытаюсь создать простой веб-браузер с вкладками, я создал виджет с некоторыми кнопками и WebView, но когда я хочу добавить виджет на вкладку, которую я создал динамически (в показанном коде), он выдает две ошибки:
mainwindow.obj: -1: Ошибка: LNK2019: неразрешенный внешний символ «public: __cdecl Browsing :: Browsing (класс QWidget *)» (?? 0Browsing @@ QEAA @ PEAVQWidget @@@ Z)
ссылка на функцию «private: void __cdecl MainWindow :: on_tabWidget_tabBarDoubleClicked (int)» (? on_tabWidget_tabBarDoubleClicked @ MainWindow @@ AEAAXH @ Z ***)
а также
debug \ Pluto.exe: -1: ошибка: LNK1120: 1 неразрешенный внешний интерфейс.
#include "browsing.h"#include "ui_browsing.h"#include <QWidget>
#include <QtWebKitWidgets/QWebView>
Browsing::Browsing(QWidget *parent) :
QWidget(parent),
ui(new Ui::Browsing)
{
ui->webView->load(QString("http://google.com"));
ui->setupUi(this);
}
Browsing::~Browsing()
{
delete ui;
}
void Browsing::on_backButton_clicked()
{
ui->webView->back();
}
void Browsing::on_forwardButton_clicked()
{
ui->webView->forward();
}
void Browsing::on_reloadButton_clicked()
{
ui->webView->reload();
}void Browsing::on_searchLine_returnPressed()
{
ui->webView->load(QString("http://"+ui->searchLine->text()));
}
#include "mainwindow.h"#include "ui_mainwindow.h"#include "browsing.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_tabWidget_tabCloseRequested(int index)
{
ui->tabWidget->removeTab(index);
}
void MainWindow::on_tabWidget_tabBarDoubleClicked(int index)
{
//ui->tabWidget->insertTab(ui->tabWidget->count(),new Browsing(),QIcon(QString("")),"New tab"); -- also not working
ui->tabWidget->insertTab(ui->tabWidget->count(),new Browsing(new QWidget(ui->tabWidget)),"New Tab");
ui->tabWidget->setCurrentIndex(index + 1);
}
void MainWindow::on_addButton_clicked()
{
//ui->tabWidget->insertTab(ui->tabWidget->count(),new Browsing(),QIcon(QString("")),"New tab");
ui->tabWidget->setCurrentIndex(ui->tabWidget->count()-1);
}
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_tabWidget_tabCloseRequested(int index);
void on_tabWidget_tabBarDoubleClicked(int index);
void on_addButton_clicked();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
#ifndef BROWSING_H
#define BROWSING_H
#include <QWidget>
namespace Ui {
class Browsing;
}
class Browsing : public QWidget
{
Q_OBJECT
public:
explicit Browsing(QWidget *parent = 0);
~Browsing();
private slots:
void on_backButton_clicked();
void on_forwardButton_clicked();
void on_reloadButton_clicked();
void on_searchLine_returnPressed();
private:
Ui::Browsing *ui;
};
#endif // BROWSING_H
Задача ещё не решена.
Других решений пока нет …