crossplatform.ru

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

3 страниц V  < 1 2 3 >  
Ответить в данную темуНачать новую тему
> Создание своего виджета, Освнованого на QWT
BRE
  опции профиля:
сообщение 1.11.2009, 19:24
Сообщение #11


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


MyGraph * Graph1 = new MyGraph(ui.centralWidget);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rcdimon
  опции профиля:
сообщение 1.11.2009, 19:32
Сообщение #12


Студент
*

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

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




Репутация:   0  


Нет Это не в main. Я создал в Visual Studio новый проект с QT. Там уже был код и на его базе. Лучше не делать? Вот что получилось вообще вцелом

main.cpp
#include <QtGui/QApplication>
#include "a1392.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    A1392 w;
    w.show();
    return a.exec();
}


a1392.h
#ifndef A1392_H
#define A1392_H

#include <QtGui>
#include <QtGui/QMainWindow>
#include "ui_a1392.h"



class A1392 : public QMainWindow
{
    Q_OBJECT

public:
    A1392(QWidget *parent = 0, Qt::WFlags flags = 0);
    ~A1392();
    

private:
    Ui::A1392Class ui;

};

#endif // A1392_H


a1392.cpp
#include "a1392.h"
#include "MyGraph.h"

A1392::A1392(QWidget *parent, Qt::WFlags flags)
    : QMainWindow(parent, flags)
{
    ui.setupUi(this);
    
    
    MyGraph * Graph1 = new MyGraph(ui.centralWidget);

}

A1392::~A1392()
{

}


MyGraph.cpp
#include "MyGraph.h"

MyGraph::MyGraph(QWidget *parent)
    : QwtPlot(parent)
{
    
}

MyGraph::~MyGraph()
{
    
}


MyGraph.h
#ifndef MyGraph_H
#define MyGraph_H

#include <QtGui/QWidget>
#include <QPainter>
#include <qwt_plot_canvas.h>
#include <qwt_painter.h>
#include <qwt_plot.h>
#include <qwt_plot_curve.h>

class MyGraph : public QwtPlot
{
    Q_OBJECT

public:
    MyGraph(QWidget * = 0);
    ~MyGraph();

};

#endif // MyGraph_H


Исправил #include <QPainter>
Исправил MyGraph * Graph1 = new MyGraph(ui.centralWidget);

Ничего не изменилось (
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 1.11.2009, 19:37
Сообщение #13


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


Проект не линкуется?
Похоже moc не подхватил один из файлов. Сделай еще раз для проекта:
qmake
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rcdimon
  опции профиля:
сообщение 1.11.2009, 19:42
Сообщение #14


Студент
*

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

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




Репутация:   0  


Цитата
Проект не линкуется?
Похоже moc не подхватил один из файлов. Сделай еще раз для проекта:
qmake


Извиняюсь за глупый вопрос... Но как это сделать в Visual Studio? Нажимал очистить решение, перестроить решение, но результата не принесло.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 1.11.2009, 20:33
Сообщение #15


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(rcdimon @ 1.11.2009, 22:42) *
Но как это сделать в Visual Studio?
а пёс его знает.
Цитата(rcdimon @ 1.11.2009, 22:32) *
MyGraph * Graph1 = new MyGraph(ui.centralWidget);
тут вообще надобы так сделать:
MyGraph * Graph1 = new MyGraph();
setCentralWidget(Graph1);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rcdimon
  опции профиля:
сообщение 1.11.2009, 20:44
Сообщение #16


Студент
*

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

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




Репутация:   0  


Цитата
тут вообще надобы так сделать:


Я хочу на форме разместить 5 таких виджетов друг под другом. У моего устройства 5 датчиков и мне надо видеть данные с них одновременно и синхронизированно.

Цитата
а пёс его знает.

Ну попробую сейчас создать новый проект. Добавлю в него тот же код, проверим.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 1.11.2009, 20:57
Сообщение #17


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(rcdimon @ 1.11.2009, 23:44) *
Я хочу на форме разместить 5 таких виджетов друг под другом.
создай виджет, создай 5 графиков (MyGraph), создай компоновщик, помести в компоновщик графики. Установи виджету компоновщик, установи виджет в качестве центрального (setCentralWidget) никаких родителей руками не нужно указывать

Цитата(rcdimon @ 1.11.2009, 23:44) *
Ну попробую сейчас создать новый проект.
см. аргументы командной строки qmake, там можно создавать из pro-файла файл проекта для студии.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rcdimon
  опции профиля:
сообщение 1.11.2009, 21:03
Сообщение #18


Студент
*

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

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




Репутация:   0  


Цитата
Ну попробую сейчас создать новый проект. Добавлю в него тот же код, проверим.


Ничего не изменилось. Может что-то не так настроено, собрано, подключено?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 1.11.2009, 21:06
Сообщение #19


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


rcdimon, у тебя примеры Qwt компилируются и работают?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rcdimon
  опции профиля:
сообщение 1.11.2009, 21:15
Сообщение #20


Студент
*

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

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




Репутация:   0  


Цитата
rcdimon, у тебя примеры Qwt компилируются и работают?

Да. И другая своя программа с использованием QWT тоже работает.

Заметил, что если убрать Q_OBJECT и сделать так

#ifndef MyGraph_H
#define MyGraph_H

#include <QtGui/QWidget>
#include <QPainter>
#include <qwt_plot_canvas.h>
#include <qwt_painter.h>
#include <qwt_plot.h>
#include <qwt_plot_curve.h>

class MyGraph : public QwtPlot
{

public:
    MyGraph(QWidget * = 0);
    ~MyGraph();

};

#endif // MyGraph_H


То приложение запускается и на форме появляется график QWT. Но ведь Q_OBJECT не будут работать слоты и сигналы... Какой-то конфликт кароче у них
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 27.12.2024, 23:22