Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为多个选项卡和初始组合框创建QT Ui_Qt_User Interface_Tabs_Connect - Fatal编程技术网

为多个选项卡和初始组合框创建QT Ui

为多个选项卡和初始组合框创建QT Ui,qt,user-interface,tabs,connect,Qt,User Interface,Tabs,Connect,我的设置如下: main.cpp projectQt.cpp projectQt.h tab1.h tab1.cpp tab2.h tab2.cpp projectQt.ui ui_projectQt.h 我想用Ui文件创建一个项目。在Ui文件中,我有三个comboBox和两个Apply按钮,在tab1.cpp和tab2.cpp中,我想添加comboBox的初始项。如果用户单击其中一个应用按钮,请运行“OnBtnApplyClicked”方法 但是我得到了这个错误: 错误是 projectQt

我的设置如下:

main.cpp
projectQt.cpp
projectQt.h
tab1.h
tab1.cpp
tab2.h
tab2.cpp
projectQt.ui
ui_projectQt.h
我想用Ui文件创建一个项目。在Ui文件中,我有三个comboBox和两个Apply按钮,在tab1.cpp和tab2.cpp中,我想添加comboBox的初始项。如果用户单击其中一个应用按钮,请运行“OnBtnApplyClicked”方法

但是我得到了这个错误:

错误是

projectQt.obj : error LNK2019: unresolved external symbol "public: __thiscall Ctab1::~Ctab1(void)" (??1Ctab1@@QAE@XZ) referenced in function "public: __thiscall ProjectQt::ProjectQt(class QWidget *)" (??0ProjectQt@@QAE@PAVQWidget@@@Z)
C:\output\Deneme\Qt\Win32\Debug\\projectQt.exe : fatal error LNK1120: 1 unresolved externals
main.cpp

#include "projectQt.h"

    #include <QtWidgets/QApplication>

    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        ProjectQt w;
        w.show();
        return a.exec();
    }
projectQt.h文件:

#ifndef projectQt_H
#define projectQt_H

#include <QtWidgets/QMainWindow>
#include "ui_projectQt.h"
#include "tab1.h"
#include "tab2.h"

class ProjectQt : public QMainWindow
{
    Q_OBJECT

public:
    ProjectQt(QWidget *parent = 0);
    ~ProjectQt();

//private:
    Ui::ProjectQtClass ui;
};

#endif // projectQt_H
\ifndef项目
#定义项目qt_H
#包括
#包括“ui_projectQt.h”
#包括“表1.h”
#包括“表2.h”
类ProjectQt:公共QMainWindow
{
Q_对象
公众:
ProjectQt(QWidget*parent=0);
~ProjectQt();
//私人:
Ui::projectqtclasseui;
};
#endif//projectQt\u H
tab1.h文件:

#pragma once

#include <string>
#include "projectQt.h"
#include "ui_projectQt.h"

class Ctab1
{

public:
    Ctab1(void);
    ~Ctab1(void);

public slots:
    void setEvents();
    void initGUI();
    void OnBtnApplyClicked();

//private:
    //Ui::ProjectQtClass *ui;

};
#pragma一次
#包括
#包括“projectQt.h”
#包括“ui_projectQt.h”
Ctab1类
{
公众:
Ctab1(无效);
~Ctab1(无效);
公众时段:
void setEvents();
void initGUI();
void OnBtnApplyClicked();
//私人:
//Ui::ProjectQtClass*Ui;
};
tab1.cpp文件:

#include "projectQt.h"
#include "tab1.h"
#include "tab2.h"
#include "ui_projectQt.h"


ProjectQt::ProjectQt(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);

    Ctab1 ctab11;
    Ctab1 ctab22;
    ctab11.initGUI();
    ctab22.initGUI();

    connect(ui.IDC_BTN_1_Apply,SIGNAL(clicked()),this,SLOT(Ctab1::OnBtnApplyClicked()));
    connect(ui.IDC_BTN_2_Apply,SIGNAL(clicked()),this,SLOT(Ctab2::OnBtnApplyClicked()));

}

ProjectQt::~ProjectQt()
{

}
#include "projectQt.h"
#include "tab1.h"
#include <QTextStream>
#include "ui_projectQt.h"

Ctab1::Ctab1(void)
{
}

void Ctab1::initGUI(){
    Ui::ProjectQtClass uimain;
    uimain.IDC_CMB_1_0->addItem("1100");
    uimain.IDC_CMB_1_0->addItem("1101");
    uimain.IDC_CMB_1_1->addItem("1200");
    uimain.IDC_CMB_1_1->addItem("1201");

}

