Russian Qt Forum
Ноябрь 24, 2024, 20:01 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Недопонимаю про event  (Прочитано 5434 раз)
crocus
Гость
« : Июль 30, 2007, 12:20 »

Если создавать виджет динамически, наследуясь от чего-либо - вроде понятно, и здесь неоднократно обсуждалось, а если в дизайнере - не вкуриваю, есть форма - базовый QWidget- на ней виджет graphicsView - не пойму как обработать события мыши или клавиатуры??
Записан
bigirbis
Гость
« Ответ #1 : Июль 30, 2007, 12:36 »

Смотри в сторону eventFilter
Записан
Gryz
Гость
« Ответ #2 : Июль 31, 2007, 10:26 »

Или в дизайнере щелкаешь правой клавишей по виджету и делаешь "promote to custom widget"
Записан
SABROG
Гость
« Ответ #3 : Июль 31, 2007, 10:53 »

Цитата: "Gryz"
Или в дизайнере щелкаешь правой клавишей по виджету и делаешь "promote to custom widget"


Я правильно понимаю, сначала надо подготовить .h файл с определением класса наследника, который и указывать в диалоге Promote to ... ?
Записан
crocus
Гость
« Ответ #4 : Июль 31, 2007, 11:05 »

Я валяюсь бля с содержательных ответов,  eventFilter - правда помог Улыбающийся
Записан
SABROG
Гость
« Ответ #5 : Июль 31, 2007, 11:57 »

Цитата: "crocus"
Я валяюсь бля с содержательных ответов,  eventFilter - правда помог Улыбающийся


Я спрашиваю, чтобы не создавать отдельную тему, тем более, что в этой теме мне не ответили - http://prog.org.ru/forum/topic_6030.html
А тут раз советуют, значит ответ знают...
Записан
Gryz
Гость
« Ответ #6 : Август 02, 2007, 22:56 »

Цитата: "SABROG"
Цитата: "Gryz"
Или в дизайнере щелкаешь правой клавишей по виджету и делаешь "promote to custom widget"


Я правильно понимаю, сначала надо подготовить .h файл с определением класса наследника, который и указывать в диалоге Promote to ... ?

Да

добавлено спустя 13 минут:

 Создаешь просто наследника нужного визуального компонента. Фильтров событий не всегда хватает или бывает не слишком удобно их использовать.
Записан
SABROG
Гость
« Ответ #7 : Август 03, 2007, 07:54 »

Увидел вчера, что сами тролли в Qt Assistante используют installEventFilter.
Записан
Gryz
Гость
« Ответ #8 : Август 03, 2007, 12:53 »

Имеешь ввиду реализацию ассистанта?
Записан
SABROG
Гость
« Ответ #9 : Август 03, 2007, 13:13 »

Цитата: "Gryz"
Имеешь ввиду реализацию ассистанта?


Да, в исходном коде:

Код:

HelpWindow *TabbedBrowser::createHelpWindow()
{
    MainWindow *mainWin = mainWindow();
    HelpWindow *win = new HelpWindow(mainWin, 0);
    win->setFrameStyle(QFrame::NoFrame);
    win->setPalette(palette());
    win->setSearchPaths(Config::configuration()->mimePaths());
    ui.tab->addTab(win, tr("..."));
    connect(win, SIGNAL(highlighted(QString)),
             (const QObject*) (mainWin->statusBar()), SLOT(showMessage(QString)));
    connect(win, SIGNAL(backwardAvailable(bool)),
             mainWin, SLOT(backwardAvailable(bool)));
    connect(win, SIGNAL(forwardAvailable(bool)),
             mainWin, SLOT(forwardAvailable(bool)));
    connect(win, SIGNAL(sourceChanged(QUrl)), this, SLOT(sourceChanged()));

    ui.tab->cornerWidget(Qt::TopRightCorner)->setEnabled(ui.tab->count() > 1);
win->installEventFilter(this);
win->viewport()->installEventFilter(this);
    ui.editFind->installEventFilter(this);
    return win;
}

Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.063 секунд. Запросов: 21.