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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2011, 12:21   #1
iukash
учу английский...
Форумчанин
 
Аватар для iukash
 
Регистрация: 04.04.2009
Сообщений: 480
По умолчанию Проблема с отображением окошка меню

В общем проблема в следующем, делаю меню
Цитата:
QMenu* * pmnu * = new QMenu("&Menu")
, пристыковываю к экземпляру класса
Цитата:
MainWindow w;
w.menuBar()->addMenu(pmnu);
и если сразу вывожу
Цитата:
w.show();
то все нормально окно меню, которое открывается при нажатии на кнопку "меню" открывается в том месте где окно приложения.
А если пристыковываю к сцене
Цитата:
QGraphicsScene *scene = new QGraphicsScene(QRectF(0,0,1022,766) );
scene->addWidget(&w);
QGraphicsView view(scene);
view.resize(1024,768);
view.show();
то оно отображается постоянно в одном месте (в левом верхнем углу) независимо от положения окна приложения(т.е. кнопку "меню" нажимаю в одном месте а окно меню вылазиет в другом месте). Что делать?
"Мы можем что-то изменить и своими силами..."
"Начнешь с себя, примером ближнему поможешь..."
iukash вне форума Ответить с цитированием
Старый 20.01.2011, 09:48   #2
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Не распарсил это:
Код:
QMenu* * pmnu * = new QMenu("&Menu")
Указатель на указатель домножить на адрес?
Зачем понадобилось класть такой виджет в сцену?
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 20.01.2011, 12:00   #3
iukash
учу английский...
Форумчанин
 
Аватар для iukash
 
Регистрация: 04.04.2009
Сообщений: 480
По умолчанию

На самом деле так
Цитата:
QMenu *pmnu= new QMenu("&Menu")
Видимо при написании ошибся.
Как зачем, хочу меню, а в остальном окне сцену, решил меню в сцену положить, но возникла такая проблема!
"Мы можем что-то изменить и своими силами..."
"Начнешь с себя, примером ближнему поможешь..."
iukash вне форума Ответить с цитированием
Старый 20.01.2011, 12:24   #4
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Сцена совсем не для этого нужна! В сцену обычно кладут всякие итемы, например геометрические фигуры. Можно и виджеты, но вы не этого хотите.

Вот, смотри: http://rghost.ru/4006401.view

Это QMainWindow. Слева и справа у него доки. Сверху меню и тулбар. Снизу статусбар. В центре -- центральный виджет. В данном случае это унаследованный от QGraphicsView виджет. Вот картинка здесь есть: http://doc.trolltech.com/4.7-snapshot/mainwindow.html

Меню клади как клал (addMenu), а вью зафигачь в центр вот так: w.setCentralWindget(view).

Кстати, все объекты Qt надо создавать динамически (new), а у тебя мэин виндов почему-то является обычной переменной.

А вообще, налицо непонимание лэйаутов, дерева виджетов и вообще кучи вещей. Почитай первые несколько глав Шлее.

И работу с меню ты неправильно представляешь. Это всё надо делать так: создаём QAction'ы и добавляем их в меню. Вот так:

Цитата:
new_act = new QAction(QIcon::fromTheme("document-new"),
tr("&New"), this);
new_act->setShortcuts(QKeySequence::New);
new_act->setStatusTip(tr("Create a new file"));
connect(new_act, SIGNAL(triggered()), this, SLOT(newFile()));

fileMenu = menuBar()->addMenu(tr("&File"));
fileMenu->addAction(new_act);
Примеры про главное окно: http://doc.trolltech.com/4.7-snapsho...ainwindow.html

Но, повторюсь, тебе надо начать с азов.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su

Последний раз редактировалось Obey-Kun; 20.01.2011 в 12:36.
Obey-Kun вне форума Ответить с цитированием
Старый 20.01.2011, 14:04   #5
iukash
учу английский...
Форумчанин
 
Аватар для iukash
 
Регистрация: 04.04.2009
Сообщений: 480
По умолчанию

Книгу Шлее я уже прочитал, может после первого прочтения что-то упустил! А если я не написал про QAction это не значит что я их не создал. А вообще спасибо за ответ!
"Мы можем что-то изменить и своими силами..."
"Начнешь с себя, примером ближнему поможешь..."
iukash вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с отображением. Simel HTML и CSS 1 07.01.2011 01:57
Проблема с отображением 3д обьекта vaflea Общие вопросы C/C++ 19 26.05.2010 01:15
Проблема с отображением времени HAMMAN Помощь студентам 2 22.04.2009 16:17
проблема с отображением DBGrid gotex БД в Delphi 12 04.06.2008 01:06
Проблема с отображением текста ALR Свободное общение 0 18.02.2007 20:08