Russian Qt Forum
Ноябрь 24, 2024, 09:07
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Как переопределить методы??? (при создании в дизайнере)
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Как переопределить методы??? (при создании в дизайнере) (Прочитано 6210 раз)
Racot
Гость
Как переопределить методы??? (при создании в дизайнере)
«
:
Ноябрь 29, 2011, 19:02 »
Вот я сделал новый проект в QtCreator --- Qt Widget->GUI приложение... кидаю пару кнопок на форму....создаются две кнопки класса QPushButton.....но и метод у них один......(((( и не пойму как мне переопределить методы этих кнопок....сделать их разными..........нет я конечно понимаю что можно унаследовать этот QPushButton ручками и всё сделать самому......но неужели нельзя как то автоматом как в Builder C++........или надо пользоваться фильтрами событий что бы разделить события двух объектов?
.........хелп плиз......(((
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Как переопределить методы??? (при создании в дизайнере)
«
Ответ #1 :
Ноябрь 29, 2011, 19:24 »
что значит "метод у них один"?
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Как переопределить методы??? (при создании в дизайнере)
«
Ответ #2 :
Ноябрь 29, 2011, 19:36 »
1) Ресурсы - великая фича всех времен и народов
2) Чужой код вставленный в Ваш = всегда кал
Думайте
Записан
Racot
Гость
Re: Как переопределить методы??? (при создании в дизайнере)
«
Ответ #3 :
Ноябрь 29, 2011, 19:39 »
Цитировать
что значит "метод у них один"?
в смысле что они от одного класса и метод этого класса для обоих объектов один......
Записан
Racot
Гость
Re: Как переопределить методы??? (при создании в дизайнере)
«
Ответ #4 :
Ноябрь 29, 2011, 19:43 »
ну он же функция-член)
Записан
iroln
Гость
Re: Как переопределить методы??? (при создании в дизайнере)
«
Ответ #5 :
Ноябрь 29, 2011, 19:50 »
Racot
, что за несвязный поток сознания? Какой ещё один метод у двух кнопок? Кнопки соединяются с нужными слотами с помощью сигналов. Об этом в книжках пишут, читайте.
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Как переопределить методы??? (при создании в дизайнере)
«
Ответ #6 :
Ноябрь 29, 2011, 20:29 »
ТС, если озвучишь какую ты конечную цель преследуешь, может станет проще помочь
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Rem Norton
Гость
Re: Как переопределить методы??? (при создании в дизайнере)
«
Ответ #7 :
Ноябрь 30, 2011, 01:40 »
Рискну предположить, что вопрошавший перепутал сигнал с методом. Если это так, то спасет только изучения азов Qt. Ну или найти кого нибудь с опытом и большим количеством свободного времени для организации ликбеза.
Записан
Racot
Гость
Re: Как переопределить методы??? (при создании в дизайнере)
«
Ответ #8 :
Ноябрь 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
};
Мне нужно (К ПРИМЕРУ!!!) что бы при нажатии ПРАВОЙ кнопкой мыши на одну кнопку - делалось одно (выполнялся один обработчик событий) а при нажатии на другую- другой обработчик.
Сигналы и слоты сдесь вроде как не катят......я так понимаю только обработка событий.....(сигнылы понимают только что было нажатие а какой кнопкой не воспринимают)
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Как переопределить методы??? (при создании в дизайнере)
«
Ответ #9 :
Ноябрь 30, 2011, 18:16 »
можно попробовать считывать нажатую кнопку через QApplication::mouseButtons(), но вроде ж сигнал не отправляется при нажатии на кнопку правой кнопкой мыши? в общем если нет, тогда или eventFilter или унаследуйся от QPushButton и добавь там сигнал при нажатии на кнопку правой кнопкой мыши.
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Racot
Гость
Re: Как переопределить методы??? (при создании в дизайнере)
«
Ответ #10 :
Ноябрь 30, 2011, 18:45 »
Цитировать
но вроде ж сигнал не отправляется при нажатии на кнопку правой кнопкой мыши?
да вот и я о том же....... ну теперь вроде понятно что только фильтрами или наследовать......но вроде это как то не очень удобно......я думал как то попроще........
хотя на другом форуме мне так посоветовали -
Цитировать
В классе управления формой нужно делать 2 слота. И в конструкторе их необходимо подключить к сигналу clicked() соответствующих кнопок.
щас вот думаю как это провернуть.........
Всё равно большое спасибо!!!)))
Записан
iroln
Гость
Re: Как переопределить методы??? (при создании в дизайнере)
«
Ответ #11 :
Ноябрь 30, 2011, 19:49 »
Цитировать
(сигнылы понимают только что было нажатие а какой кнопкой не воспринимают)
Странно вы как-то понимаете механизм работы сигналов/слотов. У каждого экземпляра кнопки свои собственные сигналы, которые высылаются если с этими экземплярами что-то делают. Они никак не зависимы друг от друга.
Записан
Racot
Гость
Re: Как переопределить методы??? (при создании в дизайнере)
«
Ответ #12 :
Ноябрь 30, 2011, 20:32 »
Сигналы и слоты есть не на все события.......если ткнуть правой кнопкой мыши над кнопкой - никакой сигнал не полетит.......а обработчик событий может перехватить....... вот что я имел ввиду....)
Записан
iroln
Гость
Re: Как переопределить методы??? (при создании в дизайнере)
«
Ответ #13 :
Ноябрь 30, 2011, 21:45 »
Racot
Вас фиг поймёшь, вы так пишете, что трудно понять, в чём проблема заключается.
В этом случае проще и удобнее всего использовать фильтр событий. Этот механизм и был придуман как гибкая возможность обрабатывать события без наследования классов.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...