Russian Qt Forum
Ноябрь 24, 2024, 19:44 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2 3   Вниз
  Печать  
Автор Тема: ISO C++ forbid declaration of QMessageBox with no type  (Прочитано 13298 раз)
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;
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Апрель 07, 2012, 13:53 »

В хидере напиши
class QMessageBox;
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Bzzzuka
Гость
« Ответ #2 : Апрель 07, 2012, 14:01 »

Это ты про заголовочный? и куда именно добавить? в class MainWindow : public QMainWindow? или отдельно?
можно по подробнее?
« Последнее редактирование: Апрель 07, 2012, 14:14 от Bzzzuka » Записан
Bzzzuka
Гость
« Ответ #3 : Апрель 07, 2012, 14:20 »

Добавила строчку

class QMessageBox;

перед

class MainWindow : public QMainWindow

теперь Qt говорит что не может вызвать функции типа QMessageBox::setWindowTitle и так далее
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #4 : Апрель 07, 2012, 14:24 »

Добавила строчку

class QMessageBox;

перед

class MainWindow : public QMainWindow

теперь Qt говорит что не может вызвать функции типа QMessageBox::setWindowTitle и так далее


Надо там, где вы вызываете эти функции, заинклудить
#include <QMessageBox>
это в cpp файле, если вы там эти функции дёргаете.. 
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Bzzzuka
Гость
« Ответ #5 : Апрель 07, 2012, 14:26 »

#include <QMessageBox> в mainwindow.cpp есть проблема не в этом

еще у меня почему то нет возможности копировать ошибки.. если бы я это исправила мне было бы проще объяснить что может быть не так
« Последнее редактирование: Апрель 07, 2012, 14:28 от Bzzzuka » Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #6 : Апрель 07, 2012, 14:29 »

#include <QMessageBox> в mainwindow.cpp есть проблема не в этом

Ахаа... Проблема в том, что эти функции не статические)
Поэтому вместо:
Код
C++ (Qt)
QMessageBox::set...
нужно писать:
mbox->set...
 
везде.
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Bzzzuka
Гость
« Ответ #7 : Апрель 07, 2012, 14:34 »

уже лучше, но как все таки решить проблему с копированием ошибок.. мне не совсем удобно их каждый раз перепечатывать.
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #8 : Апрель 07, 2012, 14:42 »

уже лучше, но как все таки решить проблему с копированием ошибок.. мне не совсем удобно их каждый раз перепечатывать.
Ничё-ничё) Перепечатывать для вас тож полезно) Глядишь, прежде чем вопрошать о том чего не получаться, вы сперва сами подумаете, в чём косяк))
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #9 : Апрель 07, 2012, 14:45 »

нажать правой кнопкной на ошибку в нижней панели уже не работает? или открыть вывод компилятора и оттуда копировать.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bzzzuka
Гость
« Ответ #10 : Апрель 07, 2012, 14:51 »

не соглашусь в перепечатывании примеров кода вместо копирования смысл есть.. а вот перепечатывание ошибки вещь не особо нужная ее и так 100500 раз прочтешь пока код пытаешься исправить, так что ее копирование только убыстряет процесс..

терь Qt ругается что нет подходящей фукции для вызова
mbox->setIconPixmap(const char[10])

kambala, Вот именно при нажатии правой кнопки мыши на ошибку, "Копировать" вылазит как
недоступная. хотя всегда была доступна. я не знаю я никаких настроек не меняла
« Последнее редактирование: Апрель 07, 2012, 14:53 от Bzzzuka » Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #11 : Апрель 07, 2012, 14:59 »

не соглашусь в перепечатывании примеров кода вместо копирования смысл есть.. а вот перепечатывание ошибки вещь не особо нужная ее и так 100500 раз прочтешь пока код пытаешься исправить, так что ее копирование только убыстряет процесс..

терь Qt ругается что нет подходящей фукции для вызова
mbox->setIconPixmap(const char[10])

kambala, Вот именно при нажатии правой кнопки мыши на ошибку, "Копировать" вылазит как
недоступная. хотя всегда была доступна. я не знаю я никаких настроек не меняла
 
Код
C++ (Qt)
mbox->setIconPixmap("icon1.jpg");
на
mbox->setIconPixmap(QPixmap("icon1.jpg"));
 
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Bzzzuka
Гость
« Ответ #12 : Апрель 07, 2012, 15:03 »

Спасибки, только как раз минуты за две до вашего ответа меня угораздило саму до этого додуматься

а как правильно использовать addButton?

я нашла несколько вариантов как добавить кнопку но не один не хочет работать
« Последнее редактирование: Апрель 07, 2012, 15:08 от Bzzzuka » Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #13 : Апрель 07, 2012, 15:06 »

Спасибки, только как раз минуты за две до вашего ответа меня угораздило саму до этого додуматься
Ох, почаще бы вас так угораздивало (млин ну слово))
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Bzzzuka
Гость
« Ответ #14 : Апрель 07, 2012, 15:16 »

я думаю что то типо этого должно быть:
 mbox->addButton(QAbstractButton * Ok, AcceptRole);
но он пишет что Ok не задекларированы и еще мне кажется есть метод намного проще
« Последнее редактирование: Апрель 07, 2012, 15:35 от Bzzzuka » Записан
Страниц: [1] 2 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.208 секунд. Запросов: 23.