Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.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
C++ Qt错误中未声明QMessagebox_C++_Qt - Fatal编程技术网

C++ Qt错误中未声明QMessagebox

C++ Qt错误中未声明QMessagebox,c++,qt,C++,Qt,在我的作业中,我经常遇到以下错误 C:\Users\bekkie\Documents\UNISA\2016\1sem\COS 2614 - OT PROGRAMMING\Assignments\Ass1Q1\main.cpp:32: error: 'QMessagebox' has not been declared 行: 请帮忙!我会非常感激的 以下是我的课程详情: #------------------------------------------------- # # Project

在我的作业中,我经常遇到以下错误

C:\Users\bekkie\Documents\UNISA\2016\1sem\COS 2614 - OT PROGRAMMING\Assignments\Ass1Q1\main.cpp:32: error: 'QMessagebox' has not been declared
行:

请帮忙!我会非常感激的

以下是我的课程详情:

#-------------------------------------------------
#
# Project created by QtCreator 2016-02-26T12:56:12
#
#-------------------------------------------------



     QT       += core gui

        greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

       TARGET = Ass1Q1
       TEMPLATE = app


       SOURCES += main.cpp\
        sentenceprocessor.cpp

    HEADERS  += sentenceprocessor.h

    FORMS    +=


#包括“sentenceprocessor.h”
#包括
#包括
#包括
int-SentenceProcessor::getWordNumber(QString语句)
{
串字;
QStringList表;
列表=句子。拆分(“”);
int WordNumber=list.count();
返回字号;
}
int-SentenceProcessor::GetVouelNumber(QString语句)
{
int-vouelnumber=0;
for(int i=0;i<句子长度();i++)
{
如果(句子包含(“a”)| |句子包含(“e”)||
句子.包含(“i”)| |句子.包含(“o”)||
句子。包含(“u”))
元音数字++;
}
返回元音编号;
}
bool语句处理器::isReversible(QString语句)
{
布尔可逆;
QString OriginalString,reversedString;
QStringList OriginalList=句子。拆分(“”);
QStringList reversedList=原始列表;
QStringList::iterator firstRecord=reversedList.begin();
QStringList::迭代器lastRecord=reversedList.end();
{
while(true)
{
if(firstRecord==lastRecord | | firstRecord==--lastRecord){
reversedString=reversedList.join(“”);
}
否则{
qSwap(*第一条记录,*最后一条记录);
++第一记录;
}
}
}
如果(原始列表==反向列表)
可逆=真;
其他的
可逆=假;
返回可逆;
}
QString语句处理器::单词反转(QString语句)
{
{
QString反向字符串;
QStringList reversedList=句子。拆分(“”);
QStringList::iterator firstRecord=reversedList.begin();
QStringList::迭代器lastRecord=reversedList.end();
{
while(true)
if(firstRecord==lastRecord | | firstRecord==--lastRecord){
return reversedString=reversedList.join(“”);
}
否则{
qSwap(*第一条记录,*最后一条记录);
++第一记录;
}
}
}
}
QString语句处理器::格式化语句(QString语句)
{
QString格式化字符串;
格式化字符串=句子;
int num=formattedString.count();
(0.toUpper()处的FormattedString.at;
(0.toUpper()处的FormattedString.at;
for(int i=1;i
  • #包括
    -好的,这看起来是存在的,但您仍然需要一个,所以让它留在这里

  • < > >代码SB=QMaseBox::问题(<代码> >代码> SB=QMaseBox::问题(< /代码> .C++对标识符的情况敏感)。


    您可能希望使用带有自动完成和/或代码分析的IDE来捕获此类错误。另一种选择是在键入代码时仔细查看代码。(我更喜欢后一种方法,因为它在学习语言或新库时非常有用。请参阅例如“白板访谈”的实践。)当他们让你在纸上或白板上写代码而不使用任何工具或参考时。)

    它已经包含在源文件中。错误仅仅是输入错误。@iksemyonov是的,我在编辑问题时注意到了。非常感谢。难以置信我没有看到它。我更正了它。它最终给出了我的qinputdialog,但在我运行它时它没有给出我的qmessagebox。@Charlenebuy在没有看到代码的情况下很难判断,但你可能需要修改它将消息框的父对象设置为
    this
    (现在是
    0
    ),另一件看起来可疑的事情是
    exec()
    是在消息框的实际代码之后调用的,这可能意味着后者没有效果。@thuga仔细看,上面有一个
    do{
    ,这是
    do{}while()
    loop.@iksemyonov My bad.缩进让我不舒服。@CharleneBuys您需要在调试器中运行代码。在
    行中断(ok&&!text.isEmpty())
    并检查
    ok
    text
    的值。养成使用调试器的习惯,因为调试调试器是编程过程中不可或缺的一部分。您需要习惯跟踪和分析程序的实际行为,并将其与预期行为进行比较。
    #-------------------------------------------------
    #
    # Project created by QtCreator 2016-02-26T12:56:12
    #
    #-------------------------------------------------
    
    
    
         QT       += core gui
    
            greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    
           TARGET = Ass1Q1
           TEMPLATE = app
    
    
           SOURCES += main.cpp\
            sentenceprocessor.cpp
    
        HEADERS  += sentenceprocessor.h
    
        FORMS    +=
    
    #ifndef SENTENCEPROCESSOR_H
    #define SENTENCEPROCESSOR_H
    
    #include <QMainWindow>
    
    namespace Ui {
        class SentenceProcessor;
    }
    
    class SentenceProcessor : public QMainWindow
    {
        Q_OBJECT
    
    public:
        int getWordNumber(QString sentence);
        int getVowelNumber(QString sentence);
        bool isReversible(QString sentence);
        QString wordsReversed(QString sentence);
        QString formatSentence(QString sentence);
    
    private:
        QString sentence;
    
    };
    
    #endif // SENTENCEPROCESSOR_H
    
        bool ok;
        QMessageBox::StandardButton sb;
    
        do
        {
            // Ask for sentence
            QString text = QInputDialog::getText(0, "Input Sentence", "Please insert Sentence:",QLineEdit::Normal, "", &ok);
    
            if (ok && !text.isEmpty()) {
                responce = "Your Sentence: " + text + "has " + nSentence.getWordNumber(list) +
                           "It also has " + nSentence.getVowelNumber(list) + "Vowels in it" + "Is your Sentence Reversible" +
                           nSentence.isReversible(text) + "Your reversed sentence reads: " + nSentence.wordsReversed(text);    
                sb = QMessagebox::question( 0,QString ("Sentence Feedback"), responce, QMessageBox::Yes | QMessageBox::No);
            }    
        }while (sb == QMessageBox::Yes);    
    
        return a.exec();
    }
    
    #include "sentenceprocessor.h"
    #include <QStringList>
    #include <QtWidgets>
    #include <QMessageBox>
    
    int SentenceProcessor::getWordNumber(QString sentence)
    {
        QString Words;
        QStringList list;
        list = sentence.split( " ");
        int WordNumber = list.count();
    
         return WordNumber;
    
    }
    
    int SentenceProcessor::getVowelNumber(QString sentence)
    {
        int VowelNumber = 0;
        for (int i=0; i < sentence.length();i++)
        {
        if (sentence.contains("a")|| sentence.contains("e")||
                sentence.contains("i")||sentence.contains("o")||
                sentence.contains("u"))
            VowelNumber++;
    }
        return VowelNumber;
    
    }
    
    bool SentenceProcessor::isReversible(QString sentence)
    {
        bool reversible;
        QString OriginalString, reversedString;
        QStringList OriginalList = sentence.split(" ");
        QStringList reversedList = OriginalList;
    
        QStringList::iterator firstRecord = reversedList.begin();
        QStringList::iterator lastRecord = reversedList.end();
        {
        while (true)
            {
            if (firstRecord == lastRecord || firstRecord == --lastRecord){
               reversedString = reversedList.join(" ");
            }
            else{
             qSwap(*firstRecord, *lastRecord);
                    ++firstRecord;
           }
        }
    }
        if (OriginalList==reversedList)
            reversible = true;
        else
            reversible = false;
    
        return reversible;
    
    }
    
    QString SentenceProcessor::wordsReversed(QString sentence)
    {
        {
            QString reversedString;
            QStringList reversedList = sentence.split(" ");
    
    
            QStringList::iterator firstRecord = reversedList.begin();
            QStringList::iterator lastRecord = reversedList.end();
            {
            while (true)
                if (firstRecord == lastRecord || firstRecord == --lastRecord){
                 return  reversedString = reversedList.join(" ");
                }
                else{
                 qSwap(*firstRecord, *lastRecord);
                        ++firstRecord;
               }
            }
        }
    
    }
    
    QString SentenceProcessor::formatSentence(QString sentence)
    {
        QString FormatedString;
        FormatedString = sentence;
    
       int num = FormatedString.count();
        FormatedString.at(0).toUpper();
    
    
         FormatedString.at(0).toUpper();
    
         for (int i = 1; i < num; i++)
             FormatedString.toLower();
    
         if (FormatedString.lastIndexOf("."))
                 return FormatedString;
                 else
                 return FormatedString = FormatedString + ".";
    }
                  ^