Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [QT] Отображение СВОЕГО виджета на форме... 
:(
    Опции темы
Mal Hack
Дата 13.3.2008, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Доброе время суток.
Есть приложение, с объемным кодом. Грубо говоря есть N вкладок QTabWidget.
Сейчас хочу от вкладок избавиться и сделать что-то вроде панелей, как в Делфи, при этом, что очеь важно, имплементацию каждой панели выкинуть в отдельный файл...
В принципе это сделал, но никак не могу добиться корректного отображения этой панели внутри QMainWindow...
Делаю так:
Код

    frmCalibrationImpl *wid;// = new frmCalibrationImpl(0,0);
    wid =  new frmCalibrationImpl(this,0);
    wid->setParent(this);
    this->layout ()->addWidget(wid);
    this->setLayout(this->layout());

На QMainWindow есть QGridLayout, на которой пара кнопок, вот надо, чтобы виджет встал ниже их, а получается, что он перекрывает главное окно с [0,0]...
Вот как это победить? Или есть выход получше?
Спасибо.

Это сообщение отредактировал(а) Mal Hack - 13.3.2008, 18:38
PM ICQ   Вверх
SABROG
Дата 13.3.2008, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


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

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



Это то, что я называю "слепым" программированием, когда результат либо рисуется в мозгу, либо каждый раз это дело "отлаживается" до степени, пока не будет выглядить красиво. А нельзя сделать "promote to" для нужных табов, имплементации разнести по файлам, а через дизайнер спокойно редактировать слои, положение и т.д. ?


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Mal Hack
Дата 13.3.2008, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



SABROG, а я это называю созданием удобной структуры программы как в дизайнере так и по части программного кода, для последующей модификации, ибо она может быть в 100 раз больше, чем есть сейчас...

Цитата(SABROG @  13.3.2008,  18:24 Найти цитируемый пост)
А нельзя сделать "promote to" для нужных табов, имплементации разнести по файлам, а через дизайнер спокойно редактировать слои, положение и т.д. ? 

Можно, но:

Цитата(Mal Hack @  13.3.2008,  18:14 Найти цитируемый пост)
Сейчас хочу от вкладок избавиться и сделать что-то вроде панелей, как в Делфи


PM ICQ   Вверх
SABROG
Дата 13.3.2008, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


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

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



Цитата(Mal Hack @  13.3.2008,  18:14 Найти цитируемый пост)
Сейчас хочу от вкладок избавиться и сделать что-то вроде панелей, как в Делфи, при этом, что очеь важно,


За основу взят какой-нибудь базовый класс, типа QWidget ? Как выглядят панели в Delphi ?

И если пишется свой контрол, то было бы логичным почитать как создавать custom widget'ы и подключать к дизайнеру. Пример там есть - analog clock. Тогда эти дельфийские панели можно будет использовать не только в этом приложении и не только в четко выверенных пикселях внутри класса.

Это сообщение отредактировал(а) SABROG - 13.3.2008, 18:50


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Mal Hack
Дата 13.3.2008, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Цитата(SABROG @  13.3.2008,  18:47 Найти цитируемый пост)
За основу взят какой-нибудь базовый класс, типа QWidget ? 

Он самый.
Код

class frmCalibrationImpl : public QWidget, public Ui::frmCalibration
{
Q_OBJECT
    public:
        frmCalibrationImpl( QWidget * parent, Qt::WFlags f = 0 );
};


Цитата(SABROG @  13.3.2008,  18:47 Найти цитируемый пост)
 Как выглядят панели в Delphi ?

Дело не в том, как выглядят, а как работают... Грубо говоря - подносы на столе. Захотел один поставил поближе, захотел второй...


Цитата(SABROG @  13.3.2008,  18:47 Найти цитируемый пост)
И если пишется свой контрол, то было бы логичным почитать как создавать custom widget'ы и подключать к дизайнеру. Пример там есть - analog clock.

Таким образом у меня уже QMainWindow  сделан...
PM ICQ   Вверх
SABROG
Дата 13.3.2008, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


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

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



Т.к. не понятно как должны себя вести подносики на столах сказать что-то вразумительное сложно. Но вроде как похоже на проблемы с лэйаутами. Если я правильно догадываюсь, то кнопочки надо положить в свой лэйаут, прописать максимальную высоту, сделать ему top на главной форме, добавить второй лэйаут с подносиками и растянуть по оставшейся области qmainwindow.

Это сообщение отредактировал(а) SABROG - 13.3.2008, 20:33


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Mal Hack
Дата 13.3.2008, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



SABROG, я не верю, что нельзя втиснуть виджет в уже существующую раскладку
PM ICQ   Вверх
JackYF
Дата 13.3.2008, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

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



Цитата(Mal Hack @  13.3.2008,  19:40 Найти цитируемый пост)
что нельзя втиснуть виджет в уже существующую раскладку 

дык можно, только я до сих пор не понял, куда. Сохрани указатель на layout, в который нужно будет потом добавить виджет, и добавь с помощью Layout::addWidget(<...>) когда захочешь.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Mal Hack
Дата 14.3.2008, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



JackYF, разве в первом посте я не то написал?
PM ICQ   Вверх
nickless
Дата 14.3.2008, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Mal Hack @  13.3.2008,  16:14 Найти цитируемый пост)
на которой пара кнопок, вот надо, чтобы виджет встал ниже их

Код

layout->addWidget(widget, 0, y);

где y > количества виджетов выше не подходит?

И вообще, выложи скрины где оно у тебя коряво выглядит, и как выглядят эти самые "панели" в delphi, а то я например delphi видел последний раз года 3 назад 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   Вверх
Mal Hack
Дата 14.3.2008, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Так, мысли есть, на выходных попробую реализовать... Там будет видно...
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

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

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


 




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


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

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