crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V   1 2 3 >  
Ответить в данную темуНачать новую тему
> Прога вылетает при сборке под Вин, в Лин все Ок. Qt-4.4.0 + qwt-5.1.1, Прога вылетает при сборке под Вин, в Лин все Ок. Qt-4.4.0 + qwt-5.1.1
niXman
  опции профиля:
сообщение 18.6.2008, 14:24
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 169
Регистрация: 18.6.2008
Пользователь №: 204

Спасибо сказали: 1 раз(а)




Репутация:   0  


Программа, в Линукс работает. Но в Виндавз вылетает с сообщением в консоль:
Цитата
QWidget: Must construct a QApplication before a QPaintDevice

Собираю из сырцов.
Использую:
qt-4.4.0 opensource
qwt-5.1.1

В чем трабла ? Подскажите.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 18.6.2008, 14:50
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Без кода думаю не разобраться, попробуй пример:
#include <qapplication.h>
#include <qwt_plot.h>
#include <qwt_plot_canvas.h>
#include <math.h>

void
getSomeValues (double *x, double *y1, double *y2)
{
  for (int i = 0; i < 100; i++)
    {
      x[i] = double (i);
      y1[i] = sqrt (x[i]);
      y2[i] = cos (x[i]);
    }
}

int
main (int argc, char **argv)
{
  QApplication a (argc, argv);

  double x[100], y1[100], y2[100];    // x and y values

  QwtPlot *myPlot = new QwtPlot ();

// add curves
  QwtPlotCurve *curve1 = new QwtPlotCurve (myPlot, "Curve 1");
  QwtPlotCurve *curve2 = new QwtPlotCurve (myPlot, "Curve 2");

  getSomeValues (x, y1, y2);

// copy the data into the curves
  curve1->setData (x, y1, 100);
  curve2->setData (x, y2, 100);

  myPlot->insertCurve (curve1);
  myPlot->insertCurve (curve2);

  a.setMainWidget (myPlot);
  myPlot->show ();

// finally, refresh the plot
  myPlot->replot ();
  return a.exec ();
}
у тебя работает?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
niXman
  опции профиля:
сообщение 18.6.2008, 15:18
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 169
Регистрация: 18.6.2008
Пользователь №: 204

Спасибо сказали: 1 раз(а)




Репутация:   0  


