本文整理汇总了C++中QMenuItem类的典型用法代码示例。如果您正苦于以下问题:C++ QMenuItem类的具体用法?C++ QMenuItem怎么用?C++ QMenuItem使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了QMenuItem类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: updateTitle
//static
bool KexiContextMenuUtils::updateTitle(QPopupMenu *menu, const QString& objectName,
const QString& objectTypeName, const QString& iconName)
{
if (!menu || objectName.isEmpty() || objectTypeName.isEmpty())
return false;
const int id = menu->idAt(0);
QMenuItem *item = menu->findItem(id);
if (!item)
return false;
KPopupTitle *title = dynamic_cast<KPopupTitle *>(item->widget());
if (!title)
return false;
/*! @todo look at makeFirstCharacterUpperCaseInCaptions setting [bool]
(see doc/dev/settings.txt) */
QString realTitle( i18n("Object name : Object type", "%1 : %2")
.arg( objectName[0].upper() + objectName.mid(1) )
.arg( objectTypeName ));
if (iconName.isEmpty())
title->setTitle(realTitle);
else {
QPixmap pixmap(SmallIcon( iconName ));
title->setTitle(realTitle, &pixmap);
}
return true;
}
示例2: format
/*!
Sets a Whats This help for a certain menu item.
\arg \e id is the menu item id.
\arg \e text is the Whats This help text in rich text format ( see QStyleSheet)
\sa whatsThis()
*/
void QMenuData::setWhatsThis( int id, const QString& text )
{
QMenuData *parent;
QMenuItem *mi = findItem( id, &parent );
if ( mi ) {
mi->setWhatsThis( text );
parent->menuContentsChanged();
}
}
示例3: findItem
void KPopupMenu::changeTitle(int id, const QPixmap &icon, const QString &text)
{
QMenuItem *item = findItem(id);
if(item){
if(item->widget())
((KPopupTitle *)item->widget())->setTitle(text, &icon);
else
qWarning("KPopupMenu: changeTitle() called with non-title id %d.", id);
}
else
qWarning("KPopupMenu: changeTitle() called with invalid id %d.", id);
}
示例4: findItem
void QMenuData::setItemEnabled( int id, bool enable )
{
QMenuData *parent;
QMenuItem *mi = findItem( id, &parent );
if ( mi && (bool)mi->is_enabled != enable ) {
mi->is_enabled = enable;
#ifndef QT_NO_ACCEL
if ( mi->popup() )
mi->popup()->enableAccel( enable );
#endif
parent->menuStateChanged();
}
}
示例5:
static inline QPopupMenu *checkInsertIndex(QPopupMenu *popup, const QStringList& tags, const QString &submenu)
{
int pos = tags.findIndex(submenu);
QPopupMenu *pi = 0;
if (pos != -1)
{
QMenuItem *p = popup->findItem(pos);
pi = p?p->popup():0;
}
if (!pi) pi = popup;
return pi;
}
示例6: return
QString KPopupMenu::title(int id) const
{
if(id == -1) // obsolete
return(d->m_lastTitle);
QMenuItem *item = findItem(id);
if(item){
if(item->widget())
return(((KPopupTitle *)item->widget())->title());
else
qWarning("KPopupMenu: title() called with non-title id %d.", id);
}
else
qWarning("KPopupMenu: title() called with invalid id %d.", id);
return(QString::null);
}
示例7: reduceMenu
QPopupMenu* reduceMenu(QPopupMenu *menu)
{
if (menu->count() != 1)
{
return menu;
}
QMenuItem *item = menu->findItem(menu->idAt(0));
if (item->popup())
{
return reduceMenu(item->popup());
}
return menu;
}
示例8: setWhatsThis
/*!
Returns the Whats This help text for the specified item \e id or
QString::null if no text has been defined yet.
\sa setWhatsThis()
*/
QString QMenuData::whatsThis( int id ) const
{
QMenuItem *mi = findItem( id );
return mi? mi->whatsThis() : QString::null;
}
示例9: startURL
//.........这里部分代码省略.........
KAction *quit = KStdAction::quit( this, SLOT(slotQuit()), coll, "quit");
// remove QString::null parameter -- ellis
coll->readShortcutSettings( QString::null );
m_accel = coll->accel();
// menubar
KMenuBar *mBar = menuBar();
QPopupMenu *fileMenu = new QPopupMenu( mBar, "file" );
open->plug( fileMenu );
showInOther->plug( fileMenu );
showInSame->plug( fileMenu );
showFullscreen->plug( fileMenu );
fileMenu->insertSeparator();
slide->plug( fileMenu );
print->plug( fileMenu );
fileMenu->insertSeparator();
quit->plug( fileMenu );
QPopupMenu *editMenu = new QPopupMenu( mBar, "edit" );
coll->action("mkdir")->plug( editMenu );
coll->action("delete")->plug( editMenu );
editMenu->insertSeparator();
coll->action("properties")->plug( editMenu );
// remove the Sorting submenu (and the separator below)
// from the main contextmenu
KActionMenu *sortingMenu = static_cast<KActionMenu*>( coll->action("sorting menu"));
KActionMenu *mainActionMenu = static_cast<KActionMenu*>( coll->action("popupMenu"));
QPopupMenu *mainPopup = mainActionMenu->popupMenu();
int sortingIndex = mainPopup->indexOf( sortingMenu->itemId( 0 ) );
int separatorId = mainPopup->idAt( sortingIndex + 1 );
QMenuItem *separatorItem = mainPopup->findItem( separatorId );
if ( separatorItem && separatorItem->isSeparator() )
mainPopup->removeItem( separatorId );
mainActionMenu->remove( sortingMenu );
// add the sorting menu and a separator into the View menu
KActionMenu *viewActionMenu = static_cast<KActionMenu*>( coll->action("view menu"));
viewActionMenu->popupMenu()->insertSeparator( 0 );
sortingMenu->plug( viewActionMenu->popupMenu(), 0 ); // on top of the menu
QPopupMenu *settingsMenu = new QPopupMenu( mBar, "settings" );
configure->plug( settingsMenu );
mBar->insertItem( i18n("&File"), fileMenu );
mBar->insertItem( i18n("&Edit"), editMenu );
viewActionMenu->plug( mBar );
mBar->insertItem( i18n("&Settings"), settingsMenu );
// toolbar
KToolBar *tBar = toolBar();
tBar->setText( i18n( "Main Toolbar" ) );
coll->action("up")->plug( tBar );
coll->action("back")->plug( tBar );
coll->action("forward")->plug( tBar );
coll->action("home")->plug( tBar );
coll->action("reload")->plug( tBar );
tBar->insertSeparator();
coll->action( "short view" )->plug( tBar );
coll->action( "detailed view" )->plug( tBar );
示例10: slotSelectedLayout
void PMShell::slotSelectedLayout( int id )
{
QMenuItem* menu = m_pViewLayoutsAction->popupMenu( )->findItem( id );
PMViewLayoutManager::theManager( )->displayLayout( menu->text( ), this );
}
示例11: switch
/*! \reimp */
void QCompactStyle::drawControl( ControlElement element, QPainter *p, const QWidget *widget, const QRect &r,
const QColorGroup &g, SFlags flags, const QStyleOption& opt )
{
switch ( element ) {
case CE_PopupMenuItem:
{
if (! widget || opt.isDefault())
break;
const QPopupMenu *popupmenu = (const QPopupMenu *) widget;
QMenuItem *mi = opt.menuItem();
if ( !mi )
break;
int tab = opt.tabWidth();
int maxpmw = opt.maxIconWidth();
bool dis = !(flags & Style_Enabled);
bool checkable = popupmenu->isCheckable();
bool act = flags & Style_Active;
int x, y, w, h;
r.rect( &x, &y, &w, &h );
QColorGroup itemg = g;
if ( checkable )
maxpmw = QMAX( maxpmw, 8 ); // space for the checkmarks
int checkcol = maxpmw;
if ( mi && mi->isSeparator() ) { // draw separator
p->setPen( g.dark() );
p->drawLine( x, y, x+w, y );
p->setPen( g.light() );
p->drawLine( x, y+1, x+w, y+1 );
return;
}
QBrush fill = act? g.brush( QColorGroup::Highlight ) :
g.brush( QColorGroup::Button );
p->fillRect( x, y, w, h, fill);
if ( !mi )
return;
if ( mi->isChecked() ) {
if ( act && !dis ) {
qDrawShadePanel( p, x, y, checkcol, h,
g, TRUE, 1, &g.brush( QColorGroup::Button ) );
} else {
qDrawShadePanel( p, x, y, checkcol, h,
g, TRUE, 1, &g.brush( QColorGroup::Midlight ) );
}
} else if ( !act ) {
p->fillRect(x, y, checkcol , h,
g.brush( QColorGroup::Button ));
}
if ( mi->iconSet() ) { // draw iconset
QIconSet::Mode mode = dis ? QIconSet::Disabled : QIconSet::Normal;
if (act && !dis )
mode = QIconSet::Active;
QPixmap pixmap;
if ( checkable && mi->isChecked() )
pixmap = mi->iconSet()->pixmap( QIconSet::Small, mode, QIconSet::On );
else
pixmap = mi->iconSet()->pixmap( QIconSet::Small, mode );
int pixw = pixmap.width();
int pixh = pixmap.height();
if ( act && !dis ) {
if ( !mi->isChecked() )
qDrawShadePanel( p, x, y, checkcol, h, g, FALSE, 1, &g.brush( QColorGroup::Button ) );
}
QRect cr( x, y, checkcol, h );
QRect pmr( 0, 0, pixw, pixh );
pmr.moveCenter( cr.center() );
p->setPen( itemg.text() );
p->drawPixmap( pmr.topLeft(), pixmap );
QBrush fill = act? g.brush( QColorGroup::Highlight ) :
g.brush( QColorGroup::Button );
p->fillRect( x+checkcol + 1, y, w - checkcol - 1, h, fill);
} else if ( checkable ) { // just "checking"...
int mw = checkcol + motifItemFrame;
int mh = h - 2*motifItemFrame;
if ( mi->isChecked() ) {
SFlags cflags = Style_Default;
if (! dis)
cflags |= Style_Enabled;
if (act)
cflags |= Style_On;
drawPrimitive( PE_CheckMark, p, QRect(x + motifItemFrame + 2, y + motifItemFrame,
mw, mh), itemg, cflags, opt );
}
}
p->setPen( act ? g.highlightedText() : g.buttonText() );
//.........这里部分代码省略.........
示例12: isUpdatesEnabled
void KMenuBar::drawContents(QPainter *p)
{
// Closes the BR77113
// We need to overload this method to paint only the menu items
// This way when the KMenuBar is embedded in the menu applet it
// integrates correctly.
//
// Background mode and origin are set so late because of styles
// using the polish() method to modify these settings.
//
// Of course this hack can safely be removed when real transparency
// will be available
if(!d->topLevel)
{
QMenuBar::drawContents(p);
}
else
{
bool up_enabled = isUpdatesEnabled();
BackgroundMode bg_mode = backgroundMode();
BackgroundOrigin bg_origin = backgroundOrigin();
setUpdatesEnabled(false);
setBackgroundMode(X11ParentRelative);
setBackgroundOrigin(WindowOrigin);
p->eraseRect(rect());
erase();
QColorGroup g = colorGroup();
bool e;
for(int i = 0; i < (int)count(); i++)
{
QMenuItem *mi = findItem(idAt(i));
if(!mi->text().isNull() || mi->pixmap())
{
QRect r = itemRect(i);
if(r.isEmpty() || !mi->isVisible())
continue;
e = mi->isEnabledAndVisible();
if(e)
g = isEnabled() ? (isActiveWindow() ? palette().active() : palette().inactive()) : palette().disabled();
else
g = palette().disabled();
bool item_active = (actItem == i);
p->setClipRect(r);
if(item_active)
{
QStyle::SFlags flags = QStyle::Style_Default;
if(isEnabled() && e)
flags |= QStyle::Style_Enabled;
if(item_active)
flags |= QStyle::Style_Active;
if(item_active && actItemDown)
flags |= QStyle::Style_Down;
flags |= QStyle::Style_HasFocus;
style().drawControl(QStyle::CE_MenuBarItem, p, this, r, g, flags, QStyleOption(mi));
}
else
{
style().drawItem(p, r, AlignCenter | AlignVCenter | ShowPrefix, g, e, mi->pixmap(), mi->text());
}
}
}
setBackgroundOrigin(bg_origin);
setBackgroundMode(bg_mode);
setUpdatesEnabled(up_enabled);
}
}