crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

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


Последние 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

 Р В Р в‚¬Р В РЎВ˜Р В Р’µР Р…ьшено Р Т‘Р С• 68%
Прикрепленное изображение
808 x 627 (60.62 килобайт)


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

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

 Р В Р в‚¬Р В РЎВ˜Р В Р’µР Р…ьшено Р Т‘Р С• 88%
Прикрепленное изображение
808 x 627 (60.62 килобайт)
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 килобайт ) Кол-во скачиваний: 259

Нет не так, как на скрине кнопочка из панели инструментов которая при нажатии делает небольшое меню...
mks Дата 20.7.2011, 22:10
  fortero смотри вложение, оно ?
Прикрепленный файл  PopUp_menu.zip ( 4.57 килобайт ) Кол-во скачиваний: 259
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 8:17