Добрый вечер!
Не как не могу додуматься как мне внедрить меню в панель инструментов, нужно что бы выскакивало меню по нажатию кнопки в панели инструментов. Вот что имею, как допилить помогите пожалуйста:
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;
}
Вам нужна кнопка в QMenuBar?
void QAction::setMenu ( QMenu * menu )
Оно?
void QPushButton::setMenu ( QMenu * menu )
Оно?toolEdit->addAction(); Как тут прописать код???
fortero смотри вложение, оно ?
PopUp_menu.zip ( 4.57 килобайт )
: 226
Ну так и есть, у меня тоже кнопочка на панели инструментов которая при нажатии создаёт меню из одного действия? Что смущает, что там один пункт ? Или что на кнопочки нет картинки ?
Делать наверно можно как угодно, я просто идею показал, раньше ничего подобного не делал Мне думается что главное правильно рассчитать точку вывода меню относительно кнопки.
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;
}
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);
}
popupMenuAction = new QAction(QString("action"),this);
menu = new QMenu(QString("title"),this);
menu->addAction(popupMenuAction);
connect(popupMenuAction,SIGNAL(triggered()),this,SLOT(popupSlot()));
Мужики, хватит извращатся
Кажется решил, что то вроде этого:
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;
}
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)