Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Создание пунктов меню, на лету.
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
ubuntu
Я могу в 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>
Но вот возникла необходимости еще в диначмическом добавлении пунктов меню, а как это сделать ума не приложу. :(
ViGOur
Так:
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
я дизайнером пользуюсь в качестве шпаргалки, создаю например файл foo.ui в дизайнере, а потом командую в командной строке:
uic foo.ui -o foo.h

foo.h- файл С++, смотрю как делается интерисующий меня момент, посути то он в рантайме и делается, в конструкторе т.е.
ViGOur
Хе-хе, не знал, что так можно! :)
Don
А как этот дизайнер вобще запустить?
Litkevich Yuriy
в виндовозе:
если программой-установщиком пользовался, то в кнопке "Пуск"->Qt...->Designer
если из исходников собирал, то %QTDIR%\bin\designer.exe
AD
Если надо, могу тоже что-то подсказать (пример уже выложен, но если возникнут проблемы, обращайся).
Знаю как на-лету менять язык пунктов меню!!!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.