crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Создание пунктов меню, на лету.
ubuntu
  опции профиля:
сообщение 31.10.2007, 15:08
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 32
Регистрация: 10.10.2007
Пользователь №: 9

Спасибо сказали: 0 раз(а)




Репутация:   0  


Я могу в Qt Designer'e создать меню, добавить в него те, что мне нужно пункты, назначить им сигналы и слоты, в результате чего у меня запишется это все в файл *.ui примерно следующее:
  <connection>
   <sender>actionExit</sender>
   <signal>triggered()</signal>
   <receiver>MainWindow</receiver>
   <slot>close()</slot>
   <hints>
    <hint type="sourcelabel" >
     <x>55</x>
     <y>31</y>
    </hint>
    <hint type="destinationlabel" >
     <x>199</x>
     <y>149</y>
    </hint>
   </hints>
  </connection>
Но вот возникла необходимости еще в диначмическом добавлении пунктов меню, а как это сделать ума не приложу. :(

Сообщение отредактировал ubuntu - 31.10.2007, 15:09
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 31.10.2007, 15:53
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Так:
class ...
{
   ...
   QMenu *m_pFileMenu;
   QMenu *m_pHelpMenu;

   QAction *m_pQuitAct;
   QAction *m_pAboutAct;
   ...
};

void ...::createActions()
{
    m_pQuitAct = new QAction(tr("&Quit"), this);
    m_pQuitAct->setShortcut(tr("Ctrl+Q"));
    m_pQuitAct->setStatusTip(tr("Quit the application"));
    connect( m_pQuitAct, SIGNAL(triggered()), this, SLOT(close()));

    m_pAboutAct = new QAction(tr("&About programm..."), this);
    m_pAboutAct->setStatusTip( tr("Show the application's About box"));
    connect( m_pAboutAct, SIGNAL(triggered()), this, SLOT(about()));
}

void ...::createMenus()
{
    m_pFileMenu = menuBar()->addMenu(tr("&File"));
    m_pFileMenu->addSeparator();
    m_pFileMenu->addAction( m_pQuitAct);

    m_pHelpMenu = menuBar()->addMenu(tr("&Help"));
    m_pHelpMenu->addAction( m_pAboutAct);
}
Подобный пример есть в папке Example Qt. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 11.2.2008, 12:28
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


я дизайнером пользуюсь в качестве шпаргалки, создаю например файл foo.ui в дизайнере, а потом командую в командной строке:
uic foo.ui -o foo.h

foo.h- файл С++, смотрю как делается интерисующий меня момент, посути то он в рантайме и делается, в конструкторе т.е.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 11.2.2008, 15:41
Сообщение #4


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Хе-хе, не знал, что так можно! :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Don
  опции профиля:
сообщение 29.4.2008, 18:10
Сообщение #5


Студент
*

Группа: Новичок
Сообщений: 59
Регистрация: 19.3.2008
Пользователь №: 127

Спасибо сказали: 0 раз(а)




Репутация:   0  


А как этот дизайнер вобще запустить?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 29.4.2008, 18:21
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


в виндовозе:
если программой-установщиком пользовался, то в кнопке "Пуск"->Qt...->Designer
если из исходников собирал, то %QTDIR%\bin\designer.exe
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 29.4.2008, 19:05
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Если надо, могу тоже что-то подсказать (пример уже выложен, но если возникнут проблемы, обращайся).
Знаю как на-лету менять язык пунктов меню!!!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.12.2024, 7:10