Поиск:

Ответ в темуСоздание новой темы Создание опроса
> QMenuBar & QToolBar на своей форме QDialog, перекрывают друг друга и другие контролы 
V
    Опции темы
sergey_85
Дата 14.10.2009, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 17.4.2007
Где: Россия, Челябинск

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



Привет!

В приложении создаю свою форму наследую от QDialog. На форме требуется создать главное меню, тулбар и конечно же другие контролы.
Делаю это, но вот беда - главное меню перекрывает тулбар, тулбар перекрывает меню и все это перекрывают остальные контролы на форме
(т.е. все они начинают отрисовываться от левого верхнего угла формы).  smile 

Странно, не пойму почему так, может что-то где-то пропустил?

Использую Qt 4.4.3 + MSVS2005

Код

FrmSchemaList::FrmSchemaList(QWidget *parent)
    : QDialog(parent)
{
    ui.setupUi(this);

    menuBar = new QMenuBar(this);
    
    QMenu *menu = new QMenu("Menu");
    menu->addAction("File",this,SLOT(on_btnOk_clicked()));
    menu->addSeparator();
    menu->addAction("File2",this,SLOT(on_btnOk_clicked()));

    menuBar->addMenu(menu);

    toolBar = new QToolBar(this);
    toolBar->addAction("ToolFile",this,SLOT(on_btnOk_clicked()));
}


Это сообщение отредактировал(а) sergey_85 - 14.10.2009, 20:58


--------------------
A good design always pays off.
PM MAIL   Вверх
SABROG
Дата 14.10.2009, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


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

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



Пробел в знаниях Layout классов?


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


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 17.4.2007
Где: Россия, Челябинск

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



может быть, это мой 1 проект в qt!

...хочется небольшой пример....

Это сообщение отредактировал(а) sergey_85 - 15.10.2009, 07:28


--------------------
A good design always pays off.
PM MAIL   Вверх
SABROG
Дата 15.10.2009, 07:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


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

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



Цитата(sergey_85 @ 15.10.2009,  07:21)
может быть, это мой 1 проект в qt!

...хочется небольшой пример....

Тогда будет справедливо, если ты выложишь исходники проекта целиком, посмотришь примеры в \examples\layouts и почитаешь документацию http://doc.qt.nokia.com/latest/layout.html


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


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 17.4.2007
Где: Россия, Челябинск

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



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

Следуя из принципов лей-аутов мне следует для каждой менюшки кинуть на форму виджет, а в неё помещать меню, чтобы оно не перекрывалось?


--------------------
A good design always pays off.
PM MAIL   Вверх
SABROG
Дата 15.10.2009, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


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

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



Выложи скриншот хотя бы, чтобы посмотреть, что там с чем перекрывается.


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


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 17.4.2007
Где: Россия, Челябинск

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



Итак есть пустое окно наследовал от QDialog, мне надо распложить там меню, несколько тулбаров, и дргие контролы (кнопки, списки и т.д.)

Что я делаю:
Код

FrmSchemaList::FrmSchemaList(QWidget *parent)
    : QDialog(parent)
{
    ui.setupUi(this);

            layout = new QVBoxLayout();
    menuBar = new QMenuBar(this);
    
    QMenu *menu = new QMenu("Menu");
    menu->addAction("File",this,SLOT(on_btnOk_clicked()));
    menu->addSeparator();
    QAction *act = menu->addAction("File2",this,SLOT(on_btnOk_clicked()));
    act->setCheckable(true);
    act->setChecked(true);

    menuBar->addMenu(menu);

    toolBar = new QToolBar(this);

    //toolBar->setMovable(true);
    //toolBar->setFloatable(true);

    toolBar->addAction(tr("Новая"),this,SLOT(on_btnOk_clicked()));
    toolBar->addSeparator();
    toolBar->addAction(tr("Редактировать"),this,SLOT(on_btnOk_clicked()));
    toolBar->addSeparator();
    toolBar->addAction(tr("Удалить"),this,SLOT(on_btnOk_clicked()));

    layout->addWidget(this->toolBar);
    //layout->addWidget(this->ui.frame);
    
    //
    layout->setMargin(0);
    layout->setSpacing(0);
    layout->addStretch(0);
    //
    
    layout->setMenuBar(menuBar);
    this->setLayout(layout);
}


