Поиск:

Закрытая темаСоздание новой темы Создание опроса
> [QT4] редактор ресурсов в QT Designer 4, как привязать свои слоты? 
V
    Опции темы
blackdevil
Дата 22.11.2007, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 21.1.2007

Репутация: нет
Всего: нет



Привет форум.
Есть вопросик по QT Designer 4. В третьей версии редактор исходного кода вызывался если 2 раза щелкнуть по форме. А в 4-ом никак не могу найти где он...
Собственно задача то сама вот какая - есть ui файл с фейсом программы. В програме 3 кнопочки всего. К ним надо привязать свои собственные слоты (функции). Как это лучше сделать? slot editor как я понял только стандартные слоты привязывает...Может самому создать .ui.h файл? В общем в 3-ем дизайнере все просто в 4-ом не могу понять как это сделать...
Помогите пожалста!  smile 

Это сообщение отредактировал(а) blackdevil - 22.11.2007, 23:16
PM MAIL   Вверх
archimed7592
Дата 22.11.2007, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 11
Всего: 93



Если хочешь соединять со "своими" слотами, то нужно писать plugin в designer. Другого пути, IIRC, нету(одно из "упущений" разработчиков из TT).


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
blackdevil
Дата 22.11.2007, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 21.1.2007

Репутация: нет
Всего: нет



Серьезно??? Это же полная лажа...плагин я точно не осилю...То есть собственные слоты можно подключать только в 3-ем дизайнере? Проблема в том что оупенсорсного Qt 3 под виндой нет :( Где вообще можно почитать про создание плагинов?

п.с. А если я просто напишу свой .ui.h файл с реализацией функций то при компиляции это не прокатит?

п.п.с Мне начинает казаться что в этом разделе на все вопросы отвечает только один человек ))
PM MAIL   Вверх
archimed7592
Дата 23.11.2007, 00:01 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 11
Всего: 93



Цитата(blackdevil @  22.11.2007,  23:54 Найти цитируемый пост)
Серьезно??? Это же полная лажа

Я не зря взял слово упущение в кавычки - всё логично smile.
Дизайнер для дизайнеров, Лингвист для переводчиков, Компилятор для программистов.
Ты дизайнер или программист? smile Если второе, то не сочти за труд написать пару строк в конструкторе, чтобы соединить необходимые слоты/сигналы.


Цитата(blackdevil @  22.11.2007,  23:54 Найти цитируемый пост)
плагин я точно не осилю

От силы 50 строк кода, 40 из которых шаблон(одно и то же для большинства плагинов).


Цитата(blackdevil @  22.11.2007,  23:54 Найти цитируемый пост)
п.с. А если я просто напишу свой .ui.h файл с реализацией функций то при компиляции это не прокатит?

Не совсем понял, что ты имеешь ввиду.


Цитата(blackdevil @  22.11.2007,  23:54 Найти цитируемый пост)
п.п.с Мне начинает казаться что в этом разделе на все вопросы отвечает только один человек )) 

Нас много, но мы все из под одного аккаунта отвечаем smile smile.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
nickless
Дата 23.11.2007, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 13
Всего: 181



А зачем плагин? Можно же просто ручками в коде нужного класса...

Цитата(blackdevil @  22.11.2007,  21:54 Найти цитируемый пост)
п.п.с Мне начинает казаться что в этом разделе на все вопросы отвечает только один человек ))

Дык кто в онлайне, тот и отвечает  smile 


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
archimed7592
Дата 23.11.2007, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 11
Всего: 93



Кстати, только сейчас вчитался в заголовок темы - при чём тут редактор ресурсов то? 0_о
Может быть мы вопрос не так поняли? smile


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
blackdevil
Дата 23.11.2007, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 21.1.2007

Репутация: нет
Всего: нет



Цитата

Если второе, то не сочти за труд написать пару строк в конструкторе, чтобы соединить необходимые слоты/сигналы.

Вот про это можно чуть подробней? ) В каком именно конструкторе? Имеется ввиду .cpp-шный файл с реализацией?

Чтоб было понятнее поясню: есть ui файл с кнопками старт, стоп и свойства. Я создаю свой main.cpp где в main будет создаваться QApplication и будет возвращаться app.exec(). Сюда же свои слоты забабахать и вручную их связать с сигналами?

п.с. в азвании накосячил...редактор не ресурсов а кода...

Это сообщение отредактировал(а) blackdevil - 23.11.2007, 00:15
PM MAIL   Вверх
archimed7592
Дата 23.11.2007, 00:20 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 11
Всего: 93



Цитата(blackdevil @  23.11.2007,  00:12 Найти цитируемый пост)
Вот про это можно чуть подробней?

Ты б почитал какой-нить мануал для миграции с 3-ки на 4-ку... Там некоторые вещи делаются немного иначе.

Код

// myXXX.h
#include <QXXX>
#include "ui_myXXX.h"

class MyXXX
    : public QXXX, public Ui:::MyXXX
{
    Q_OBJECT
public:
    MyXXX(QWidget *parent = 0);
   // слоты, сигналы и прочая требуха
};

