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
|
Просмотр темы полностью (откроется в новом окне) |
|