crossplatform.ru

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


  Ответ в QMenu внутри QToolBar
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
fortero Дата 21.7.2011, 1:26
  Кажется решил, что то вроде этого:
QToolBar *TableCl::createMenuBar(){
    QToolBar *toolEdit = new QToolBar(this);

        QPixmap pix(32, 32);//Тестовый код
        pix.fill(Qt::green);//
        QPixmap pix2(32, 32);
        pix2.fill(Qt::darkBlue);
        QPixmap pix3(32, 32);
        pix3.fill(Qt::red);
        
        QMenu *menu = new QMenu("One", toolEdit);
        menu->setIcon(pix3);
        menu->addAction("A");
        menu->addAction("B");
        menu->addAction("C");

        
    toolEdit->addSeparator();
    toolEdit->addAction(QIcon(":/img/add.png"), tr("Добавить запись в базу \"Клавиша Insert\""), this, SLOT(addSkIt_slot()));
    toolEdit->addAction(QIcon(":/img/edit.png"), tr("Редактировать запись \"Клавиша Enter\""), this, SLOT(editBarBut_slot()));
    toolEdit->addAction(QIcon(":/img/del.png"), tr("Удалить запись \"Клавиша Delete\""), this, SLOT(delete_slot()));
    toolEdit->addSeparator();
    toolEdit->addAction(pix, tr("Обновить таблицу"), this, SLOT(refresh_slot()));
    toolEdit->addAction(pix2, tr("Поиск"), this, SLOT(finds_slot()));
    toolEdit->addSeparator();
    toolEdit->addAction(menu->menuAction());
    toolEdit->addSeparator();
    
    
    return toolEdit;
}

fortero Дата 21.7.2011, 0:55
 
Цитата(Litkevich Yuriy @ 20.7.2011, 23:49) *
Мужики, хватит извращатся
Цитата(fortero @ 21.7.2011, 0:11) *
Вот такого типа меню внутри панели инструментов:
Это просто вложеные меню (точнее QAction), когда есть вложения, кнопка на панели инструментов сама себя так ведёт.

П.С.
Вы почему такие не любопытные (читай скушные), есть же примеры и демки в Qt, их первым делом пощупать надо было.
%QTDIR%\demos\mainwindow

Прикрепленное изображение


А как данный пример к моему коду пристековать, голова уже не варит(
Litkevich Yuriy Дата 20.7.2011, 23:49
  Мужики, хватит извращатся
Цитата(fortero @ 21.7.2011, 0:11) *
Вот такого типа меню внутри панели инструментов:
Это просто вложеные меню (точнее QAction), когда есть вложения, кнопка на панели инструментов сама себя так ведёт.

П.С.
Вы почему такие не любопытные (читай скушные), есть же примеры и демки в Qt, их первым делом пощупать надо было.
%QTDIR%\demos\mainwindow

Прикрепленное изображение
mks Дата 20.7.2011, 23:31
 
QToolBar *TableCl::createMenuBar(){
    QToolBar *toolEdit = new QToolBar(this);

        QPixmap pix(32, 32);//Тестовый код
        pix.fill(Qt::green);//
        QPixmap pix2(32, 32);
        pix2.fill(Qt::darkBlue);
        QPixmap pix3(32, 32);
        pix3.fill(Qt::red);
        
    toolEdit->addSeparator();
    toolEdit->addAction(QIcon(":/img/add.png"), tr("Добавить запись в базу \"Клавиша Insert\""), this, SLOT(addSkIt_slot()));
    toolEdit->addAction(QIcon(":/img/edit.png"), tr("Редактировать запись \"Клавиша Enter\""), this, SLOT(editBarBut_slot()));
    toolEdit->addAction(QIcon(":/img/del.png"), tr("Удалить запись \"Клавиша Delete\""), this, SLOT(delete_slot()));
    toolEdit->addSeparator();
    toolEdit->addAction(pix, tr("Обновить таблицу"), this, SLOT(refresh_slot()));
    toolEdit->addAction(pix2, tr("Поиск"), this, SLOT(finds_slot()));
    toolEdit->addSeparator();
    // прописать как то так:
    toolEdit->addAction(QIcon(":/img/popupmenu.png"), tr("вызвать меню"), this, SLOT(showPopUpmenu_slot()));
    toolEdit->addSeparator();
    return toolEdit;
}
в этом же объекте прописать слот реакции:
void TableCl::showPopUpmenu_slot()
{
  menu->popup(this->mapToGlobal(QPoint(2,20)),0);
}

и в конструкторе TableCl что то типа такого:
  
  popupMenuAction = new QAction(QString("action"),this);
  menu = new QMenu(QString("title"),this);
  menu->addAction(popupMenuAction);
  connect(popupMenuAction,SIGNAL(triggered()),this,SLOT(popupSlot()));

popupSlot() тоже прописать либо в этом же классе либо в каком то другом. И не забыть прописать в классе переменные popupMenuAction и menu. Вроде всё подробно написал :)
fortero Дата 20.7.2011, 22:51
 
