Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2011, 10:45   #1
tumanovalex
Пользователь
 
Регистрация: 07.03.2011
Сообщений: 83
Вопрос QT - передача данных между виджетами

В классе MainWindow создал структуру public
Код:
В классе MainWindows создал структуру public
struct LineParam      
{                     
  int numXmax;        
  int numYmax;        
  QColor clrLineColor;
  QColor clrLineFon;  
  int numLineSize;    
  int numLineSpace;   
}lp;
В структуры записываю значения элементов управления на основной форме и хотел бы передать эту структуру для рисования линиий на виджете тестскрин. В файле testscreen.h:
Код:
class TestScreen : public QWidget
{
    Q_OBJECT

public:
    explicit TestScreen(QWidget *parent = 0, MainWindow::LineParam lp = 0);
    ~TestScreen();

private:
    Ui::TestScreen *ui;
    MainWindow::LineParam lptst;
};
В файле testscreen.cpp:
Код:
TestScreen::TestScreen(QWidget *parent, MainWindow::LineParam lp) :
    QWidget(parent),
    ui(new Ui::TestScreen)
{
    ui->setupUi(this);
    lptst = lp;
}
Получаю ошибку: testscreen.h:16: ошибка: default argument for parameter of type 'MainWindow::LineParam' has type 'int'. Подскажите, пожалуйста, как правильно передавать структуру.
tumanovalex вне форума Ответить с цитированием
Старый 25.05.2011, 18:05   #2
Farrel
Форумчанин
 
Аватар для Farrel
 
Регистрация: 21.04.2010
Сообщений: 144
По умолчанию

Попробуй просто убрать параметры по умолчанию. У меня такая ерунда была. Почему так выходит, сам к сожалению не знаю. Внешне всё выгладит вроде правильно.
Farrel вне форума Ответить с цитированием
Старый 26.05.2011, 01:18   #3
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Как ты себе представляешь такой код?
Код:
LineParma my_param;
my_param = 0;
0 — это int. У тебя описана конвертация 0 в LineParam?

Хочешь значение по умолчанию? Напиши так:
Код:
explicit TestScreen(QWidget *parent = 0, MainWindow::LineParam lp = MainWindow::LineParam());
Не хочешь? Пиши так:
Код:
explicit TestScreen(MainWindow::LineParam lp, QWidget *parent = 0);
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 26.05.2011, 20:14   #4
tumanovalex
Пользователь
 
Регистрация: 07.03.2011
Сообщений: 83
По умолчанию

Спасибо за код, попробую.
tumanovalex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача данных между формами! MyXa Общие вопросы .NET 1 03.02.2011 18:15
Передача данных между класами Alena-b-v Общие вопросы C/C++ 3 01.09.2010 18:32
Передача данных между формами katbka Общие вопросы C/C++ 1 16.05.2010 20:45
Передача данных между страницами IQ-40 Безопасность, Шифрование 0 28.01.2008 11:32
передача данных между процедурами Неясыть Общие вопросы Delphi 15 18.11.2007 12:54