1

To what I've done: I converted a XML file from Qt Designer via the uic tool to a header file and tried to open and run that in VS2019 and VS2017.

The problem:

  1. VS2019/2017 gives me errors (E0020, E1696, maybe so others too) and I think VS can't import the Qt libraries, even though I installed "Qt Visual Studio Tools" and I don't know how to fix that now.

The errors look something like this:

  • E1696: the file "source" can't be opened: "QtWidgets/QFrame" (and other QtWidget, QtCore, and QtGui libraries)

  • E0020: the identifier "QtPushButton" is not defined (and other widgets like "QtLabel", "QtScrollbar", etc)

    1. The second question would be: When the first one is fixed, how do I run the code, that creates the window from that header file? In Qt Designer I only had to press the "run" button and it ran the main function. Does it work the same way with the created header file and the main from Qt Designer?

header file (created via uic):

/*******************************************************************************
** Created by: Qt User Interface Compiler version 5.13.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/

#ifndef PATCHBOT_GUI_H
#define PATCHBOT_GUI_H

#include <QtCore/QVariant>
#include <QtGui/QIcon>
#include <QtWidgets/QApplication>
#include <QtWidgets/QComboBox>
#include <QtWidgets/QFrame>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QScrollBar>
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QTextEdit>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>

QT_BEGIN_NAMESPACE

class Ui_MainWindow
{
public:
    QWidget *centralwidget;
    QGridLayout *gridLayout;
    QFrame *selectColonyFrame;
    QPushButton *selectColonyButton;
    QFrame *currentColonyFrame;
    QLabel *currentColonyLabel;
    QFrame *missionControlsFrame;
    QVBoxLayout *verticalLayout;
    QLabel *misisonControlsLabel;
    QGridLayout *missionControlsGridLayout;
    QPushButton *startButton;
    QPushButton *abortButton;
    QPushButton *singleStepButton;
    QPushButton *autoButton;
    QPushButton *pauseButton;
    QFrame *botControlsFrame;
    QGridLayout *gridLayout_2;
    QGridLayout *botControlsGridLayout;
    QPushButton *downButton;
    QPushButton *upButton;
    QPushButton *waitButton;
    QPushButton *leftButton;
    QPushButton *deleteButton;
    QPushButton *rightButton;
    QLabel *botControlsLabel;
    QComboBox *repeatDropdown;
    QFrame *frame_6;
    QFrame *botCommandFrame;
    QTextEdit *botCommandTextEdit;
    QFrame *mapFrame;
    QGridLayout *gridLayout_6;
    QLabel *label;
    QScrollBar *verticalScrollBar;
    QScrollBar *horizontalScrollBar;
    QMenuBar *menubar;
    QStatusBar *statusbar;

    void setupUi(QMainWindow *MainWindow)
    {
        if (MainWindow->objectName().isEmpty())
            MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
        MainWindow->resize(819, 634);
        MainWindow->setMinimumSize(QSize(580, 400));
        centralwidget = new QWidget(MainWindow);
        centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
        gridLayout = new QGridLayout(centralwidget);
        gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
        gridLayout->setVerticalSpacing(6);
        gridLayout->setContentsMargins(-1, 0, -1, 0);
        selectColonyFrame = new QFrame(centralwidget);
        selectColonyFrame->setObjectName(QString::fromUtf8("selectColonyFrame"));
        selectColonyFrame->setMinimumSize(QSize(150, 40));
        selectColonyFrame->setLayoutDirection(Qt::RightToLeft);
        selectColonyFrame->setFrameShape(QFrame::StyledPanel);
        selectColonyFrame->setFrameShadow(QFrame::Raised);
        selectColonyButton = new QPushButton(selectColonyFrame);
        selectColonyButton->setObjectName(QString::fromUtf8("selectColonyButton"));
        selectColonyButton->setGeometry(QRect(80, 0, 150, 40));
        selectColonyButton->setMinimumSize(QSize(150, 40));
        selectColonyButton->setMaximumSize(QSize(150, 50));
        QFont font;
        font.setPointSize(11);
        font.setBold(true);
        font.setWeight(75);
        selectColonyButton->setFont(font);

        gridLayout->addWidget(selectColonyFrame, 0, 1, 1, 1);

        currentColonyFrame = new QFrame(centralwidget);
        currentColonyFrame->setObjectName(QString::fromUtf8("currentColonyFrame"));
        QSizePolicy sizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
        sizePolicy.setHorizontalStretch(0);
        sizePolicy.setVerticalStretch(0);
        sizePolicy.setHeightForWidth(currentColonyFrame->sizePolicy().hasHeightForWidth());
        currentColonyFrame->setSizePolicy(sizePolicy);
        currentColonyFrame->setMinimumSize(QSize(0, 25));
        currentColonyFrame->setFrameShape(QFrame::StyledPanel);
        currentColonyFrame->setFrameShadow(QFrame::Raised);
        currentColonyLabel = new QLabel(currentColonyFrame);
        currentColonyLabel->setObjectName(QString::fromUtf8("currentColonyLabel"));
        currentColonyLabel->setGeometry(QRect(10, 10, 301, 16));
        currentColonyLabel->setMinimumSize(QSize(220, 15));
        currentColonyLabel->setMaximumSize(QSize(460, 25));
        QFont font1;
        font1.setPointSize(10);
        currentColonyLabel->setFont(font1);

        gridLayout->addWidget(currentColonyFrame, 0, 0, 1, 1);

        missionControlsFrame = new QFrame(centralwidget);
        missionControlsFrame->setObjectName(QString::fromUtf8("missionControlsFrame"));
        QSizePolicy sizePolicy1(QSizePolicy::Preferred, QSizePolicy::Preferred);
        sizePolicy1.setHorizontalStretch(8);
        sizePolicy1.setVerticalStretch(8);
        sizePolicy1.setHeightForWidth(missionControlsFrame->sizePolicy().hasHeightForWidth());
        missionControlsFrame->setSizePolicy(sizePolicy1);
        missionControlsFrame->setMaximumSize(QSize(300, 180));
        missionControlsFrame->setFrameShape(QFrame::WinPanel);
        missionControlsFrame->setFrameShadow(QFrame::Raised);
        verticalLayout = new QVBoxLayout(missionControlsFrame);
        verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
        misisonControlsLabel = new QLabel(missionControlsFrame);
        misisonControlsLabel->setObjectName(QString::fromUtf8("misisonControlsLabel"));
        QFont font2;
        font2.setPointSize(11);
        misisonControlsLabel->setFont(font2);
        misisonControlsLabel->setAlignment(Qt::AlignCenter);

        verticalLayout->addWidget(misisonControlsLabel);

        missionControlsGridLayout = new QGridLayout();
        missionControlsGridLayout->setObjectName(QString::fromUtf8("missionControlsGridLayout"));
        missionControlsGridLayout->setHorizontalSpacing(20);
        missionControlsGridLayout->setVerticalSpacing(10);
        missionControlsGridLayout->setContentsMargins(15, 20, 15, 0);
        startButton = new QPushButton(missionControlsFrame);
        startButton->setObjectName(QString::fromUtf8("startButton"));
        startButton->setMinimumSize(QSize(80, 30));
        startButton->setMaximumSize(QSize(130, 50));
        QFont font3;
        font3.setPointSize(12);
        startButton->setFont(font3);

        missionControlsGridLayout->addWidget(startButton, 0, 0, 1, 1);

        abortButton = new QPushButton(missionControlsFrame);
        abortButton->setObjectName(QString::fromUtf8("abortButton"));
        abortButton->setMinimumSize(QSize(80, 30));
        abortButton->setMaximumSize(QSize(130, 50));
        abortButton->setFont(font3);
        abortButton->setLayoutDirection(Qt::LeftToRight);
        abortButton->setAutoDefault(false);
        abortButton->setFlat(false);

        missionControlsGridLayout->addWidget(abortButton, 0, 1, 1, 1);

        singleStepButton = new QPushButton(missionControlsFrame);
        singleStepButton->setObjectName(QString::fromUtf8("singleStepButton"));
        singleStepButton->setMinimumSize(QSize(80, 30));
        singleStepButton->setMaximumSize(QSize(130, 50));
        singleStepButton->setFont(font3);

        missionControlsGridLayout->addWidget(singleStepButton, 1, 0, 1, 1);

        autoButton = new QPushButton(missionControlsFrame);
        autoButton->setObjectName(QString::fromUtf8("autoButton"));
        autoButton->setMinimumSize(QSize(80, 30));
        autoButton->setMaximumSize(QSize(130, 50));
        autoButton->setFont(font3);
        autoButton->setLayoutDirection(Qt::LeftToRight);
        autoButton->setAutoDefault(false);
        autoButton->setFlat(false);

        missionControlsGridLayout->addWidget(autoButton, 1, 1, 1, 1);

        pauseButton = new QPushButton(missionControlsFrame);
        pauseButton->setObjectName(QString::fromUtf8("pauseButton"));
        pauseButton->setMinimumSize(QSize(80, 30));
        pauseButton->setMaximumSize(QSize(130, 50));
        pauseButton->setFont(font3);
        pauseButton->setLayoutDirection(Qt::LeftToRight);
        pauseButton->setAutoDefault(false);
        pauseButton->setFlat(false);

        missionControlsGridLayout->addWidget(pauseButton, 2, 1, 1, 1);


        verticalLayout->addLayout(missionControlsGridLayout);


        gridLayout->addWidget(missionControlsFrame, 3, 1, 1, 1);

        botControlsFrame = new QFrame(centralwidget);
        botControlsFrame->setObjectName(QString::fromUtf8("botControlsFrame"));
        QSizePolicy sizePolicy2(QSizePolicy::Preferred, QSizePolicy::Preferred);
        sizePolicy2.setHorizontalStretch(4);
        sizePolicy2.setVerticalStretch(4);
        sizePolicy2.setHeightForWidth(botControlsFrame->sizePolicy().hasHeightForWidth());
        botControlsFrame->setSizePolicy(sizePolicy2);
        botControlsFrame->setMinimumSize(QSize(160, 120));
        botControlsFrame->setMaximumSize(QSize(320, 240));
        botControlsFrame->setFrameShape(QFrame::WinPanel);
        botControlsFrame->setFrameShadow(QFrame::Raised);
        gridLayout_2 = new QGridLayout(botControlsFrame);
        gridLayout_2->setObjectName(QString::fromUtf8("gridLayout_2"));
        botControlsGridLayout = new QGridLayout();
        botControlsGridLayout->setObjectName(QString::fromUtf8("botControlsGridLayout"));
        botControlsGridLayout->setSizeConstraint(QLayout::SetMinimumSize);
        downButton = new QPushButton(botControlsFrame);
        downButton->setObjectName(QString::fromUtf8("downButton"));
        downButton->setMinimumSize(QSize(30, 30));
        downButton->setMaximumSize(QSize(50, 50));
        downButton->setLayoutDirection(Qt::LeftToRight);
        QIcon icon;
        icon.addFile(QString::fromUtf8(":/grafics/grafics/pfeile/pfeil_unten.tga"), QSize(), QIcon::Normal, QIcon::Off);
        downButton->setIcon(icon);
        downButton->setIconSize(QSize(50, 50));

        botControlsGridLayout->addWidget(downButton, 2, 1, 1, 1);

        upButton = new QPushButton(botControlsFrame);
        upButton->setObjectName(QString::fromUtf8("upButton"));
        upButton->setMinimumSize(QSize(30, 30));
        upButton->setMaximumSize(QSize(50, 50));
        upButton->setSizeIncrement(QSize(0, 0));
        QIcon icon1;
        icon1.addFile(QString::fromUtf8(":/grafics/grafics/pfeile/pfeil_oben.tga"), QSize(), QIcon::Normal, QIcon::Off);
        upButton->setIcon(icon1);
        upButton->setIconSize(QSize(50, 50));

        botControlsGridLayout->addWidget(upButton, 0, 1, 1, 1);

        waitButton = new QPushButton(botControlsFrame);
        waitButton->setObjectName(QString::fromUtf8("waitButton"));
        waitButton->setMinimumSize(QSize(30, 30));
        waitButton->setMaximumSize(QSize(50, 50));
        QFont font4;
        font4.setFamily(QString::fromUtf8("MS Shell Dlg 2"));
        font4.setPointSize(15);
        waitButton->setFont(font4);
        waitButton->setContextMenuPolicy(Qt::DefaultContextMenu);
        QIcon icon2;
        QString iconThemeName = QString::fromUtf8("&#9664");
        if (QIcon::hasThemeIcon(iconThemeName)) {
            icon2 = QIcon::fromTheme(iconThemeName);
        } else {
            icon2.addFile(QString::fromUtf8("."), QSize(), QIcon::Normal, QIcon::Off);
        }
        waitButton->setIcon(icon2);

        botControlsGridLayout->addWidget(waitButton, 1, 1, 1, 1);

        leftButton = new QPushButton(botControlsFrame);
        leftButton->setObjectName(QString::fromUtf8("leftButton"));
        leftButton->setMinimumSize(QSize(30, 30));
        leftButton->setMaximumSize(QSize(50, 50));
        QIcon icon3;
        icon3.addFile(QString::fromUtf8(":/grafics/grafics/pfeile/pfeil_links.tga"), QSize(), QIcon::Normal, QIcon::Off);
        leftButton->setIcon(icon3);
        leftButton->setIconSize(QSize(50, 50));

        botControlsGridLayout->addWidget(leftButton, 1, 0, 1, 1);

        deleteButton = new QPushButton(botControlsFrame);
        deleteButton->setObjectName(QString::fromUtf8("deleteButton"));
        deleteButton->setMinimumSize(QSize(30, 30));
        deleteButton->setMaximumSize(QSize(50, 50));
        QFont font5;
        font5.setPointSize(15);
        deleteButton->setFont(font5);

        botControlsGridLayout->addWidget(deleteButton, 0, 2, 1, 1);

        rightButton = new QPushButton(botControlsFrame);
        rightButton->setObjectName(QString::fromUtf8("rightButton"));
        rightButton->setMinimumSize(QSize(30, 30));
        rightButton->setMaximumSize(QSize(50, 50));
        rightButton->setSizeIncrement(QSize(0, 0));
        QIcon icon4;
        icon4.addFile(QString::fromUtf8(":/grafics/grafics/pfeile/pfeil_rechts.tga"), QSize(), QIcon::Normal, QIcon::Off);
        rightButton->setIcon(icon4);
        rightButton->setIconSize(QSize(50, 50));

        botControlsGridLayout->addWidget(rightButton, 1, 2, 1, 1);


        gridLayout_2->addLayout(botControlsGridLayout, 1, 0, 3, 1);

        botControlsLabel = new QLabel(botControlsFrame);
        botControlsLabel->setObjectName(QString::fromUtf8("botControlsLabel"));
        botControlsLabel->setFont(font2);
        botControlsLabel->setAlignment(Qt::AlignCenter);

        gridLayout_2->addWidget(botControlsLabel, 0, 0, 1, 2);

        repeatDropdown = new QComboBox(botControlsFrame);
        repeatDropdown->addItem(QString());
        repeatDropdown->addItem(QString());
        repeatDropdown->addItem(QString());
        repeatDropdown->addItem(QString());
        repeatDropdown->addItem(QString());
        repeatDropdown->setObjectName(QString::fromUtf8("repeatDropdown"));
        repeatDropdown->setMinimumSize(QSize(80, 30));
        repeatDropdown->setMaximumSize(QSize(130, 50));
        QFont font6;
        font6.setPointSize(15);
        font6.setBold(true);
        font6.setItalic(false);
        font6.setWeight(75);
        repeatDropdown->setFont(font6);
        repeatDropdown->setFocusPolicy(Qt::WheelFocus);
        repeatDropdown->setLayoutDirection(Qt::LeftToRight);
        repeatDropdown->setInsertPolicy(QComboBox::NoInsert);
        repeatDropdown->setFrame(true);

        gridLayout_2->addWidget(repeatDropdown, 1, 1, 1, 1);

        frame_6 = new QFrame(botControlsFrame);
        frame_6->setObjectName(QString::fromUtf8("frame_6"));
        frame_6->setFrameShape(QFrame::StyledPanel);
        frame_6->setFrameShadow(QFrame::Raised);

        gridLayout_2->addWidget(frame_6, 2, 1, 1, 1);

        botCommandFrame = new QFrame(botControlsFrame);
        botCommandFrame->setObjectName(QString::fromUtf8("botCommandFrame"));
        botCommandFrame->setMinimumSize(QSize(100, 80));
        botCommandFrame->setMaximumSize(QSize(130, 16777215));
        botCommandFrame->setFrameShape(QFrame::StyledPanel);
        botCommandFrame->setFrameShadow(QFrame::Raised);
        botCommandTextEdit = new QTextEdit(botCommandFrame);
        botCommandTextEdit->setObjectName(QString::fromUtf8("botCommandTextEdit"));
        botCommandTextEdit->setGeometry(QRect(0, 16, 108, 50));
        QSizePolicy sizePolicy3(QSizePolicy::Expanding, QSizePolicy::Expanding);
        sizePolicy3.setHorizontalStretch(130);
        sizePolicy3.setVerticalStretch(50);
        sizePolicy3.setHeightForWidth(botCommandTextEdit->sizePolicy().hasHeightForWidth());
        botCommandTextEdit->setSizePolicy(sizePolicy3);
        botCommandTextEdit->setMinimumSize(QSize(80, 30));
        botCommandTextEdit->setMaximumSize(QSize(130, 50));
        botCommandTextEdit->setFont(font5);
        botCommandTextEdit->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
        botCommandTextEdit->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
        botCommandTextEdit->setLineWrapMode(QTextEdit::NoWrap);
        botCommandTextEdit->setReadOnly(true);

        gridLayout_2->addWidget(botCommandFrame, 3, 1, 1, 1);

        gridLayout_2->setRowStretch(1, 2);
        gridLayout_2->setRowStretch(2, 1);
        gridLayout_2->setRowStretch(3, 1);

        gridLayout->addWidget(botControlsFrame, 1, 1, 2, 1);

        mapFrame = new QFrame(centralwidget);
        mapFrame->setObjectName(QString::fromUtf8("mapFrame"));
        QSizePolicy sizePolicy4(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
        sizePolicy4.setHorizontalStretch(0);
        sizePolicy4.setVerticalStretch(0);
        sizePolicy4.setHeightForWidth(mapFrame->sizePolicy().hasHeightForWidth());
        mapFrame->setSizePolicy(sizePolicy4);
        mapFrame->setMinimumSize(QSize(120, 120));
        mapFrame->setFrameShape(QFrame::StyledPanel);
        mapFrame->setFrameShadow(QFrame::Raised);
        gridLayout_6 = new QGridLayout(mapFrame);
        gridLayout_6->setSpacing(0);
        gridLayout_6->setObjectName(QString::fromUtf8("gridLayout_6"));
        label = new QLabel(mapFrame);
        label->setObjectName(QString::fromUtf8("label"));
        sizePolicy4.setHeightForWidth(label->sizePolicy().hasHeightForWidth());
        label->setSizePolicy(sizePolicy4);
        label->setMinimumSize(QSize(0, 0));
        label->setFrameShape(QFrame::Box);
        label->setAlignment(Qt::AlignCenter);

        gridLayout_6->addWidget(label, 0, 0, 1, 1);

        verticalScrollBar = new QScrollBar(mapFrame);
        verticalScrollBar->setObjectName(QString::fromUtf8("verticalScrollBar"));
        verticalScrollBar->setOrientation(Qt::Vertical);

        gridLayout_6->addWidget(verticalScrollBar, 0, 1, 1, 1);

        horizontalScrollBar = new QScrollBar(mapFrame);
        horizontalScrollBar->setObjectName(QString::fromUtf8("horizontalScrollBar"));
        QSizePolicy sizePolicy5(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
        sizePolicy5.setHorizontalStretch(0);
        sizePolicy5.setVerticalStretch(0);
        sizePolicy5.setHeightForWidth(horizontalScrollBar->sizePolicy().hasHeightForWidth());
        horizontalScrollBar->setSizePolicy(sizePolicy5);
        horizontalScrollBar->setOrientation(Qt::Horizontal);

        gridLayout_6->addWidget(horizontalScrollBar, 1, 0, 1, 1);


        gridLayout->addWidget(mapFrame, 1, 0, 3, 1);

        gridLayout->setRowStretch(0, 1);
        gridLayout->setRowStretch(1, 4);
        gridLayout->setRowStretch(2, 4);
        gridLayout->setColumnStretch(0, 2);
        gridLayout->setColumnMinimumWidth(0, 1);
        gridLayout->setColumnMinimumWidth(1, 1);
        gridLayout->setRowMinimumHeight(0, 1);
        gridLayout->setRowMinimumHeight(1, 1);
        gridLayout->setRowMinimumHeight(2, 10);
        gridLayout->setRowMinimumHeight(3, 1);
        MainWindow->setCentralWidget(centralwidget);
        menubar = new QMenuBar(MainWindow);
        menubar->setObjectName(QString::fromUtf8("menubar"));
        menubar->setGeometry(QRect(0, 0, 819, 20));
        MainWindow->setMenuBar(menubar);
        statusbar = new QStatusBar(MainWindow);
        statusbar->setObjectName(QString::fromUtf8("statusbar"));
        MainWindow->setStatusBar(statusbar);

        retranslateUi(MainWindow);

        abortButton->setDefault(false);
        autoButton->setDefault(false);
        pauseButton->setDefault(false);


        QMetaObject::connectSlotsByName(MainWindow);
    } // setupUi

    void retranslateUi(QMainWindow *MainWindow)
    {
        MainWindow->setWindowTitle(QCoreApplication::translate("MainWindow", "MainWindow", nullptr));
        selectColonyButton->setText(QCoreApplication::translate("MainWindow", "Andere Kolonie ...", nullptr));
        currentColonyLabel->setText(QCoreApplication::translate("MainWindow", "Aktuelle Kolonie: Lithium-Stollen 13-A", nullptr));
        misisonControlsLabel->setText(QCoreApplication::translate("MainWindow", "Missionsablauf", nullptr));
        startButton->setText(QCoreApplication::translate("MainWindow", "Start", nullptr));
        abortButton->setText(QCoreApplication::translate("MainWindow", "Abbruch", nullptr));
        singleStepButton->setText(QCoreApplication::translate("MainWindow", "Einzelschritt", nullptr));
        autoButton->setText(QCoreApplication::translate("MainWindow", "Automatik", nullptr));
        pauseButton->setText(QCoreApplication::translate("MainWindow", "Anhalten", nullptr));
        downButton->setText(QString());
        upButton->setText(QString());
        waitButton->setText(QCoreApplication::translate("MainWindow", "W", nullptr));
        leftButton->setText(QString());
        deleteButton->setText(QCoreApplication::translate("MainWindow", "<", nullptr));
        rightButton->setText(QString());
        botControlsLabel->setText(QCoreApplication::translate("MainWindow", "Programmieren", nullptr));
        repeatDropdown->setItemText(0, QCoreApplication::translate("MainWindow", "1", nullptr));
        repeatDropdown->setItemText(1, QCoreApplication::translate("MainWindow", "2", nullptr));
        repeatDropdown->setItemText(2, QCoreApplication::translate("MainWindow", "3", nullptr));
        repeatDropdown->setItemText(3, QCoreApplication::translate("MainWindow", "4", nullptr));
        repeatDropdown->setItemText(4, QCoreApplication::translate("MainWindow", "5", nullptr));

        repeatDropdown->setCurrentText(QCoreApplication::translate("MainWindow", "1", nullptr));
        botCommandTextEdit->setPlaceholderText(QCoreApplication::translate("MainWindow", "Textfeld", nullptr));
        label->setText(QCoreApplication::translate("MainWindow", "Umgebungskarte", nullptr));
    } // retranslateUi

};

namespace Ui {
    class MainWindow: public Ui_MainWindow {};
} // namespace Ui

QT_END_NAMESPACE

#endif // PATCHBOT_GUI_H

main file (from Qt Designer):

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

other files (from Qt Designer):

mainwindow.cpp (to customize my buttons):

#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());
}

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

If further information is needed, I'd be happy to help.

Cpt. Crazy
  • 115
  • 1
  • 11
  • I use Visual Studio 2019 every day with Qt so I can tell you that it works. With that said I am not sure we can help without seeing at least some of the errors. – drescherjm Dec 13 '19 at 12:21
  • @drescherjm well I'm sure it should work, but it doesn't for me sadly. Should I reinstall it again? – Cpt. Crazy Dec 13 '19 at 12:22
  • @drescherjm I can add the error codes with a bit of translation, but I can't copy them, because they are written in my mother tongue – Cpt. Crazy Dec 13 '19 at 12:24
  • Did you tell VS where the Qt libraries and header files are? – ChrisMM Dec 13 '19 at 12:28
  • 1
    @ChrisMM Uhm, that could be the problem. I installed "Qt Visual Studio Tools", but do I have to tell VS where they are? I thought, if installed it via VS extensions, VS would already know where they are – Cpt. Crazy Dec 13 '19 at 12:32
  • Well, if VS assumed to automatically link and include the Qt libraries for all projects, that would be much worse (imo). I don't use the Qt Tools for VS, just Qt with VS without the Tools, but I would assume you still need to link them. [Add includes](https://learn.microsoft.com/en-us/cpp/build/reference/i-additional-include-directories?view=vs-2019) and [Link Libraries](https://stackoverflow.com/questions/4445418/how-to-add-additional-libraries-to-visual-studio-project) – ChrisMM Dec 13 '19 at 12:34
  • Thanks, looks promising. I'll look into it :) – Cpt. Crazy Dec 13 '19 at 12:35
  • I'm experiencing the same problem. Already tried to identify if VS '19 tried to access the files via Process Monitor. Added the file "QApplication" manually to the header files and starting VS '19 as administrator, but nothing worked. – Starhowl Dec 30 '19 at 09:14

0 Answers0