ViGOur - В твоем коде куча ошибок.
Например:
У "QwtPlot" нет метода "insertCurve".
У "QwtPlotCurve" нет конструктора "QwtPlotCurve(QwtPlot*, QString& )"
Вот мой код:
int main(int argc, char ** argv) {
    QApplication app( argc, argv );
    DialogImpl win;
    win.show();
    app.connect( &app, SIGNAL( lastWindowClosed() ), &app, SLOT( quit() ) );
    return app.exec();
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 18.6.2008, 15:36
Сообщение #4


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Все есть, только в более старых версиях, когда искал пример не обратил внимания на его версию.

А в какой момент у тебя создается QwtPlot?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
niXman
  опции профиля:
сообщение 18.6.2008, 15:53
Сообщение #5


Участник
**

Группа: Участник
Сообщений: 169
Регистрация: 18.6.2008
Пользователь №: 204

Спасибо сказали: 1 раз(а)




Репутация:   0  


ViGOur - А хз, интерфейс делал с помощью Десигнера. Это где-то в мос-ах... (((
Что за *опа ?!!!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrew Selivanov
  опции профиля:
сообщение 18.6.2008, 15:57
Сообщение #6


Участник
**

Группа: Участник
Сообщений: 249
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 3

Спасибо сказали: 15 раз(а)




Репутация:   6  


Цитата(niXman @ 18.6.2008, 16:53) *
ViGOur - А хз, интерфейс делал с помощью Десигнера. Это где-то в мос-ах... (((
Что за *опа ?!!!

Поищи у себя статические QPixmap-ы...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
niXman
  опции профиля:
сообщение 18.6.2008, 16:05
Сообщение #7


Участник
**

Группа: Участник
Сообщений: 169
Регистрация: 18.6.2008
Пользователь №: 204

Спасибо сказали: 1 раз(а)




Репутация:   0  


Вот кусок кода из файла формы, который uic создает:
CODE
void setupUi(QDialog *Dialog) {
if (Dialog->objectName().isEmpty())
Dialog->setObjectName(QString::fromUtf8("Dialog"));
Dialog->resize(507, 561);
QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(Dialog->sizePolicy().hasHeightForWidth());
Dialog->setSizePolicy(sizePolicy);
QIcon icon;
icon.addPixmap(QPixmap(QString::fromUtf8("artsfftscope.png")), QIcon::Normal, QIcon::Off);
Dialog->setWindowIcon(icon);
plotter = new QwtPlot(Dialog);
plotter->setObjectName(QString::fromUtf8("plotter"));
plotter->setGeometry(QRect(0, 10, 481, 200));
plotter->setCursor(QCursor(Qt::ArrowCursor));
plotter->setContextMenuPolicy(Qt::NoContextMenu);
plotter->setAutoFillBackground(false);
plotter->setFrameShape(QFrame::NoFrame);
plotter->setFrameShadow(QFrame::Plain);
groupBox_2 = new QGroupBox(Dialog);
groupBox_2->setObjectName(QString::fromUtf8("groupBox_2"));
groupBox_2->setGeometry(QRect(10, 490, 411, 51));
filename = new QLineEdit(groupBox_2);
filename->setObjectName(QString::fromUtf8("filename"));
filename->setGeometry(QRect(10, 20, 351, 23));
selfile = new QPushButton(groupBox_2);
selfile->setObjectName(QString::fromUtf8("selfile"));
selfile->setGeometry(QRect(375, 19, 27, 27));
QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Minimum);
sizePolicy1.setHorizontalStretch(0);
sizePolicy1.setVerticalStretch(0);
sizePolicy1.setHeightForWidth(selfile->sizePolicy().hasHeightForWidth());
selfile->setSizePolicy(sizePolicy1);
groupBox_3 = new QGroupBox(Dialog);
groupBox_3->setObjectName(QString::fromUtf8("groupBox_3"));
groupBox_3->setGeometry(QRect(10, 440, 491, 51));
LeftCh = new QToolButton(groupBox_3);
LeftCh->setObjectName(QString::fromUtf8("LeftCh"));
LeftCh->setGeometry(QRect(310, 20, 26, 25));
label_4 = new QLabel(groupBox_3);
label_4->setObjectName(QString::fromUtf8("label_4"));
label_4->setGeometry(QRect(373, 30, 64, 20));
Cels = new QToolButton(groupBox_3);
Cels->setObjectName(QString::fromUtf8("Cels"));
Cels->setGeometry(QRect(170, 20, 26, 25));
BackGround = new QToolButton(groupBox_3);
BackGround->setObjectName(QString::fromUtf8("BackGround"));
BackGround->setGeometry(QRect(40, 20, 26, 25));
label = new QLabel(groupBox_3);
label->setObjectName(QString::fromUtf8("label"));
label->setGeometry(QRect(10, 30, 31, 18));
label_3 = new QLabel(groupBox_3);
label_3->setObjectName(QString::fromUtf8("label_3"));
label_3->setGeometry(QRect(250, 30, 57, 18));
RightCh = new QToolButton(groupBox_3);
RightCh->setObjectName(QString::fromUtf8("RightCh"));
RightCh->setGeometry(QRect(440, 20, 26, 25));
label_2 = new QLabel(groupBox_3);
label_2->setObjectName(QString::fromUtf8("label_2"));
label_2->setGeometry(QRect(120, 30, 41, 18));
stopbutton = new QPushButton(Dialog);
stopbutton->setObjectName(QString::fromUtf8("stopbutton"));
stopbutton->setEnabled(false);
stopbutton->setGeometry(QRect(430, 514, 31, 27));
QIcon icon1;
icon1.addPixmap(QPixmap(QString::fromUtf8("cr22-action-tool_pause.png")), QIcon::Normal, QIcon::Off);
stopbutton->setIcon(icon1);
startbutton = new QPushButton(Dialog);
startbutton->setObjectName(QString::fromUtf8("startbutton"));
startbutton->setGeometry(QRect(470, 514, 31, 27));
QIcon icon2;
icon2.addPixmap(QPixmap(QString::fromUtf8("cr22-action-tool_resume.png")), QIcon::Normal, QIcon::Off);
startbutton->setIcon(icon2);
right_enabled = new QCheckBox(Dialog);
right_enabled->setObjectName(QString::fromUtf8("right_enabled"));
right_enabled->setGeometry(QRect(490, 110, 16, 22));
right_enabled->setChecked(true);
left_enabled = new QCheckBox(Dialog);
left_enabled->setObjectName(QString::fromUtf8("left_enabled"));
left_enabled->setGeometry(QRect(490, 40, 16, 22));
left_enabled->setChecked(true);
groupBox = new QGroupBox(Dialog);
groupBox->setObjectName(QString::fromUtf8("groupBox"));
groupBox->setGeometry(QRect(10, 340, 491, 91));

retranslateUi(Dialog);

QMetaObject::connectSlotsByName(Dialog);
} // setupUi

А что код не сворачивается ? Как сделать?

Сообщение отредактировал Litkevich Yuriy - 18.6.2008, 17:29
Причина редактирования: Используем тэг codebox для длинных файлов
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 18.6.2008, 16:36
Сообщение #8


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

Спасибо сказали: 69 раз(а)




Репутация:   17  


Попробуй собрать в дебаге и запустить под отладчиком.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrew Selivanov
  опции профиля:
сообщение 18.6.2008, 16:54
Сообщение #9


Участник
**

Группа: Участник
Сообщений: 249
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 3

Спасибо сказали: 15 раз(а)




Репутация:   6  


Приложение может падать еще до main-a, при инициализации твоего статического кода или библиотечного. Проверь с той ли версией библиотек собираешь (Debug/Release, /MD для студии итп). Очень похоже на классическую ошибку со статическими объектами...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
niXman
  опции профиля:
сообщение 18.6.2008, 17:52
Сообщение #10


Участник
**

Группа: Участник
Сообщений: 169
Регистрация: 18.6.2008
Пользователь №: 204

Спасибо сказали: 1 раз(а)




Репутация:   0  


Запустил в Дебаггере. Узнал строку в которой это происходит. Но понятней мне от этого не стало.
void setupUi(QDialog *Dialog)
{
    if (Dialog->objectName().isEmpty())
        Dialog->setObjectName(QString::fromUtf8("Dialog"));
    Dialog->resize(507, 561);
    QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
    sizePolicy.setHorizontalStretch(0);
    sizePolicy.setVerticalStretch(0);
    sizePolicy.setHeightForWidth(Dialog->sizePolicy().hasHeightForWidth());
    Dialog->setSizePolicy(sizePolicy);
    QIcon icon;
    icon.addPixmap(QPixmap(QString::fromUtf8("artsfftscope.png")), QIcon::Normal, QIcon::Off);
    Dialog->setWindowIcon(icon);
    plotter = new QwtPlot(Dialog); // Вылетает вот в этой строке !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    plotter->setObjectName(QString::fromUtf8("plotter"));
    plotter->setGeometry(QRect(0, 10, 481, 200));
    plotter->setCursor(QCursor(Qt::ArrowCursor));
    plotter->setContextMenuPolicy(Qt::NoContextMenu);
    plotter->setAutoFillBackground(false);
    plotter->setFrameShape(QFrame::NoFrame);
    plotter->setFrameShadow(QFrame::Plain);
    groupBox_2 = new QGroupBox(Dialog);
    groupBox_2->setObjectName(QString::fromUtf8("groupBox_2"));
    groupBox_2->setGeometry(QRect(10, 490, 411, 51));
    filename = new QLineEdit(groupBox_2);
    filename->setObjectName(QString::fromUtf8("filename"));
    filename->setGeometry(QRect(10, 20, 351, 23));
    selfile = new QPushButton(groupBox_2);
    selfile->setObjectName(QString::fromUtf8("selfile"));
    selfile->setGeometry(QRect(375, 19, 27, 27));
    QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Minimum);
    sizePolicy1.setHorizontalStretch(0);
    sizePolicy1.setVerticalStretch(0);
    sizePolicy1.setHeightForWidth(selfile->sizePolicy().hasHeightForWidth());
    selfile->setSizePolicy(sizePolicy1);
    groupBox_3 = new QGroupBox(Dialog);
    groupBox_3->setObjectName(QString::fromUtf8("groupBox_3"));
    groupBox_3->setGeometry(QRect(10, 440, 491, 51));
    LeftCh = new QToolButton(groupBox_3);
    LeftCh->setObjectName(QString::fromUtf8("LeftCh"));
    LeftCh->setGeometry(QRect(310, 20, 26, 25));
    label_4 = new QLabel(groupBox_3);
    label_4->setObjectName(QString::fromUtf8("label_4"));
    label_4->setGeometry(QRect(373, 30, 64, 20));
    Cels = new QToolButton(groupBox_3);
    Cels->setObjectName(QString::fromUtf8("Cels"));
    Cels->setGeometry(QRect(170, 20, 26, 25));
    BackGround = new QToolButton(groupBox_3);
    BackGround->setObjectName(QString::fromUtf8("BackGround"));
    BackGround->setGeometry(QRect(40, 20, 26, 25));
    label = new QLabel(groupBox_3);
    label->setObjectName(QString::fromUtf8("label"));
    label->setGeometry(QRect(10, 30, 31, 18));
    label_3 = new QLabel(groupBox_3);
    label_3->setObjectName(QString::fromUtf8("label_3"));
    label_3->setGeometry(QRect(250, 30, 57, 18));
    RightCh = new QToolButton(groupBox_3);
    RightCh->setObjectName(QString::fromUtf8("RightCh"));
    RightCh->setGeometry(QRect(440, 20, 26, 25));
    label_2 = new QLabel(groupBox_3);
    label_2->setObjectName(QString::fromUtf8("label_2"));
    label_2->setGeometry(QRect(120, 30, 41, 18));
    stopbutton = new QPushButton(Dialog);
    stopbutton->setObjectName(QString::fromUtf8("stopbutton"));
    stopbutton->setEnabled(false);
    stopbutton->setGeometry(QRect(430, 514, 31, 27));
    QIcon icon1;
    icon1.addPixmap(QPixmap(QString::fromUtf8("cr22-action-tool_pause.png")), QIcon::Normal, QIcon::Off);
    stopbutton->setIcon(icon1);
    startbutton = new QPushButton(Dialog);
    startbutton->setObjectName(QString::fromUtf8("startbutton"));
    startbutton->setGeometry(QRect(470, 514, 31, 27));
    QIcon icon2;
    icon2.addPixmap(QPixmap(QString::fromUtf8("cr22-action-tool_resume.png")), QIcon::Normal, QIcon::Off);
    startbutton->setIcon(icon2);
    right_enabled = new QCheckBox(Dialog);
    right_enabled->setObjectName(QString::fromUtf8("right_enabled"));
    right_enabled->setGeometry(QRect(490, 110, 16, 22));
    right_enabled->setChecked(true);
    left_enabled = new QCheckBox(Dialog);
    left_enabled->setObjectName(QString::fromUtf8("left_enabled"));
    left_enabled->setGeometry(QRect(490, 40, 16, 22));
    left_enabled->setChecked(true);
    groupBox = new QGroupBox(Dialog);
    groupBox->setObjectName(QString::fromUtf8("groupBox"));
    groupBox->setGeometry(QRect(10, 340, 491, 91));

    retranslateUi(Dialog);

    QMetaObject::connectSlotsByName(Dialog);
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V   1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 23.4.2024, 11:40