Цитата(mks @ 20.7.2011, 22:41) *
Делать наверно можно как угодно, я просто идею показал, раньше ничего подобного не делал :) Мне думается что главное правильно рассчитать точку вывода меню относительно кнопки.

Помогите пожалуйста, вот кусочик кода отвечающий за панели инструментов, нужно ещё одну кнопочку привентить с минюшкой:
QToolBar *TableCl::createMenuBar(){
    QToolBar *toolEdit = new QToolBar(this);

        QPixmap pix(32, 32);//Тестовый код
        pix.fill(Qt::green);//
        QPixmap pix2(32, 32);
        pix2.fill(Qt::darkBlue);
        QPixmap pix3(32, 32);
        pix3.fill(Qt::red);
        
    toolEdit->addSeparator();
    toolEdit->addAction(QIcon(":/img/add.png"), tr("Добавить запись в базу \"Клавиша Insert\""), this, SLOT(addSkIt_slot()));
    toolEdit->addAction(QIcon(":/img/edit.png"), tr("Редактировать запись \"Клавиша Enter\""), this, SLOT(editBarBut_slot()));
    toolEdit->addAction(QIcon(":/img/del.png"), tr("Удалить запись \"Клавиша Delete\""), this, SLOT(delete_slot()));
    toolEdit->addSeparator();
    toolEdit->addAction(pix, tr("Обновить таблицу"), this, SLOT(refresh_slot()));
    toolEdit->addAction(pix2, tr("Поиск"), this, SLOT(finds_slot()));
    toolEdit->addSeparator();
    //toolEdit->addAction(Как тут прописать код для кнопки меню???);
    toolEdit->addSeparator();
    return toolEdit;
}
mks Дата 20.7.2011, 22:41
  Делать наверно можно как угодно, я просто идею показал, раньше ничего подобного не делал :) Мне думается что главное правильно рассчитать точку вывода меню относительно кнопки.
fortero Дата 20.7.2011, 22:33
 
Цитата(mks @ 20.7.2011, 22:31) *
Ну так и есть, у меня тоже кнопочка на панели инструментов которая при нажатии создаёт меню из одного действия? Что смущает, что там один пункт ? Или что на кнопочки нет картинки ?

Ой блин, извеняюсь, я протупил я подумал что это менюшная кнопка а не инструментальная. А как в коде сделать так как у Вас?
mks Дата 20.7.2011, 22:31
  Ну так и есть, у меня тоже кнопочка на панели инструментов которая при нажатии создаёт меню из одного действия? Что смущает, что там один пункт ? Или что на кнопочки нет картинки ?
fortero Дата 20.7.2011, 22:19
 
Цитата(mks @ 20.7.2011, 22:10) *
fortero смотри вложение, оно ?
Прикрепленный файл  PopUp_menu.zip ( 4.57 килобайт ) Кол-во скачиваний: 226

Нет не так, как на скрине кнопочка из панели инструментов которая при нажатии делает небольшое меню...
mks Дата 20.7.2011, 22:10
  fortero смотри вложение, оно ?
Прикрепленный файл  PopUp_menu.zip ( 4.57 килобайт ) Кол-во скачиваний: 226
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 14:39