//.cpp
#include "myXXX.h"

MyXXX::MyXXX(QWidget *parent)
    : QXXX(parent)
{
    setupUi(this); // просим спец класс от которого мы унаследовались нахреначить виджетов и сделать другие вещи, которые ты "проставил" делать в дизайнере
    
    connect(...); // соединяешь нужные тебе контролы с нужными слотами
}

// реализация слотов, сигналов и прочей требухи



Добавлено через 2 минуты и 47 секунд
Другими словами - конструктор писать и так придётся, а прописать в нём же пару лишних строк - IMHO, только лучше, ибо, по идее, дизайнер(если это другой человек) не обязан вдаваться в эти подробности - его задача сделать красивый внешний вид.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
blackdevil
Дата 23.11.2007, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 21.1.2007

Репутация: нет
Всего: нет



Цитата

Ты б почитал какой-нить мануал для миграции с 3-ки на 4-ку... Там некоторые вещи делаются немного иначе

да вот немогу ниче простого и ясного найти...сегодня читал help по 4-му дизайнеру там все не то что хотел увидеть...

За код огромное спасибо! Идея примерно ясна. На этом пока пойду спать а то уже времени 00.27 )) Утром попробую реализовать это все...

Еще раз archimed7592 Thanks a lot!!!!!!!
PM MAIL   Вверх
archimed7592
Дата 23.11.2007, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 11
Всего: 93



Цитата(blackdevil @  23.11.2007,  00:28 Найти цитируемый пост)
да вот немогу ниче простого и ясного найти.

Догадываюсь, что с английским ты дружишь, тогда вот:
- оффициальный мануал: http://doc.trolltech.com/4.3/porting4.html
- в частности, по данной проблеме: http://doc.trolltech.com/4.3/porting4-designer.html


Цитата(blackdevil @  23.11.2007,  00:28 Найти цитируемый пост)
На этом пока пойду спать а то уже времени 00.27 ))

Я скромно промолчу про свои полчетвёртого утра smile.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
bsa
Дата 23.11.2007, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



Цитата(blackdevil @ 23.11.2007,  00:28)
да вот немогу ниче простого и ясного найти...сегодня читал help по 4-му дизайнеру там все не то что хотел увидеть...

Очень рекомендую смотреть не только help, но и примеры.
PM   Вверх
Любитель
Дата 24.11.2007, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Если лень писать коннекты - можно ещё юзать автоконнекты smile Для этого просто добавляем слоты вида void on_<widget name>_<signal name>(<signal parameters>), setupUi, генеримый uic-ом в любом случае вызывает connectSlotsByName (ну или что-то типа того smile ).


--------------------
PM MAIL ICQ Skype   Вверх
nickless
Дата 24.11.2007, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 13
Всего: 181



Цитата(Любитель @  24.11.2007,  16:25 Найти цитируемый пост)
автоконнекты smile Для этого просто добавляем слоты вида void on_<widget name>_<signal name>(<signal parameters>)

Класс smile 
А я всё ручками писал...


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
blackdevil
Дата 25.11.2007, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 21.1.2007

Репутация: нет
Всего: нет



Ну вот ребята в силу способностей своих попробовал разобраться...вот что написал:

Есть файл prog.ui с фейсом. Там один MainWindow с парой кнопок и полей для вывода текста. И к нему прилагаются файлы:

1) prog.h
Код

#include <qmainwindow.h>
#include "ui_prog.h"

class Myprog:public QMainWindow, public Ui::Prog //my own class description
{
    Q_OBJECT
public:
    Myprog( QWidget *parent=0 );
// my own slots ( and maybe signals ) description
// TODO
};



2) prog.cpp
Код

#include <qapplication.h>
#include "prog.h"    // TODO

Myprog::Myprog( QWidjet *parent ):QMainWindow( parent )
{
    setupUi( this );
    // making my own connections of signals and slots
    // TODO 
}

// implementation of my slots ( and maybe signals )
// TODO

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    Myprog *program = new Myprog();
    program->show();
    return app.exec();




Для прикола решил скомпилить а компилятор мне вот что:
Цитата

In file included from prog.cpp:2:
prog.h:5: error: expected class-name before ‘{’ token
prog.cpp:4: error: expected `)' before ‘*’ token
make: *** [prog.o] Ошибка 1


Уж чего угодно ожидал только не таких ошибок...непойму в чем там косяк в этих строках...
PM MAIL   Вверх
archimed7592
Дата 25.11.2007, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 11
Всего: 93



Ну, для начала, инклюды писать нужно так:
#include <QMainWindow>, #include <QApplication> и т.д.


Цитата(blackdevil @  25.11.2007,  20:17 Найти цитируемый пост)
prog.h:5: error: expected class-name before ‘{’ token

Ему не нравится одно из имён унаследованных классов. Скорее всего это Ui::Prog. Посмотри в сгенерённом файлике ui_prog.h какое там реальное имя класса.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Закрытая темаСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.1063 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.