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
#包括
-好的,这看起来是存在的,但您仍然需要一个,所以让它留在这里您可能希望使用带有自动完成和/或代码分析的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 + ".";
}
^