本文整理汇总了C++中QObject::installEventFilter方法的典型用法代码示例。如果您正苦于以下问题:C++ QObject::installEventFilter方法的具体用法?C++ QObject::installEventFilter怎么用?C++ QObject::installEventFilter使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QObject
的用法示例。
在下文中一共展示了QObject::installEventFilter方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: handleRequest
static SendCoinsRecipient handleRequest(PaymentServer* server, std::vector<unsigned char>& data)
{
RecipientCatcher sigCatcher;
QObject::connect(server, SIGNAL(receivedPaymentRequest(SendCoinsRecipient)),
&sigCatcher, SLOT(getRecipient(SendCoinsRecipient)));
// Write data to a temp file:
QTemporaryFile f;
f.open();
f.write((const char*)data.data(), data.size());
f.close();
// Create a QObject, install event filter from PaymentServer
// and send a file open event to the object
QObject object;
object.installEventFilter(server);
QFileOpenEvent event(f.fileName());
// If sending the event fails, this will cause sigCatcher to be empty,
// which will lead to a test failure anyway.
QCoreApplication::sendEvent(&object, &event);
QObject::disconnect(server, SIGNAL(receivedPaymentRequest(SendCoinsRecipient)),
&sigCatcher, SLOT(getRecipient(SendCoinsRecipient)));
// Return results from sigCatcher
return sigCatcher.recipient;
}
示例2: installEventFilters
void QDesignerToolBar::installEventFilters( QWidget *w )
{
if ( !w )
return;
QObjectList *l = w->queryList( "QWidget" );
for ( QObject *o = l->first(); o; o = l->next() )
o->installEventFilter( this );
delete l;
}
示例3: setTargetItem
void ItemBackground::setTargetItem(QGraphicsItem *target)
{
if (d->target && d->target != target) {
QObject *obj = 0;
if (d->target->isWidget()) {
obj = static_cast<QGraphicsWidget*>(d->target);
obj->removeEventFilter(this);
} else {
d->target->removeSceneEventFilter(this);
obj = dynamic_cast<QObject *>(d->target);
}
if (obj) {
disconnect(obj, 0, this, 0);
}
}
if (!target) {
hide();
}
bool newTarget = (d->target != target);
d->target = target;
if (target) {
setZValue(target->zValue() - 1);
if (parentItem() != target->parentItem()) {
QTransform t = transform();
setTransform(QTransform());
QRectF geom = mapToScene(geometry()).boundingRect();
setGeometry(mapFromScene(geom).boundingRect());
setTransform(t);
}
QRectF rect = target->boundingRect();
rect.moveTopLeft(mapToParent(mapFromScene(target->mapToScene(QPointF(0, 0)))));
setTarget(rect);
if (newTarget) {
QObject *obj = 0;
if (target->isWidget()) {
obj = static_cast<QGraphicsWidget*>(target);
obj->installEventFilter(this);
} else {
d->target->installSceneEventFilter(this);
obj = dynamic_cast<QObject *>(target);
}
if (obj) {
connect(obj, SIGNAL(destroyed(QObject*)), this, SLOT(targetDestroyed(QObject*)));
}
}
}
}
示例4:
co::int64 EventHub::installEventHandler( const qt::Object& watched, qt::IEventHandler* handler )
{
QObject* obj = watched.get();
if( !isObjectFiltered( obj ) )
obj->installEventFilter( this );
// sets/replaces event handler for the object
_filteredObjects[obj] = handler;
return reinterpret_cast<co::int64>( obj );
}
示例5: PreviewWidgetBase
QT_BEGIN_NAMESPACE
PreviewWidget::PreviewWidget( QWidget *parent, const char *name )
: PreviewWidgetBase( parent, name )
{
// install event filter on child widgets
QObjectList l = queryList("QWidget");
for (int i = 0; i < l.size(); ++i) {
QObject * obj = l.at(i);
obj->installEventFilter(this);
((QWidget*)obj)->setFocusPolicy(Qt::NoFocus);
}
}
示例6: installFocusFilters
void TabView::installFocusFilters()
{
QObjectList *l = queryList("QWidget");
QObjectListIt it( *l );
QObject *obj;
while ( (obj = it.current()) != 0 ) {
++it;
if ( ((QWidget*)obj)->isFocusEnabled() )
obj->installEventFilter(this);
}
delete l;
}
示例7: it
PreviewWidget::PreviewWidget( QWidget *parent, const char *name )
: PreviewWidgetBase( parent, name )
{
// install event filter on child widgets
QObjectList *l = queryList("QWidget");
QObjectListIt it(*l);
QObject * obj;
while ((obj = it.current()) != 0) {
++it;
obj->installEventFilter(this);
((QWidget*)obj)->setFocusPolicy(NoFocus);
}
}
示例8: it
WndCancel::WndCancel(QWidget *_w)
: QObject(_w, "cancel")
{
w = _w;
QObjectList *l = w->queryList("QWidget");
QObjectListIt it( *l );
QObject *obj;
while ( (obj = it.current()) != 0 ) {
++it;
obj->installEventFilter(this);
}
delete l;
}
示例9: installSniffer
void PropertiesPalette_XYZ::installSniffer(ScrSpinBox *spinBox)
{
const QList<QObject*> list = spinBox->children();
if (!list.isEmpty())
{
QListIterator<QObject*> it(list);
QObject *obj;
while (it.hasNext())
{
obj = it.next();
obj->installEventFilter(userActionSniffer);
}
}
}
示例10:
void KisInputManager::Private::CanvasSwitcher::addCanvas(KisCanvas2 *canvas)
{
QObject *canvasWidget = canvas->canvasWidget();
if (!canvasResolver.contains(canvasWidget)) {
canvasResolver.insert(canvasWidget, canvas);
d->q->setupAsEventFilter(canvasWidget);
canvasWidget->installEventFilter(this);
d->canvas = canvas;
d->toolProxy = dynamic_cast<KisToolProxy*>(canvas->toolProxy());
} else {
KIS_ASSERT_RECOVER_RETURN(d->canvas == canvas);
}
}
示例11: setEnabled
/*!
\brief En/disable the magnifier
When enabled is true an event filter is installed for
the observed widget, otherwise the event filter is removed.
\param on true or false
\sa isEnabled(), eventFilter()
*/
void QwtMagnifier::setEnabled( bool on )
{
if ( d_data->isEnabled != on )
{
d_data->isEnabled = on;
QObject *o = parent();
if ( o )
{
if ( d_data->isEnabled )
o->installEventFilter( this );
else
o->removeEventFilter( this );
}
}
}
示例12: installOnView
void medViewEventFilter::installOnView( medAbstractView * view )
{
if ( !view ) {
dtkWarn() << "medViewEventFilter::installOnView : View is NULL";
return;
}
if (m_views.contains(view)) {
dtkWarn() << "Installing View when it has already been installed";
return;
}
QObject * filterObj = medViewEventFilter::objectToFilter(view);
m_views.insert(view);
m_filterObjToView[filterObj] = view;
filterObj->installEventFilter( this );
connect(view, SIGNAL(destroyed(QObject*)), this, SLOT(onViewDestroyed(QObject*)));
}
示例13: it
RKFunctionArgHinter::RKFunctionArgHinter (RKScriptContextProvider *provider, Kate::View* view) {
RK_TRACE (COMMANDEDITOR);
RKFunctionArgHinter::provider = provider;
RKFunctionArgHinter::view = view;
const QObjectList *children = view->children ();
QObjectListIt it (*children);
QObject *obj;
while ((obj = it.current()) != 0) {
++it;
obj->installEventFilter (this);
}
arghints_popup = new QVBox (0, 0, WType_Popup);
arghints_popup->setFrameStyle (QFrame::Box | QFrame::Plain);
arghints_popup->setLineWidth (1);
arghints_popup_text = new QLabel (arghints_popup);
arghints_popup->hide ();
arghints_popup->setFocusProxy (view);
}
示例14: createAndAddWidget
/* Overloading the AbstractController one, because we don't manage the
Spacing items in the same ways */
void DroppingController::createAndAddWidget( QBoxLayout *newControlLayout,
int i_index,
buttonType_e i_type,
int i_option )
{
/* Special case for SPACERS, who aren't QWidgets */
if( i_type == WIDGET_SPACER || i_type == WIDGET_SPACER_EXTEND )
{
QLabel *label = new QLabel( this );
label->setPixmap( ImageHelper::loadSvgToPixmap( ":/toolbar/space.svg", height(), height() ) );
if( i_type == WIDGET_SPACER_EXTEND )
{
label->setSizePolicy( QSizePolicy::MinimumExpanding,
QSizePolicy::Preferred );
/* Create a box around it */
label->setFrameStyle( QFrame::Panel | QFrame::Sunken );
label->setLineWidth ( 1 );
label->setAlignment( Qt::AlignCenter );
}
else
label->setSizePolicy( QSizePolicy::Fixed,
QSizePolicy::Preferred );
/* Install event Filter for drag'n drop */
label->installEventFilter( this );
newControlLayout->insertWidget( i_index, label );
}
/* Normal Widgets */
else
{
QWidget *widg = createWidget( i_type, i_option );
if( !widg ) return;
/* Install the Event Filter in order to catch the drag */
widg->setParent( this );
widg->installEventFilter( this );
/* We are in a complex widget, we need to stop events on children too */
if( i_type >= TIME_LABEL && i_type < SPECIAL_MAX )
{
QList<QObject *>children = widg->children();
QObject *child;
foreach( child, children )
{
QWidget *childWidg;
if( ( childWidg = qobject_cast<QWidget *>( child ) ) )
{
child->installEventFilter( this );
childWidg->setEnabled( true );
}
}
/* Decorating the frames when possible */
QFrame *frame;
if( (i_type >= MENU_BUTTONS || i_type == TIME_LABEL) /* Don't bother to check for volume */
&& ( frame = qobject_cast<QFrame *>( widg ) ) != NULL )
{
frame->setFrameStyle( QFrame::Panel | QFrame::Raised );
frame->setLineWidth ( 1 );
}
}
示例15: it
RKConsole::RKConsole () : QWidget (0) {
RK_TRACE (APP);
QVBoxLayout *layout = new QVBoxLayout (this);
// create a Kate-part as command-editor
#if !KDE_IS_VERSION (3, 2, 0)
doc = static_cast<Kate::Document *> (KTextEditor::createDocument ("libkatepart", this, "Kate::Document"));
view = static_cast<Kate::View *> (doc->createView (this));
# else
doc = Kate::document (KTextEditor::createDocument ("libkatepart", this, "Kate::Document"));
RK_ASSERT (doc);
view = Kate::view (doc->createView (this));
RK_ASSERT (view);
#endif
layout->addWidget (view);
view->setDynWordWrap (false);
setFocusProxy (view);
setFocusPolicy (QWidget::StrongFocus);
/* We need to unplug kactions that were pluged to the KateViewInternal in kateview.cpp.
These actions incluse Key_Up, Key_Down, etc.
It's a bit boring to do, but there is no way to do that another way yet.
Apparently, things will be different in KDE 4.*/
const QObjectList *list = view->children ();
QObjectListIt it (*list);
QObject *obj;
KActionCollection* ac=0;
QWidget* Kvi=0; //here we store the KateViewInternal of the view, so we can uplug actions from it
while ((obj = it.current()) != 0) {
++it;
obj->installEventFilter (this);
if (obj->inherits("KActionCollection")) {
ac= (KActionCollection*) obj;
} else if(obj->inherits("KateViewInternal")) {
Kvi= (QWidget*) obj;
}
}
if (ac) {
unplugAction("move_line_up", ac);
unplugAction("move_line_down", ac);
unplugAction("move_cusor_left", ac);
unplugAction("beginning_of_line", ac);
unplugAction("backspace", ac);
unplugAction("delete_next_character", ac);
unplugAction("beginning_of_document", ac);
unplugAction("select_beginning_of_line", ac);
unplugAction("select_char_left", ac);
unplugAction("word_left", ac); //TODO deal with that one
unplugAction("select_word_left", ac); //TODO deal with that one
unplugAction("select_beginning_of_document", ac);
unplugAction("select_end_of_document", ac);
unplugAction("select_line_up", ac);
unplugAction("select_line_down", ac);
unplugAction("select_page_up", ac);
unplugAction("move_top_of_view", ac);
unplugAction("select_top_of_view", ac);
unplugAction("select_page_down", ac);
unplugAction("move_bottom_of_view", ac);
unplugAction("select_bottom_of_view", ac);
unplugAction("to_matching_bracket", ac);
unplugAction("select_matching_bracket", ac);
unplugAction("paste", ac);
} else {
RK_DO (qDebug ("Could not retrieve the view's action collection"), APP, DL_WARNING);
}
view->focusProxy()->installEventFilter(this);
view->installEventFilter(this);
doc->setModified (false);
hinter = new RKFunctionArgHinter (this, view);
setCaption (i18n ("R Console"));
part = new RKConsolePart (this);
initializeActions (part->actionCollection ());
nprefix = "> ";
iprefix = "+ ";
prefix = nprefix;
command_incomplete = false;
output_continuation = false;
doc->setUndoSteps (0);
clear ();
setRHighlighting ();
commands_history = RKSettingsModuleConsole::loadCommandHistory ();
commands_history_position = commands_history.constEnd ();
current_command = 0;
tab_key_pressed_before = false;
}