void Ctab1::OnBtnApplyClicked(){

}
#include "projectQt.h"
#include "tab2.h"
#include <QTextStream>
#include "ui_projectQt.h"

Ctab2::Ctab2(void)
{
}

void Ctab2::initGUI(){

    Ui::ProjectQtClass uimain;
    uimain.IDC_CMB_2_0->addItem("2000");
    uimain.IDC_CMB_2_0->addItem("2001");

}

void Ctab2::OnBtnApplyClicked(){

}
#包括“projectQt.h”
#包括“表1.h”
#包括
#包括“ui_projectQt.h”
Ctab1::Ctab1(无效)
{
}
void Ctab1::initGUI(){
Ui::projectqtclasseuimain;
uimain.IDC_CMB_1_0->addItem(“1100”);
uimain.IDC_CMB_1_0->addItem(“1101”);
uimain.IDC_CMB_1_1->addItem(“1200”);
uimain.IDC_CMB_1_1->addItem(“1201”);
}
void Ctab1::OnBtnApplyClicked(){
}
tab2.h文件:

#pragma once

#include <string>
#include "projectQt.h"
#include "ui_projectQt.h"

class Ctab2
{

public:
    Ctab2(void);
    ~Ctab2(void);

public slots:
    void setEvents();
    void initGUI();
    void OnBtnApplyClicked();

//private:
    //Ui::ProjectQtClass *ui;

};
#pragma一次
#包括
#包括“projectQt.h”
#包括“ui_projectQt.h”
Ctab2类
{
公众:
Ctab2(无效);
~Ctab2(无效);
公众时段:
void setEvents();
void initGUI();
void OnBtnApplyClicked();
//私人:
//Ui::ProjectQtClass*Ui;
};
tab2.cpp文件:

#include "projectQt.h"
#include "tab1.h"
#include "tab2.h"
#include "ui_projectQt.h"


ProjectQt::ProjectQt(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);

    Ctab1 ctab11;
    Ctab1 ctab22;
    ctab11.initGUI();
    ctab22.initGUI();

    connect(ui.IDC_BTN_1_Apply,SIGNAL(clicked()),this,SLOT(Ctab1::OnBtnApplyClicked()));
    connect(ui.IDC_BTN_2_Apply,SIGNAL(clicked()),this,SLOT(Ctab2::OnBtnApplyClicked()));

}

ProjectQt::~ProjectQt()
{

}
#include "projectQt.h"
#include "tab1.h"
#include <QTextStream>
#include "ui_projectQt.h"

Ctab1::Ctab1(void)
{
}

void Ctab1::initGUI(){
    Ui::ProjectQtClass uimain;
    uimain.IDC_CMB_1_0->addItem("1100");
    uimain.IDC_CMB_1_0->addItem("1101");
    uimain.IDC_CMB_1_1->addItem("1200");
    uimain.IDC_CMB_1_1->addItem("1201");

}

void Ctab1::OnBtnApplyClicked(){

}
#include "projectQt.h"
#include "tab2.h"
#include <QTextStream>
#include "ui_projectQt.h"

Ctab2::Ctab2(void)
{
}

void Ctab2::initGUI(){

    Ui::ProjectQtClass uimain;
    uimain.IDC_CMB_2_0->addItem("2000");
    uimain.IDC_CMB_2_0->addItem("2001");

}

void Ctab2::OnBtnApplyClicked(){

}
#包括“projectQt.h”
#包括“表2.h”
#包括
#包括“ui_projectQt.h”
Ctab2::Ctab2(无效)
{
}
void Ctab2::initGUI(){
Ui::projectqtclasseuimain;
uimain.IDC_CMB_2_0->addItem(“2000”);
uimain.IDC_CMB_2_0->addItem(“2001”);
}
void Ctab2::OnBtnApplyClicked(){
}

每当您看到“未定义引用…”行中出现错误时,表示这是链接器错误

这个特殊的错误意味着在程序中的某个地方,调用了
Ctab1
类的析构函数,但它在任何源文件中都找不到该析构函数的实现,只有声明

将以下内容添加到
tab1.cpp
文件中:

Ctab1::~Ctab1(){
   // any cleanup code placed here
}

也很明显,你不完全理解C++中的变量范围。(

ctab11
ctab22
仅存在于
ProjectQt


我建议你在继续你的项目之前先学习C/C++的入门课程。

你不会具体说明你有什么错误。谢谢。现在只需查看下面@RobbieE的答案,我认为这会有所帮助。