本文整理汇总了C++中QToolButton::menu方法的典型用法代码示例。如果您正苦于以下问题:C++ QToolButton::menu方法的具体用法?C++ QToolButton::menu怎么用?C++ QToolButton::menu使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QToolButton
的用法示例。
在下文中一共展示了QToolButton::menu方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: createWidget
QWidget* ToolAction::createWidget( QWidget *parent )
{
QToolBar *toolBar = qobject_cast< QToolBar * >( parent );
if ( !toolBar )
return 0;
QToolButton *button = new QToolButton( toolBar );
button->setAutoRaise( true );
button->setFocusPolicy( Qt::NoFocus );
button->setIconSize( toolBar->iconSize() );
button->setToolButtonStyle( toolBar->toolButtonStyle() );
button->setPopupMode( QToolButton::DelayedPopup );
button->setMenu( new QMenu( button ) );
button->setCheckable( true );
connect(toolBar, &QToolBar::iconSizeChanged, button, &QToolButton::setIconSize);
connect(toolBar, &QToolBar::toolButtonStyleChanged, button, &QToolButton::setToolButtonStyle);
connect(button, &QToolButton::triggered, toolBar, &QToolBar::actionTriggered);
connect( button->menu(), &QMenu::triggered, this, &ToolAction::slotNewDefaultAction );
m_buttons.append( button );
if ( !m_actions.isEmpty() )
{
button->setDefaultAction( m_actions.first() );
foreach ( QAction *action, m_actions )
{
button->menu()->addAction( action );
if ( action->isChecked() )
button->setDefaultAction( action );
}
示例2: setToolbarItemState
void ZLQtApplicationWindow::setToolbarItemState(ZLToolbar::ItemPtr item, bool visible, bool enabled) {
QAction *action = myActions[&*item];
if (action != 0) {
action->setEnabled(enabled);
action->setVisible(visible);
}
switch (item->type()) {
default:
break;
case ZLToolbar::Item::MENU_BUTTON:
{
ZLToolbar::MenuButtonItem &buttonItem = (ZLToolbar::MenuButtonItem&)*item;
shared_ptr<ZLPopupData> data = buttonItem.popupData();
if (!data.isNull() && (data->id() != myPopupIdMap[&buttonItem])) {
myPopupIdMap[&buttonItem] = data->id();
QToolButton *button = myMenuButtons[&buttonItem];
QMenu *menu = button->menu();
menu->clear();
const size_t count = data->count();
for (size_t i = 0; i < count; ++i) {
menu->addAction(new ZLQtRunPopupAction(menu, data, i));
}
}
break;
}
}
}
示例3: dropEvent
void BookmarksToolBar::dropEvent(QDropEvent *event)
{
const QMimeData *mimeData = event->mimeData();
if (mimeData->hasUrls() && mimeData->hasText()) {
QList<QUrl> urls = mimeData->urls();
QString title = mimeData->text();
QUrl url = urls.at(0);
if (url.isEmpty()) {
QToolBar::dropEvent(event);
return;
}
if (title.isEmpty()) {
title = QLatin1String(url.toEncoded());
}
int row = -1;
QModelIndex parentIndex = m_root;
QToolButton *target = qobject_cast<QToolButton *>(childAt(event->pos()));
if (target && target->menu()) {
ModelMenu *menu = qobject_cast<ModelMenu *>(target->menu());
if (menu)
parentIndex = menu->rootIndex();
}
BookmarkNode *bookmark = new BookmarkNode(BookmarkNode::Bookmark);
bookmark->url = QLatin1String(url.toEncoded());
bookmark->title = title;
BookmarkNode *parent = m_bookmarksModel->node(parentIndex);
BookmarksManager *bookmarksManager = m_bookmarksModel->bookmarksManager();
bookmarksManager->addBookmark(parent, bookmark, row);
event->acceptProposedAction();
}
QToolBar::dropEvent(event);
}
示例4: role
QAccessible::Role QAccessibleToolButton::role() const
{
QAbstractButton *ab = button();
#ifndef QT_NO_MENU
QToolButton *tb = qobject_cast<QToolButton*>(ab);
if (!tb->menu())
return tb->isCheckable() ? QAccessible::CheckBox : QAccessible::PushButton;
else if (tb->popupMode() == QToolButton::DelayedPopup)
return QAccessible::ButtonDropDown;
#endif
return QAccessible::ButtonMenu;
}
示例5: foreach
QMenu *MainWindow::addMenu(QString name)
{
QList<QAction *> actions = _toolBar->actions();
foreach (QAction *action, actions)
if (action->text() == name)
{
QToolButton *toolButton = dynamic_cast<QToolButton *>(_toolBar->widgetForAction(action));
if (toolButton != nullptr)
return toolButton->menu();
}
QMenu *menu = new QMenu(name);
addMenu(menu);
return menu;
}
示例6:
QList<QAction*> DlgCustomToolbarsImp::getActionGroup(QAction* action)
{
QList<QAction*> group;
QList<QWidget*> widgets = action->associatedWidgets();
for (QList<QWidget*>::iterator it = widgets.begin(); it != widgets.end(); ++it) {
QToolButton* tb = qobject_cast<QToolButton*>(*it);
if (tb) {
QMenu* menu = tb->menu();
if (menu) {
group = menu->actions();
break;
}
}
}
return group;
}
示例7: event_fired
bool StatusBar::event_fired(EventsI::Event &e) {
AccountChanged &ac = static_cast<AccountChanged &>(e);
QString proto_name = ac.account->proto->name(),
account_id = ac.account->account_id,
account_name = ac.account->account_name;
if(ac.removed) {
if(account_buttons.contains(proto_name) && account_buttons[proto_name].contains(account_id)) {
QToolButton *tb = account_buttons[proto_name][account_id];
status_bar->removeWidget(tb);
menuMapper->removeMappings(tb->menu());
delete tb;
account_buttons[proto_name].remove(account_id);
if(account_buttons[proto_name].size() == 0)
account_buttons.remove(proto_name);
button_count--;
if(button_count <= 1)
globalButton->hide();
}
} else {
bool new_account = account_buttons.contains(proto_name) == false || account_buttons[proto_name].contains(account_id) == false;
if(new_account) {
QToolButton *tb = new QToolButton();
tb->setIcon(icons_i->get_account_status_icon(ac.account, ac.account->status));
tb->setToolTip(proto_name + ": " + account_name);
QMenu *menu = menus_i->get_menu(proto_name + ": " + account_name);
//connect(proto, SIGNAL(local_status_change(const QString &, const QString &, GlobalStatus)) , this, SLOT(local_status_change(const QString &, const QString &, GlobalStatus)));
QList<GlobalStatus> statuses = ac.account->proto->statuses();
foreach(GlobalStatus gs, statuses) {
QAction *a = menus_i->add_menu_action(proto_name + ": " + account_name, hr_status_name[gs], "Proto/" + proto_name + "/Account/" + account_id + "/" + status_name[gs]);
a->setData(QVariantList() << proto_name << account_id << gs);
connect(a, SIGNAL(triggered()), menuMapper, SLOT(map()));
menuMapper->setMapping(a, a);
}
menus_i->add_menu_action(proto_name + ": " + account_name, proto_name + ": " + account_name, "Proto/" + proto_name + "/Account/" + account_id);
menus_i->add_menu_separator(proto_name + ": " + account_name, menu->actions().at(1));
tb->setMenu(menu);
tb->setPopupMode(QToolButton::InstantPopup);
//status_bar->addWidget(tb);
toolButtonLayout->addWidget(tb);
account_buttons[proto_name][account_id] = tb;
button_count++;
if(button_count > 1)
globalButton->show();
} else {
示例8: setActionGroup
void DlgCustomToolbarsImp::setActionGroup(QAction* action, const QList<QAction*>& group)
{
// See also ActionGroup::addTo()
QList<QWidget*> widgets = action->associatedWidgets();
for (QList<QWidget*>::iterator it = widgets.begin(); it != widgets.end(); ++it) {
QToolButton* tb = qobject_cast<QToolButton*>(*it);
if (tb) {
QMenu* menu = tb->menu();
if (!menu) {
tb->setPopupMode(QToolButton::MenuButtonPopup);
tb->setObjectName(QString::fromLatin1("qt_toolbutton_menubutton"));
QMenu* menu = new QMenu(tb);
menu->addActions(group);
tb->setMenu(menu);
}
}
}
}
示例9: contextMenuRequested
void BookmarksToolBar::contextMenuRequested(const QPoint &position)
{
QToolButton *button = qobject_cast<QToolButton *>(childAt(position));
QMenu menu;
QAction *action;
if (button) {
QModelIndex index;
QVariant variant;
BookmarkToolButton *bookmarkButton = qobject_cast<BookmarkToolButton *>(button);
ModelMenu *modelMenu = qobject_cast<ModelMenu *>(button->menu());
if (modelMenu) {
index = modelMenu->rootIndex();
variant.setValue(index);
} else if (bookmarkButton) {
index = bookmarkButton->index();
variant.setValue(index);
action = menu.addAction(tr("Open"), this, SLOT(openBookmark()));
action->setData(variant);
action = menu.addAction(tr("Open in New &Tab"), this, SLOT(openBookmarkInNewTab()));
action->setData(variant);
menu.addSeparator();
}
if (variant.isValid()) {
action = menu.addAction(tr("Remove"), this, SLOT(removeBookmark()));
action->setData(variant);
}
menu.addSeparator();
}
action = menu.addAction(tr("Add Bookmark..."), this, SLOT(newBookmark()));
action = menu.addAction(tr("Add Folder..."), this, SLOT(newFolder()));
menu.exec(QCursor::pos());
}
示例10: if
QAccessibleInterface *AccessibleFactory::create(const QString &classname, QObject *object)
{
QAccessibleInterface *iface = 0;
if (!object || !object->isWidgetType())
return iface;
QWidget *widget = static_cast<QWidget*>(object);
if (false) {
#ifndef QT_NO_LINEEDIT
} else if (classname == QLatin1String("QLineEdit")) {
iface = new QAccessibleLineEdit(widget);
#endif
#ifndef QT_NO_COMBOBOX
} else if (classname == QLatin1String("QComboBox")) {
iface = new QAccessibleComboBox(widget);
#endif
#ifndef QT_NO_SPINBOX
} else if (classname == QLatin1String("QAbstractSpinBox")) {
iface = new QAccessibleAbstractSpinBox(widget);
} else if (classname == QLatin1String("QSpinBox")) {
iface = new QAccessibleSpinBox(widget);
} else if (classname == QLatin1String("QDoubleSpinBox")) {
iface = new QAccessibleDoubleSpinBox(widget);
#endif
#ifndef QT_NO_SCROLLBAR
} else if (classname == QLatin1String("QScrollBar")) {
iface = new QAccessibleScrollBar(widget);
#endif
} else if (classname == QLatin1String("QAbstractSlider")) {
iface = new QAccessibleAbstractSlider(widget);
#ifndef QT_NO_SLIDER
} else if (classname == QLatin1String("QSlider")) {
iface = new QAccessibleSlider(widget);
#endif
#ifndef QT_NO_TOOLBUTTON
} else if (classname == QLatin1String("QToolButton")) {
Role role = NoRole;
#ifndef QT_NO_MENU
QToolButton *tb = qobject_cast<QToolButton*>(widget);
if (!tb->menu())
role = tb->isCheckable() ? CheckBox : PushButton;
else if (!tb->popupMode() != QToolButton::DelayedPopup)
role = ButtonDropDown;
else
#endif
role = ButtonMenu;
iface = new QAccessibleToolButton(widget, role);
#endif // QT_NO_TOOLBUTTON
} else if (classname == QLatin1String("QCheckBox")) {
iface = new QAccessibleButton(widget, CheckBox);
} else if (classname == QLatin1String("QRadioButton")) {
iface = new QAccessibleButton(widget, RadioButton);
} else if (classname == QLatin1String("QPushButton")) {
Role role = NoRole;
QPushButton *pb = qobject_cast<QPushButton*>(widget);
#ifndef QT_NO_MENU
if (pb->menu())
role = ButtonMenu;
else
#endif
if (pb->isCheckable())
role = CheckBox;
else
role = PushButton;
iface = new QAccessibleButton(widget, role);
} else if (classname == QLatin1String("QAbstractButton")) {
iface = new QAccessibleButton(widget, PushButton);
} else if (classname == QLatin1String("QDialog")) {
iface = new QAccessibleWidgetEx(widget, Dialog);
} else if (classname == QLatin1String("QMessageBox")) {
iface = new QAccessibleWidgetEx(widget, AlertMessage);
#ifndef QT_NO_MAINWINDOW
} else if (classname == QLatin1String("QMainWindow")) {
iface = new QAccessibleMainWindow(widget);
#endif
} else if (classname == QLatin1String("QLabel") || classname == QLatin1String("QLCDNumber")) {
iface = new QAccessibleDisplay(widget);
} else if (classname == QLatin1String("QGroupBox")) {
iface = new QAccessibleDisplay(widget, Grouping);
} else if (classname == QLatin1String("QStatusBar")) {
iface = new QAccessibleWidgetEx(widget, StatusBar);
} else if (classname == QLatin1String("QProgressBar")) {
iface = new QAccessibleDisplay(widget);
} else if (classname == QLatin1String("QToolBar")) {
iface = new QAccessibleWidgetEx(widget, ToolBar, widget->windowTitle());
#ifndef QT_NO_MENUBAR
} else if (classname == QLatin1String("QMenuBar")) {
iface = new QAccessibleMenuBar(widget);
#endif
#ifndef QT_NO_MENU
} else if (classname == QLatin1String("QMenu")) {
iface = new QAccessibleMenu(widget);
} else if (classname == QLatin1String("Q3PopupMenu")) {
iface = new QAccessibleMenu(widget);
#endif
#ifndef QT_NO_ITEMVIEWS
} else if (classname == QLatin1String("QHeaderView")) {
iface = new QAccessibleHeader(widget);
} else if (classname == QLatin1String("QAbstractItemView")) {
iface = new QAccessibleItemView(widget);
//.........这里部分代码省略.........
示例11: if
QAccessibleInterface *AccessibleFactory::create(const QString &classname, QObject *object)
{
QAccessibleInterface *iface = 0;
if (!object || !object->isWidgetType())
return iface;
QWidget *widget = static_cast<QWidget*>(object);
if (false) {
#ifndef QT_NO_LINEEDIT
} else if (classname == QLatin1String("QLineEdit")) {
iface = new QAccessibleLineEdit(widget);
#endif
#ifndef QT_NO_COMBOBOX
} else if (classname == QLatin1String("QComboBox")) {
iface = new QAccessibleComboBox(widget);
#endif
#ifndef QT_NO_SPINBOX
} else if (classname == QLatin1String("QAbstractSpinBox")) {
iface = new QAccessibleAbstractSpinBox(widget);
} else if (classname == QLatin1String("QSpinBox")) {
iface = new QAccessibleSpinBox(widget);
} else if (classname == QLatin1String("QDoubleSpinBox")) {
iface = new QAccessibleDoubleSpinBox(widget);
#endif
#ifndef QT_NO_SCROLLBAR
} else if (classname == QLatin1String("QScrollBar")) {
iface = new QAccessibleScrollBar(widget);
#endif
} else if (classname == QLatin1String("QAbstractSlider")) {
iface = new QAccessibleAbstractSlider(widget);
#ifndef QT_NO_SLIDER
} else if (classname == QLatin1String("QSlider")) {
iface = new QAccessibleSlider(widget);
#endif
#ifndef QT_NO_TOOLBUTTON
} else if (classname == QLatin1String("QToolButton")) {
QAccessible::Role role = QAccessible::NoRole;
#ifndef QT_NO_MENU
QToolButton *tb = qobject_cast<QToolButton*>(widget);
if (!tb->menu())
role = tb->isCheckable() ? QAccessible::CheckBox : QAccessible::PushButton;
else if (tb->popupMode() == QToolButton::DelayedPopup)
role = QAccessible::ButtonDropDown;
else
#endif
role = QAccessible::ButtonMenu;
iface = new QAccessibleToolButton(widget, role);
#endif // QT_NO_TOOLBUTTON
} else if (classname == QLatin1String("QCheckBox")) {
iface = new QAccessibleButton(widget, QAccessible::CheckBox);
} else if (classname == QLatin1String("QRadioButton")) {
iface = new QAccessibleButton(widget, QAccessible::RadioButton);
} else if (classname == QLatin1String("QPushButton")) {
QAccessible::Role role = QAccessible::NoRole;
QPushButton *pb = qobject_cast<QPushButton*>(widget);
#ifndef QT_NO_MENU
if (pb->menu())
role = QAccessible::ButtonMenu;
else
#endif
if (pb->isCheckable())
role = QAccessible::CheckBox;
else
role = QAccessible::PushButton;
iface = new QAccessibleButton(widget, role);
} else if (classname == QLatin1String("QAbstractButton")) {
iface = new QAccessibleButton(widget, QAccessible::PushButton);
} else if (classname == QLatin1String("QDialog")) {
iface = new QAccessibleWidget(widget, QAccessible::Dialog);
} else if (classname == QLatin1String("QMessageBox")) {
iface = new QAccessibleWidget(widget, QAccessible::AlertMessage);
#ifndef QT_NO_MAINWINDOW
} else if (classname == QLatin1String("QMainWindow")) {
iface = new QAccessibleMainWindow(widget);
#endif
} else if (classname == QLatin1String("QLabel") || classname == QLatin1String("QLCDNumber")) {
iface = new QAccessibleDisplay(widget);
#ifndef QT_NO_GROUPBOX
} else if (classname == QLatin1String("QGroupBox")) {
iface = new QAccessibleGroupBox(widget);
#endif
} else if (classname == QLatin1String("QStatusBar")) {
iface = new QAccessibleDisplay(widget);
#ifndef QT_NO_PROGRESSBAR
} else if (classname == QLatin1String("QProgressBar")) {
iface = new QAccessibleProgressBar(widget);
#endif
} else if (classname == QLatin1String("QToolBar")) {
iface = new QAccessibleWidget(widget, QAccessible::ToolBar, widget->windowTitle());
#ifndef QT_NO_MENUBAR
} else if (classname == QLatin1String("QMenuBar")) {
iface = new QAccessibleMenuBar(widget);
#endif
#ifndef QT_NO_MENU
} else if (classname == QLatin1String("QMenu")) {
iface = new QAccessibleMenu(widget);
#endif
#ifndef QT_NO_ITEMVIEWS
} else if (classname == QLatin1String("QTreeView")) {
iface = new QAccessibleTree(widget);
//.........这里部分代码省略.........
示例12: updateItemWidgets
void ItemsViewDelegate::updateItemWidgets(const QList<QWidget *> widgets,
const QStyleOptionViewItem &option,
const QPersistentModelIndex &index) const
{
const KNSCore::ItemsModel *model = qobject_cast<const KNSCore::ItemsModel *>(index.model());
if (!model) {
qCDebug(KNEWSTUFF) << "WARNING - INVALID MODEL!";
return;
}
KNSCore::EntryInternal entry = index.data(Qt::UserRole).value<KNSCore::EntryInternal>();
// setup the install button
int margin = option.fontMetrics.height() / 2;
int right = option.rect.width();
QToolButton *installButton = qobject_cast<QToolButton *>(widgets.at(DelegateInstallButton));
if (installButton != 0) {
if (installButton->menu()) {
QMenu *buttonMenu = installButton->menu();
buttonMenu->clear();
installButton->setMenu(0);
buttonMenu->deleteLater();
}
bool installable = false;
bool enabled = true;
QString text;
QIcon icon;
switch (entry.status()) {
case Entry::Installed:
text = i18n("Uninstall");
icon = m_iconDelete;
break;
case Entry::Updateable:
text = i18n("Update");
icon = m_iconUpdate;
installable = true;
break;
case Entry::Installing:
text = i18n("Installing");
enabled = false;
icon = m_iconUpdate;
break;
case Entry::Updating:
text = i18n("Updating");
enabled = false;
icon = m_iconUpdate;
break;
case Entry::Downloadable:
text = i18n("Install");
icon = m_iconInstall;
installable = true;
break;
case Entry::Deleted:
text = i18n("Install Again");
icon = m_iconInstall;
installable = true;
break;
default:
text = i18n("Install");
}
installButton->setText(text);
installButton->setEnabled(enabled);
installButton->setIcon(icon);
if (installable && entry.downloadLinkCount() > 1) {
QMenu *installMenu = new QMenu(installButton);
foreach (const KNSCore::EntryInternal::DownloadLinkInformation &info, entry.downloadLinkInformationList()) {
QString text = info.name;
if (!info.distributionType.trimmed().isEmpty()) {
text + " (" + info.distributionType.trimmed() + ')';
}
QAction *installAction = installMenu->addAction(m_iconInstall, text);
installAction->setData(QPoint(index.row(), info.id));
}
installButton->setMenu(installMenu);
}
}