Название: Как переопределить методы??? (при создании в дизайнере) Отправлено: Racot от Ноябрь 29, 2011, 19:02 Вот я сделал новый проект в QtCreator --- Qt Widget->GUI приложение... кидаю пару кнопок на форму....создаются две кнопки класса QPushButton.....но и метод у них один......(((( и не пойму как мне переопределить методы этих кнопок....сделать их разными..........нет я конечно понимаю что можно унаследовать этот QPushButton ручками и всё сделать самому......но неужели нельзя как то автоматом как в Builder C++........или надо пользоваться фильтрами событий что бы разделить события двух объектов????.........хелп плиз......((( :-[
Название: Re: Как переопределить методы??? (при создании в дизайнере) Отправлено: kambala от Ноябрь 29, 2011, 19:24 что значит "метод у них один"?
Название: Re: Как переопределить методы??? (при создании в дизайнере) Отправлено: Igors от Ноябрь 29, 2011, 19:36 1) Ресурсы - великая фича всех времен и народов
2) Чужой код вставленный в Ваш = всегда кал Думайте Название: Re: Как переопределить методы??? (при создании в дизайнере) Отправлено: Racot от Ноябрь 29, 2011, 19:39 Цитировать что значит "метод у них один"? в смысле что они от одного класса и метод этого класса для обоих объектов один...... Название: Re: Как переопределить методы??? (при создании в дизайнере) Отправлено: Racot от Ноябрь 29, 2011, 19:43 ну он же функция-член)
Название: Re: Как переопределить методы??? (при создании в дизайнере) Отправлено: iroln от Ноябрь 29, 2011, 19:50 Racot, что за несвязный поток сознания? Какой ещё один метод у двух кнопок? Кнопки соединяются с нужными слотами с помощью сигналов. Об этом в книжках пишут, читайте.
Название: Re: Как переопределить методы??? (при создании в дизайнере) Отправлено: kambala от Ноябрь 29, 2011, 20:29 ТС, если озвучишь какую ты конечную цель преследуешь, может станет проще помочь
Название: Re: Как переопределить методы??? (при создании в дизайнере) Отправлено: Rem Norton от Ноябрь 30, 2011, 01:40 Рискну предположить, что вопрошавший перепутал сигнал с методом. Если это так, то спасет только изучения азов Qt. Ну или найти кого нибудь с опытом и большим количеством свободного времени для организации ликбеза.
Название: Re: Как переопределить методы??? (при создании в дизайнере) Отправлено: Racot от Ноябрь 30, 2011, 17:49 Да уж наверно я как то не очень ясно выразился.....ещё одна попытка))
делаю GUI проект на основе MainWindow. Кладу на форму 2 кнопки. В файле ui_mainwindow.h следующее: class Ui_MainWindow { public: QWidget *centralWidget; QPushButton *pushButton; QPushButton *pushButton_2; QMenuBar *menuBar; QToolBar *mainToolBar; QStatusBar *statusBar; void setupUi(QMainWindow *MainWindow) { .................. } // setupUi void retranslateUi(QMainWindow *MainWindow) { ............... } // retranslateUi }; Мне нужно (К ПРИМЕРУ!!!) что бы при нажатии ПРАВОЙ кнопкой мыши на одну кнопку - делалось одно (выполнялся один обработчик событий) а при нажатии на другую- другой обработчик. Сигналы и слоты сдесь вроде как не катят......я так понимаю только обработка событий.....(сигнылы понимают только что было нажатие а какой кнопкой не воспринимают) Название: Re: Как переопределить методы??? (при создании в дизайнере) Отправлено: kambala от Ноябрь 30, 2011, 18:16 можно попробовать считывать нажатую кнопку через QApplication::mouseButtons(), но вроде ж сигнал не отправляется при нажатии на кнопку правой кнопкой мыши? в общем если нет, тогда или eventFilter или унаследуйся от QPushButton и добавь там сигнал при нажатии на кнопку правой кнопкой мыши.
Название: Re: Как переопределить методы??? (при создании в дизайнере) Отправлено: Racot от Ноябрь 30, 2011, 18:45 Цитировать но вроде ж сигнал не отправляется при нажатии на кнопку правой кнопкой мыши? да вот и я о том же....... ну теперь вроде понятно что только фильтрами или наследовать......но вроде это как то не очень удобно......я думал как то попроще........ хотя на другом форуме мне так посоветовали - Цитировать В классе управления формой нужно делать 2 слота. И в конструкторе их необходимо подключить к сигналу clicked() соответствующих кнопок. щас вот думаю как это провернуть......... Всё равно большое спасибо!!!))) Название: Re: Как переопределить методы??? (при создании в дизайнере) Отправлено: iroln от Ноябрь 30, 2011, 19:49 Цитировать (сигнылы понимают только что было нажатие а какой кнопкой не воспринимают) Странно вы как-то понимаете механизм работы сигналов/слотов. У каждого экземпляра кнопки свои собственные сигналы, которые высылаются если с этими экземплярами что-то делают. Они никак не зависимы друг от друга.Название: Re: Как переопределить методы??? (при создании в дизайнере) Отправлено: Racot от Ноябрь 30, 2011, 20:32 Сигналы и слоты есть не на все события.......если ткнуть правой кнопкой мыши над кнопкой - никакой сигнал не полетит.......а обработчик событий может перехватить....... вот что я имел ввиду....)
Название: Re: Как переопределить методы??? (при создании в дизайнере) Отправлено: iroln от Ноябрь 30, 2011, 21:45 Racot
Вас фиг поймёшь, вы так пишете, что трудно понять, в чём проблема заключается. В этом случае проще и удобнее всего использовать фильтр событий. Этот механизм и был придуман как гибкая возможность обрабатывать события без наследования классов. |