Результат меню перекрывает дочерние контролы формы (смотри скриншот в прикреплении)

Присоединённый файл ( Кол-во скачиваний: 14 )
Присоединённый файл  3.PNG 25,55 Kb


--------------------
A good design always pays off.
PM MAIL   Вверх
SABROG
Дата 15.10.2009, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


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

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



Цитата(sergey_85 @  15.10.2009,  20:26 Найти цитируемый пост)
Что я делаю:

Как таковых проблем именно с этим кодом я не вижу, за исключением того, что использовать русский текст в названиях/заголовках (вообще есть аналог слова title в русском, чтобы и с именем QObject'a не спутать и с header'ами?), вместо того, чтобы использовать tr().
user posted image

Снова возвращаемся к тому, чтобы ты выложил компилируемый проект целиком...


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


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 17.4.2007
Где: Россия, Челябинск

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



а окно на скрине от QDialog, потому с формой QMainWindow у меня нет проблем, там менюшки создаются нормально!

Это сообщение отредактировал(а) sergey_85 - 15.10.2009, 21:08


--------------------
A good design always pays off.
PM MAIL   Вверх
SABROG
Дата 15.10.2009, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


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

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



Цитата(sergey_85 @ 15.10.2009,  21:07)
а окно на скрине от QDialog, потому с формой QMainWindow у меня нет проблем, там менюшки создаются нормально!

Я тоже от QDialog отнаследовался. Проблемы должны начаться при добавлении кнопочек и табвиджетов, которые ты не добавил в layout судя по коду. Ну - нет, так - нет...


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


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 17.4.2007
Где: Россия, Челябинск

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



ага точно создал такой же проект только с нуля и там все как и у тебя на скрине, буду дальше долбить.

ха что за ... уже 2 дней мучаюсь!

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

а не не все попробуй кинь кнопку в позицию на форме 0,0 как?

Добавлено через 6 минут и 2 секунды
так значит буду разбираться с лей-аутами

Добавлено через 11 минут и 48 секунд
Хорошо, но вот еще вопросик остался как сделать так как на скриншоте?

Это сообщение отредактировал(а) sergey_85 - 15.10.2009, 21:21

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  q.GIF 6,57 Kb


--------------------
A good design always pays off.
PM MAIL   Вверх
SABROG
Дата 15.10.2009, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


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

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



Цитата(sergey_85 @  15.10.2009,  21:16 Найти цитируемый пост)
Хорошо, но вот еще вопросик остался как сделать так как на скриншоте?


В QVBoxLayout добавляется последним QGridLayout, а уже в него добавляются остальные компоненты. Это проще сделать в дизайнере и потом просто подсмотреть код.


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


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 17.4.2007
Где: Россия, Челябинск

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



ok


--------------------
A good design always pays off.
PM MAIL   Вверх
SABROG
Дата 15.10.2009, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


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

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



Цитата(sergey_85 @ 15.10.2009,  21:38)
ok

Суровые челябинские программисты работают даже в 00:44?


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


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 17.4.2007
Где: Россия, Челябинск

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



приходиться, а ты  сам откуда?

просто эта вата одалела надо её добить уже 2 дня мозг напрягаю из-за меню с парой кнопок
в  студии под c# или builder секунд за 20 сделал бы, а ту т по ночам  smile 
пару кнопок кинул и все! работай дальше, надеюсь троли упростят мне работу в будущем

Добавлено через 2 минуты и 58 секунд
так то мы здесь все суровые...

Это сообщение отредактировал(а) sergey_85 - 15.10.2009, 21:50


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

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

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


 




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


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

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