Qt, передача массива, как параметра слота

Модератор: Модераторы разделов

Аватара пользователя
ezheg
Сообщения: 258
Статус: джидай 3-го уровня
ОС: Mac OS X

Qt, передача массива, как параметра слота

Сообщение ezheg »

ниже была тема про массивы, но мне она не подходит.

вначале я делал функцию с двумерным массивом, ничего не получалось, в итоге сейчас я создал простейший класс¸ и пытаюсь реализовать слот, одним из аргументогв которого, был бы одномерный массив:

в заголовочном файле ->

Код: Выделить всё

private slots:
    void onceArray(QChar formal[], int n);


первый аргумент - собственно массив, второй - количество его элементов
простенький слот, от балды, что называется ->

Код: Выделить всё

void Array::onceArray(QChar formal[], int n)
{
    QString string;
    for(int i = 0; i < n; i++)
  string+=formal[i];
    printf("%s", string.latin1());
}


потом вызываю все это дело вот так ->

Код: Выделить всё

QChar array[ROWS];
onceArray(array, ROWS);

все по-книжному, короче..

в результате ошибки возникают там где я их совсе не жду ->

Код: Выделить всё

moc_array.cpp:86: error: ISO C++ forbids casting to an array type `QChar[]'

вот эта строчка

Код: Выделить всё

case 0: twiceArray((QChar [])*((QChar **)static_QUType_ptr.get(_o+1)),(int)static_QUType_int.get(_o+2)); break;

может кто объяснить как с этим бороться? с двумерными массивами в этой строчке parse error возникал..
заранее спасибо.
З.Ы. Если реализовать все это просто на C++ (не в Qt шных классах) то все работает на ура..
Спасибо сказали:
sdk
Бывший модератор
Сообщения: 210

Re: Qt, передача массива, как параметра слота

Сообщение sdk »

Чего-то мне лень думать :). Может ограничения moc-а.
А не проще в случае с QChar[] передавать QString, а в общем случае завести класс/структуру-обертку для массива и ее шпулять? ;)

ЗЫ. Честно скажу - твой пост просмотрел бегло, может не разобрался :). Потому как убегаю.
Серьезность - это способ сделать простые вещи сложными.
Если много знать - устанут глаза. Если много спать - то нет.
Нас никому не сбить с пути - нам пофигу куда идти.
:-)
Спасибо сказали:
Аватара пользователя
ezheg
Сообщения: 258
Статус: джидай 3-го уровня
ОС: Mac OS X

Re: Qt, передача массива, как параметра слота

Сообщение ezheg »

(sdk @ Понедельник, 11 Апреля 2005, 20:45) писал(а):а в общем случае завести класс/структуру-обертку для массива и ее шпулять?

нее, ломают меня лишние классы...
вобщем я не знаю в чем там баг был, сделал с указателями..

З.Ы. чем дальше пишу, тем больше подобного изврата возникает. чувствую, под конец вообще ничего работать не будет :)
Спасибо сказали:
Аватара пользователя
oav
Бывший модератор
Сообщения: 296

Re: Qt, передача массива, как параметра слота

Сообщение oav »

(piton3000 @ Среда, 13 Апреля 2005, 0:05) писал(а):нее, ломают меня лишние классы...
вобщем я не знаю в чем там баг был, сделал с указателями..

ну зачем лишние классы? юзай std::vector<QChar>?
З.Ы. чем дальше пишу, тем больше подобного изврата возникает. чувствую, под конец вообще ничего работать не будет :)

Ну это еще не извраты ;) B)
Спасибо сказали:
sdk
Бывший модератор
Сообщения: 210

Re: Qt, передача массива, как параметра слота

Сообщение sdk »

З.Ы. чем дальше пишу, тем больше подобного изврата возникает. чувствую, под конец вообще ничего работать не будет


Из личного опыта: лучше пусть будет больше классов, чем немножко изврата! :D
А если их еще и выстроишь красиво (читай про паттерны), так ващщще! ;)

Потому как наступает момент, когда вроде бы немного изврата превращается в кучу дерьма, в которой плаваешь до тех пор, пока не придет спасительное решение переписать все заново :). Но это далеко не всегда бывает просто ;).
Серьезность - это способ сделать простые вещи сложными.
Если много знать - устанут глаза. Если много спать - то нет.
Нас никому не сбить с пути - нам пофигу куда идти.
:-)
Спасибо сказали:
Аватара пользователя
ezheg
Сообщения: 258
Статус: джидай 3-го уровня
ОС: Mac OS X

Re: Qt, передача массива, как параметра слота

Сообщение ezheg »

Из личного опыта: лучше пусть будет больше классов, чем немножко изврата!

да вообще бред какой-то кругом - напишешь свой класс отдельно от проекта, включаешь его в проект - он всякие undefined refrence to 'bla-bla' выдает

спасительное решение переписать все заново

эта мысль сверлит меня уже несколько дней =)
вот только времени нет и мозги плавятся...:(

З.Ы. На правах флуда:
в голове укладывается стойкая мысля - Qt Designer - suxx..
может я не прав, я не проффессионал, но по-моему если все вручную с нуля писать - то гораздо лучше будет :)
Спасибо сказали:
Аватара пользователя
agbr
Сообщения: 486
ОС: openSUSE 10.2

Re: Qt, передача массива, как параметра слота

Сообщение agbr »

Товарищ, я вас не понимаю. Вы на C++ пишите или на чем? Причем тут массив? :( Настоятельно рекомендуется открыть Страуструпа и прочитать про контейнеры.
jabber: agbr@jabber.ru

против проприетарного ПО в GNU/Linux
Спасибо сказали: