C++ Visual studio可以';t导入Qt库
我所做的是:我通过C++ Visual studio可以';t导入Qt库,c++,visual-studio,qt,C++,Visual Studio,Qt,我所做的是:我通过uic工具将Qt设计器中的XML文件转换为头文件,并尝试在VS2019和VS2017中打开并运行该文件 问题是: VS2019/2017给了我错误(E0020、E1696,其他人可能也有),我认为VS无法导入Qt库,即使我安装了 “Qt Visual Studio工具”,我现在不知道如何修复它 错误如下所示: E1696:无法打开文件“source”:“QtWidgets/QFrame”(以及其他QtWidget、QtCore和QtGui库) E0020:未定义标识符“QTp
uic
工具将Qt设计器中的XML文件转换为头文件,并尝试在VS2019和VS2017中打开并运行该文件
问题是:
- E1696:无法打开文件“source”:“QtWidgets/QFrame”(以及其他QtWidget、QtCore和QtGui库)
- E0020:未定义标识符“QTputton”(以及“QtLabel”、“QtScrollbar”等其他小部件)
- 第二个问题是:当第一个问题被修复时,如何运行从该头文件创建窗口的代码?在Qt设计器中,我只需按下“run”按钮,它就可以运行
功能。它是否与创建的头文件和Qt Designer中的main
的工作方式相同main
uic
创建):
mainwindow.h:
#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 slots:
void on_upButton_clicked();
void on_rightButton_clicked();
void on_downButton_clicked();
void on_leftButton_clicked();
void on_waitButton_clicked();
void on_deleteButton_clicked();
void on_selectColonyButton_clicked();
void on_startButton_clicked();
void on_abortButton_clicked();
void on_singleStepButton_clicked();
void on_autoButton_clicked();
void on_pauseButton_clicked();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
\ifndef主窗口
#定义主窗口
#包括
QT_开始名称空间
命名空间Ui{class MainWindow;}
QT_END_名称空间
类主窗口:公共QMainWindow
{
Q_对象
公众:
主窗口(QWidget*parent=nullptr);
~main窗口();
专用插槽:
单击按钮时无效();
在右按钮上无效单击();
单击按钮时无效();
单击左按钮时无效();
单击按钮时无效();
单击按钮时无效();
单击鼠标左键时无效();
单击开始按钮时无效();
单击“中止”按钮时无效();
单击单步按钮时无效();
单击自动按钮时无效();
单击按钮时无效();
私人:
Ui::MainWindow*Ui;
};
#endif//main窗口
如果需要进一步的信息,我很乐意提供帮助。我每天都使用Visual Studio 2019和Qt,这样我就可以告诉您它是有效的。尽管如此,我不确定我们是否能够在不看到至少一些错误的情况下提供帮助。@drescherjm嗯,我确信它应该有效,但不幸的是,对我来说不行。我应该重新安装吗?@drescherjm我可以添加一些翻译错误代码,但我不能复制它们,因为它们是用我的母语编写的。你告诉VS Qt库和头文件在哪里了吗?@ChrisMM-Uhm,这可能是问题所在。我安装了“QtVisualStudioTools”,但我必须告诉VS它们在哪里吗?我想,如果通过VS扩展安装它,VS应该已经知道它们在哪里了。我每天都使用VisualStudio2019和Qt,所以我可以告诉你它可以工作。尽管如此,我不确定我们是否能够在不看到至少一些错误的情况下提供帮助。@drescherjm嗯,我确信它应该有效,但不幸的是,对我来说不行。我应该重新安装吗?@drescherjm我可以添加一些翻译错误代码,但我不能复制它们,因为它们是用我的母语编写的。你告诉VS Qt库和头文件在哪里了吗?@ChrisMM-Uhm,这可能是问题所在。我安装了“QtVisualStudioTools”,但我必须告诉VS它们在哪里吗?我想,如果通过VS扩展安装它,VS应该已经知道它们在哪里了
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QMessageBox"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_upButton_clicked()
{
QMessageBox::information(this, "button", "up");
}
void MainWindow::on_rightButton_clicked()
{
QMessageBox::information(this, "button", "right");
}
void MainWindow::on_downButton_clicked()
{
QMessageBox::information(this, "button", "down");
}
void MainWindow::on_leftButton_clicked()
{
QMessageBox::information(this, "button", "left");
}
void MainWindow::on_waitButton_clicked()
{
QMessageBox::information(this, "button", "wait");
}
void MainWindow::on_deleteButton_clicked()
{
QMessageBox::information(this, "button", "delete");
}
void MainWindow::on_selectColonyButton_clicked()
{
QMessageBox::information(this, "button", ui->selectColonyButton->text());
}
void MainWindow::on_startButton_clicked()
{
QMessageBox::information(this, "button", ui->startButton->text());
}
void MainWindow::on_abortButton_clicked()
{
QMessageBox::information(this, "button", ui->abortButton->text());
}
void MainWindow::on_singleStepButton_clicked()
{
QMessageBox::information(this, "button", ui->singleStepButton->text());
}
void MainWindow::on_autoButton_clicked()
{
QMessageBox::information(this, "button", ui->autoButton->text());
}
void MainWindow::on_pauseButton_clicked()
{
QMessageBox::information(this, "button", ui->pauseButton->text());
}
#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 slots:
void on_upButton_clicked();
void on_rightButton_clicked();
void on_downButton_clicked();
void on_leftButton_clicked();
void on_waitButton_clicked();
void on_deleteButton_clicked();
void on_selectColonyButton_clicked();
void on_startButton_clicked();
void on_abortButton_clicked();
void on_singleStepButton_clicked();
void on_autoButton_clicked();
void on_pauseButton_clicked();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H