Название: ISO C++ forbid declaration of QMessageBox with no type Отправлено: Bzzzuka от Апрель 07, 2012, 13:31 эта ошибка вылезает когда я пытаюсь задекларировать в заголовочном файле
QMessageBox *mbox; а вот сам mbox: QMessageBox* mbox = new QMessageBox (QMessageBox::setWindowTitle("&Database Info"), QMessageBox::setIconPixmap("Icon1.jpg"), QMessageBox::setInformativeText("Database Info"), QMessageBox::setText("This database of impact craters was initially"\ "created as part of the Lunar Exploration Summer Intern Program at the Lunar"\ "and Planetary Institute in 2008 (updated in May 2011). The foundation for"\ "this work is a database compilation by Jonathan McDowell <a>"\ "(http://host.planet4589.org/astro/lunar/Craters)<a>, which was found to be"\ "the most complete of those available. The database was expanded by adding"\ "information about ages of chosen craters (from Wilhelms, 1987, and Wilhelms"\ "& Byrne, 2009) as well as calculating several physical characteristics of"\ "the craters (e.g., ejecta blanket thickness, volume of crater, volume of"\ "melt, excavation depth) based on published scaling equations. Thus,"), QMessageBox::setInformativeText("only"\ "the crater coordinates, diameter, measured depth, measured central peak"\ "height, and stratigraphic age were determined from images and/or maps"), QMessageBox::setText("while the rest of the columns give theoretically expected values."), ); int n = mbox->exec(); delete mbox; Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: Пантер от Апрель 07, 2012, 13:53 В хидере напиши
class QMessageBox; Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: Bzzzuka от Апрель 07, 2012, 14:01 Это ты про заголовочный? и куда именно добавить? в class MainWindow : public QMainWindow? или отдельно?
можно по подробнее? Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: Bzzzuka от Апрель 07, 2012, 14:20 Добавила строчку
class QMessageBox; перед class MainWindow : public QMainWindow теперь Qt говорит что не может вызвать функции типа QMessageBox::setWindowTitle и так далее Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: m_ax от Апрель 07, 2012, 14:24 Добавила строчку class QMessageBox; перед class MainWindow : public QMainWindow теперь Qt говорит что не может вызвать функции типа QMessageBox::setWindowTitle и так далее Надо там, где вы вызываете эти функции, заинклудить #include <QMessageBox> это в cpp файле, если вы там эти функции дёргаете.. Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: Bzzzuka от Апрель 07, 2012, 14:26 #include <QMessageBox> в mainwindow.cpp есть проблема не в этом
еще у меня почему то нет возможности копировать ошибки.. если бы я это исправила мне было бы проще объяснить что может быть не так Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: m_ax от Апрель 07, 2012, 14:29 #include <QMessageBox> в mainwindow.cpp есть проблема не в этом Ахаа... Проблема в том, что эти функции не статические) Поэтому вместо: Код везде. Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: Bzzzuka от Апрель 07, 2012, 14:34 уже лучше, но как все таки решить проблему с копированием ошибок.. мне не совсем удобно их каждый раз перепечатывать.
Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: m_ax от Апрель 07, 2012, 14:42 уже лучше, но как все таки решить проблему с копированием ошибок.. мне не совсем удобно их каждый раз перепечатывать. Ничё-ничё) Перепечатывать для вас тож полезно) Глядишь, прежде чем вопрошать о том чего не получаться, вы сперва сами подумаете, в чём косяк)) Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: kambala от Апрель 07, 2012, 14:45 нажать правой кнопкной на ошибку в нижней панели уже не работает? или открыть вывод компилятора и оттуда копировать.
Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: Bzzzuka от Апрель 07, 2012, 14:51 не соглашусь в перепечатывании примеров кода вместо копирования смысл есть.. а вот перепечатывание ошибки вещь не особо нужная ее и так 100500 раз прочтешь пока код пытаешься исправить, так что ее копирование только убыстряет процесс..
терь Qt ругается что нет подходящей фукции для вызова mbox->setIconPixmap(const char[10]) kambala, Вот именно при нажатии правой кнопки мыши на ошибку, "Копировать" вылазит как недоступная. хотя всегда была доступна. я не знаю я никаких настроек не меняла Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: m_ax от Апрель 07, 2012, 14:59 не соглашусь в перепечатывании примеров кода вместо копирования смысл есть.. а вот перепечатывание ошибки вещь не особо нужная ее и так 100500 раз прочтешь пока код пытаешься исправить, так что ее копирование только убыстряет процесс.. терь Qt ругается что нет подходящей фукции для вызова mbox->setIconPixmap(const char[10]) kambala, Вот именно при нажатии правой кнопки мыши на ошибку, "Копировать" вылазит как недоступная. хотя всегда была доступна. я не знаю я никаких настроек не меняла Код
Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: Bzzzuka от Апрель 07, 2012, 15:03 Спасибки, только как раз минуты за две до вашего ответа меня угораздило саму до этого додуматься
а как правильно использовать addButton? я нашла несколько вариантов как добавить кнопку но не один не хочет работать Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: m_ax от Апрель 07, 2012, 15:06 Спасибки, только как раз минуты за две до вашего ответа меня угораздило саму до этого додуматься Ох, почаще бы вас так угораздивало (млин ну слово)) Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: Bzzzuka от Апрель 07, 2012, 15:16 я думаю что то типо этого должно быть:
mbox->addButton(QAbstractButton * Ok, AcceptRole); но он пишет что Ok не задекларированы и еще мне кажется есть метод намного проще Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: m_ax от Апрель 07, 2012, 15:22 я думаю что то типо этого должно быть: Жесть)mbox->addButton(QAbstractButton * Ok, AcceptRole); но он пишет что Ok не задекларированы и еще мне кажется есть метод намного проще Иногда мне кажется, что вы над нами просто глумитесь) Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: Bzzzuka от Апрель 07, 2012, 15:29 а мне иногда кажется что у разных людей разное понимание выражения "вопросы новичков"
По моему мнению "новички" это у которых Hello World заработало и они писаются от счастья! так что я не понимаю причем тут глумитесь?? это вы издеваетесь и не можете нормально объяснить, не делая никакой скидки на ограниченные знания того кто задает вопрос. Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: m_ax от Апрель 07, 2012, 15:38 а мне иногда кажется что у разных людей разное понимание выражения "вопросы новичков" А кто вам мешает эти знания получить? (самостоятельно) Так вы вечно будете пребывать в рядах новичков)По моему мнению "новички" это у которых Hello World заработало и они писаются от счастья! так что я не понимаю причем тут глумитесь?? это вы издеваетесь и не можете нормально объяснить, не делая никакой скидки на ограниченные знания того кто задает вопрос. Мне вот не понятно, что вы этим хотели сказать: Цитировать я думаю что то типо этого должно быть: ???mbox->addButton(QAbstractButton * Ok, AcceptRole); но он пишет что Ok не задекларированы и еще мне кажется есть метод намного проще Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: Bzzzuka от Апрель 07, 2012, 15:43 я просто хочу добавить в свой MessageBox кнопку Ok и все.
а знания я получаю изучая литературу, примеры и если мне что-то непонятно спрашиваю, и это тоже получение знаний которые я потом буду использовать самостоятельно. mbox->addButton(QMessageBox::Ok) вот так это делается?? Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: m_ax от Апрель 07, 2012, 15:48 я просто хочу добавить в свой MessageBox кнопку Ok и все. а знания я получаю изучая литературу, примеры и если мне что-то непонятно спрашиваю, и это тоже получение знаний которые я потом буду использовать самостоятельно. mbox->addButton(QMessageBox::Ok) вот так это делается?? Нет не так, а вот так: Код
Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: Bzzzuka от Апрель 07, 2012, 15:52 А можешь объяснить в чем разница? на мой вариант Qt не ругался, а на твой ругается что типа у класса QMessageBox нет такого member'a как addButton!
Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: m_ax от Апрель 07, 2012, 15:55 А можешь объяснить в чем разница? на мой вариант Qt не ругался, а на твой ругается что типа у класса QMessageBox нет такого member'a как addButton! Да, ссори, так тоже можно Код даже лучше. На мой вариант "оно" ругалось из-за того, что вы злоупотребляете copy-past'ом)) Поскольку button пишется с двумя t. Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: Bzzzuka от Апрель 07, 2012, 15:57 это ты сейчас правду сказал или опять сарказм?? Я уже погрязла в чувстве вины что я такая тупая, моя самооценка понизилась до ниже плинтуса, и я стала дико подозрительной))
Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: kambala от Апрель 07, 2012, 15:59 учись пользоваться ассистентом (справкой Qt) - это первое, с чего надо начинать при написании программы посложнее хэллоуворлда.
найди в справке по QMessageBox метод добавления кнопки и посмотри какие параметры он принимает. например, стандартная кнопка "ок" - это QMessageBox::Ok (элемент перечисления). Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: m_ax от Апрель 07, 2012, 16:01 это ты сейчас правду сказал или опять сарказм?? Я уже погрязла в чувстве вины что я такая тупая, моя самооценка понизилась до ниже плинтуса, и я стала дико подозрительной)) Найдите десять отличий: Код :) Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: Bzzzuka от Апрель 07, 2012, 16:02 я не про то что ты очепятался, а про то что мой вариант лучше
Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: m_ax от Апрель 07, 2012, 16:03 я не про то что ты очепятался, а про то что мой вариант лучше Ну если вы с этой кнопкой больше ничего делать не намерены, то думаю правильнее использовать его)Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: V1KT0P от Апрель 07, 2012, 16:05 я не про то что ты очепятался, а про то что мой вариант лучше Вот в справке пример добавления кнопок и выбор одной из кнопок по умолчанию:Код
Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: Bzzzuka от Апрель 07, 2012, 16:13 В чем разница между setTest() и setInformativeText()? они же отображаются абсолютно одинаково, везде кроме Mac OS. Мне настоятельно рекомендовали использовать их вместо тэгов но я не вижу особого смысла
Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: V1KT0P от Апрель 07, 2012, 16:17 В чем разница между setTest() и setInformativeText()? они же отображаются абсолютно одинаково, везде кроме Mac OS. Мне настоятельно рекомендовали использовать их вместо тэгов но я не вижу особого смысла Да я просто скопипастил из справки, тебе надо добавить кнопки? Так вот используй это:Код
Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: kambala от Апрель 07, 2012, 16:17 сами названия методов как бы намекают, что первый используется для ключевого текста, а второй - для более подробной информации. если ты планируешь распространять приложение для мак ос, то надо пользоваться setInformativeText(), поскольку так принято в этой системе.
Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: Bzzzuka от Апрель 07, 2012, 16:21 я вижу разницу в названиях и могу ее правильно интерпретировать я не понимаю почему мне сказали что использование тэгов html вообще не правильно, а правильно использовать setInformativeText для выделения, хотя он работает адекватно только в одной операционке?
Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: kambala от Апрель 07, 2012, 16:36 ну так вот и спроси у того, кто тебе это сказал. использовать теги в QMessageBox - это нормально, только перебарщивать с ними не нужно.
Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: Bzzzuka от Апрель 07, 2012, 16:41 Спасибо успокоили, а то у меня засело что я что-то не так делаю...
Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: Bzzzuka от Апрель 07, 2012, 17:02 а нельзя в setText() текст из файла подгружать а то текст большой?
Название: Re: ISO C++ forbid declaration of QMessageBox with no type Отправлено: m_ax от Апрель 07, 2012, 17:08 а нельзя в setText() текст из файла подгружать а то текст большой? Можно) Бог в помощь) |