![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
ViGOur |
![]()
Сообщение
#1
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
всем привет. Для этого как я понимаю нужно использовать класс: QMetaObject .
может я собираюсь написать об очевидной штуке, но однако меня она удивила. 1. если соединить один и тот же сигнал с одним и тем же слотом несколько раз(n), и вызвать сигнал один раз, то слот вызовется столько раз сколько соединений с этим сигналом мы сделали(n).... 2. если разъединить сигнал со слотом - то рушатся все соединения этого сигнала с этим слотом. ... известен ли кому нибудь метод узнать соединен ли сигнал со слотом и если соединен то сколько раз??? Сообщение отредактировал ViGOur - 1.12.2008, 19:34 |
|
|
kwisp |
![]()
Сообщение
#2
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
я вот поискал в QMetaObject и не нашел
![]() и больше того начал крутить функции данного класса. у меня в 4,4,3 версии QMetaObject::indexOfSlot(SLOT(myslot())) всегда возвращает -1не зависимо от того соединен слот или нет есть он или нет. короче странное что то... я остановился на том что нет механизма узнать соединен ли слот с сигналом и сколько таковых соединений. |
|
|
ViGOur |
![]()
Сообщение
#3
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
тоесть примерно при таком вызове:
Цитата(cpp) this->metaObject()->indexOfSlot(SLOT(myslot())); ???нужно будет завтра самомы проверить, а то qt под рукой нет. |
|
|
kwisp |
![]()
Сообщение
#4
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
да вызов и такой пробовал и не только такой.
|
|
|
ViGOur |
![]()
Сообщение
#5
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
kwisp |
![]()
Сообщение
#6
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
ViGOur |
![]()
Сообщение
#7
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
kwisp |
![]()
Сообщение
#8
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
из переписки с технической поддержкой:
" ... Unfortunately we dont have any such convenience function which tells how many times a signal is being connected with a slot. Indeed I dont see any good use case for such function. I can create a suggestion task for our developers if I get some generic good use case for such functionality. Regards, I. Omair -- Irfan Omair Support Engineer Nokia Inc, Redwood City http://www.trolltech.com " думаю тему можно закрыть. ![]() |
|
|
kuler |
![]()
Сообщение
#9
|
![]() Танцор диско ![]() ![]() ![]() Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: ![]() ![]() ![]() |
а в чем собсна проблема? это как в анекдоте: бабка врачу: сынок я когда делаю вот так (нагибается), то у меня спина болит. Врач: дык не делайте так. Следующий!
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#10
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
kuler |
![]()
Сообщение
#11
|
![]() Танцор диско ![]() ![]() ![]() Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: ![]() ![]() ![]() |
а в чем собсна проблема? в этом:если соединить один и тот же сигнал с одним и тем же слотом несколько раз(n), и вызвать сигнал один раз, то слот вызовется столько раз сколько соединений с этим сигналом мы сделали ну так я ж и ответил - не фиг соединять по пять раз |
|
|
Litkevich Yuriy |
![]()
Сообщение
#12
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
kwisp |
![]()
Сообщение
#13
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
ну так я ж и ответил - не фиг соединять по пять раз к примеру: в зависимости набора событий, на определенный хот кей программа должна реагировать по разному, короче в зависимости от обстоятельств у меня сигнал высылаемый фильтром событий клавиатуры соединяется то с одним обработчиком(слотом) то с другим то с третим, при это с остальными разъединяется. короче трудно все корректно рассказать , но не так то просто было сообразить почему слот вызывается иногда 3 а иногда четыре раза ![]() и вообще ты хочешь сказать ты это раньше знал или для тебя это было очевидно и ясно как день??? |
|
|
kuler |
![]()
Сообщение
#14
|
![]() Танцор диско ![]() ![]() ![]() Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: ![]() ![]() ![]() |
для тебя это было очевидно и ясно как день?? "если соединить один и тот же сигнал с одним и тем же слотом несколько раз(n), и вызвать сигнал один раз, то слот вызовется столько раз сколько соединений с этим сигналом мы сделали(n)...." - про это не знал я остановился на том что нет механизма узнать соединен ли слот с сигналом и сколько таковых соединений. а вот это вовсе не обязательно (хотя конечно проще), можно написать свой класс который будет следить за коннектами (по одному объекту на коннект или тупо поставить в соответствие каждому коннекту свой счетчик) |
|
|
kwisp |
![]()
Сообщение
#15
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
несогласен, зачем свой счетчик если в библиотеке все для этого есть и разработчикам просто метод дописать надо???
думаю это задача разработчиков, следить за колличеством соединений. а мне так проще разъединить и соединить по новой, разъединение убивает все предыдущие соединения. тем более что в моем проекте происходит это не часто. если честно я и класс и тупое сопоставление каждого коннекта со счетчиком слабо себе представляю... kuler, ты наверное не знаешь но тема перенесена из "Секреты и интересные возможности Qt" - это просто обнаруженная интересная штука, а во все не проблема. |
|
|
kuler |
![]()
Сообщение
#16
|
![]() Танцор диско ![]() ![]() ![]() Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: ![]() ![]() ![]() |
из мануала про connect
A signal is emitted for every connection you make, so if you duplicate a connection, two signals will be emitted. You can always break a connection using disconnect(). |
|
|
Litkevich Yuriy |
![]()
Сообщение
#17
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
предлагаю этой темой и тем чем вызвана данная дискусия пополнить ЧаВО: Сигналы и слоты
|
|
|
Константин |
![]()
Сообщение
#18
|
![]() Студент ![]() Группа: Участник Сообщений: 69 Регистрация: 9.2.2009 Пользователь №: 539 Спасибо сказали: 15 раз(а) Репутация: ![]() ![]() ![]() |
поведение очевидное - всего лишь нужно читать документацию.
для задачи, описанной kwisp, сигналы-слоты - не совсем верный подход. он применим только если альтернативные состояния можно уместить в энум или пару вариантов - тогда
в противном же случае советую использовать customEvent: Цитата void QObject::customEvent ( QEvent * event ) [virtual protected]
This event handler can be reimplemented in a subclass to receive custom events. Custom events are user-defined events with a type value at least as large as the QEvent::User item of the QEvent::Type enum, and is typically a QEvent subclass. The event is passed in the event parameter. |
|
|
kwisp |
![]()
Сообщение
#19
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Константин,
здравствуйте. у меня два вопроса к вам. Цитата ....для задачи, описанной kwisp, ... 1. Из каких источников вы знаете мою задачу и можете ли её сформулировать яснее? Цитата ...сигналы-слоты - не совсем верный подход... 2. Почему для моей задачи "не совсем верный"(звучит так же как чуть чуть беременна ![]() заранее спасибо. |
|
|
berserk |
![]()
Сообщение
#20
|
![]() Студент ![]() Группа: Участник Сообщений: 44 Регистрация: 9.2.2009 Пользователь №: 540 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
а в слоте счетчик описать нельзя?
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#21
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
kwisp |
![]()
Сообщение
#22
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
berserk,
примерчик подскажешь, мне уже не нужно, просто ради интерса.... |
|
|
Константин |
![]()
Сообщение
#23
|
![]() Студент ![]() Группа: Участник Сообщений: 69 Регистрация: 9.2.2009 Пользователь №: 539 Спасибо сказали: 15 раз(а) Репутация: ![]() ![]() ![]() |
1.
к примеру: в зависимости набора событий, на определенный хот кей программа должна реагировать по разному, короче в зависимости от обстоятельств у меня сигнал высылаемый фильтром событий клавиатуры соединяется то с одним обработчиком(слотом) то с другим то с третим, при это с остальными разъединяется. задача-пример, если угодно. 2. "не совсем верный подход" потому, что он в общем случае верный и реализуется проще, но в конкретных случаях этот подход неоптимален (частое "передёргивание" коннектов - не есть гут) |
|
|
kwisp |
![]()
Сообщение
#24
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
ну QVariant& тож слать не гут
а вот если бы не тупил в одно время с коннектами не нашел бы самого интереснного.- нет стандартного механизма счетчика соединений сигнала со слотом. Цитата частое "передёргивание" коннектов - не есть гут 100% так но кто сказал что оно частое? + тема называется "Есть ли метод, чтобы узнать соединен ли сигнал со слотом?" а не "Как мне сделать то то и то то??? помогите есть ли у кого идеи." внимание вопрос: метод есть? уже выснили что стандартного нет. или все же есть? |
|
|
Litkevich Yuriy |
![]()
Сообщение
#25
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Мысль вслух:
1) когда мы в своей программе создаем соединения, то все эти соединения описываются в файле moc_***.cpp. 2) когда мы создаем несколько одинаковых соединений, то слот будет вызван столько раз сколько соединений - значит счетчик есть. Может стоит попытаться работать с этими moc_***.cpp файлами? |
|
|
kwisp |
![]()
Сообщение
#26
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Litkevich Yuriy,
Цитата значит счетчик есть. думаю не факт. смотрел исходники moc??? там не все гладко. да и вообще нужно ли это? если только для интересу. ![]() получается надо просто написать ИЗБЕГАЙТЕ РЕАЛИЗАЦИИ ДИНАМИЧЕСКОЙ МАШИНЫ СОСТОЯНИЙ с помощью сигналов и слотов дабы избежать проблем с много кратным соединением. используйте колбэки что угодно но не сигналы и слоты даже если соединения редко используемые. я приводил ответ троллех-тех.поддержки. "нету и не зачем" я так понял. хотя если спмостоятельно написать мини патч и отправить тролям с подробным обоснованием нафига это надо. думаю они будут рады и даже скажут спасибо. ![]() |
|
|
kuler |
![]()
Сообщение
#27
|
![]() Танцор диско ![]() ![]() ![]() Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: ![]() ![]() ![]() |
разве нельзя создать маленький класс в котором будет счетчик и через который будет производиться коннект, а потом наследовать от него?
|
|
|
kwisp |
![]()
Сообщение
#28
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Константин |
![]()
Сообщение
#29
|
![]() Студент ![]() Группа: Участник Сообщений: 69 Регистрация: 9.2.2009 Пользователь №: 539 Спасибо сказали: 15 раз(а) Репутация: ![]() ![]() ![]() |
Мысль вслух: 1) когда мы в своей программе создаем соединения, то все эти соединения описываются в файле moc_***.cpp. 2) когда мы создаем несколько одинаковых соединений, то слот будет вызван столько раз сколько соединений - значит счетчик есть. Может стоит попытаться работать с этими moc_***.cpp файлами? 1. соединения не описываются нигде. QObject::connect соединяет сигнал со слотом (или с сигналом) рантайм - по имени/индексу сигнала/слота 2. счётчика как такового нет, есть список коннектов, в котором при желании можно было бы посчитать определённые индексы я приводил ответ троллех-тех.поддержки. "нету и не зачем" я так понял. хотя если спмостоятельно написать мини патч и отправить тролям с подробным обоснованием нафига это надо. думаю они будут рады и даже скажут спасибо. ![]() так и есть. а можем мы предварительно услышать обоснование "нафига оно надо"? почему-то мне кажается, что весомо аргументировать не получится ) |
|
|
kwisp |
![]()
Сообщение
#30
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Константин,
действительно, а смогу ли я обосновать необходимость такового счетчика??? я думаю что смогу. есть функция QObject::connect() и QObject::disconnect() следовательно предполагается возможность динамического соединение и разъединение сигналов и слотов??? не правда ли??? почему я не могу узнать сколько раз вызовется мой слот при одном вызове сигнала господа трольтеховцы (0-вообще не соединен на данный момент, 1,2,3 ... 10)??? вот и все обоснование. только конечно более литературно написать. другой вопрос насколько это необходимо вообще. если ты четко следишь за состояниями объектов, и пользуешь другие методы отключения блокировки сигналов в каких то состояниях получается ты выполняешь немного осмелюсь сказать библиотечную задачу. они взялись реализовать сигналы слоты взялись сделать как коннект так и дисконнект ну и уже бы и предоставили возможность узнать сколько соединений. вообще не хочу разводить полемику по данному поводу ,Константин, изначально был просто пост в теме "секреты и интересные возможности Qt" где я описал найденный минисекрет и отсутсвие может быть ненужной возможности. вот и все это просто интересный факт а не способ и метод решения моей задачи моя машина уже как сто лет написана без динамических соединений. а обнаружен факт случайно и в ассистенте 3 версии как минимум не описан. просто факт как есть и все. говорю же если кому интересно может рыть и писать в этой теме свои решения это странности. |
|
|
berserk |
![]()
Сообщение
#31
|
![]() Студент ![]() Группа: Участник Сообщений: 44 Регистрация: 9.2.2009 Пользователь №: 540 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
kwisp |
![]()
Сообщение
#32
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
berserk |
![]()
Сообщение
#33
|
![]() Студент ![]() Группа: Участник Сообщений: 44 Регистрация: 9.2.2009 Пользователь №: 540 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Книжка "QT. Профессиональное программирование на С++" стр 45 (немного под себя только модифицировать). Больше примеров не знаю... Самому написать щас некогда. совршенно случайно книга на столе оказалась. не понял твоей идеи. можешь поподробнее свои мысли изложить??? сколько конектов произошло, столько раз и слот получит сигнал (в слоте счётчик), но если нужно посчитать сколько коннектов было с конкретным сигналом такой способ не пойдёт... ЗЫ: если я правильно понял задачу |
|
|
kwisp |
![]()
Сообщение
#34
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
berserk,
думаю счетчик в слоте ничем не поможет. ну выяснил ты что сигнал вызывает слот 2 или третий раз что не выполнишь действия которые в слоте? а после разъединения счетчик в слоте надо будет сбрасывать... както не доконца понятна идея.... |
|
|
berserk |
![]()
Сообщение
#35
|
![]() Студент ![]() Группа: Участник Сообщений: 44 Регистрация: 9.2.2009 Пользователь №: 540 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
berserk, думаю счетчик в слоте ничем не поможет. ну выяснил ты что сигнал вызывает слот 2 или третий раз что не выполнишь действия которые в слоте? а после разъединения счетчик в слоте надо будет сбрасывать... както не доконца понятна идея.... Ну может и неправильно ![]() |
|
|
Константин |
![]()
Сообщение
#36
|
![]() Студент ![]() Группа: Участник Сообщений: 69 Регистрация: 9.2.2009 Пользователь №: 539 Спасибо сказали: 15 раз(а) Репутация: ![]() ![]() ![]() |
"а почему бы и нет?" - странное обоснование...неизбежно напорется на вопрос "а зачем?".
и мне тоже интересно "а зачем?". какой смысл отрабатывать слот по десять раз на одно(!) событие? а если сигнализирующие объекты разные, то какой смысл их считать? не забываем дисконнектить то, что сами же и сконнектили - и таких потребностей не будет возникать. а пичкать библиотеку функционалом для забывчивых - неблагодарное (и ненужное) занятие. Цитата олучается надо просто написать ИЗБЕГАЙТЕ РЕАЛИЗАЦИИ ДИНАМИЧЕСКОЙ МАШИНЫ СОСТОЯНИЙ с помощью сигналов и слотов дабы избежать проблем с много кратным соединением. используйте колбэки что угодно но не сигналы и слоты даже если соединения редко используемые. к чему крайности? а то проще написать ИЗБЕГАЙТЕ ИСПОЛЬЗОВАНИЯ КУТЭ В СВОИХ ПРОЕКТАХ. а можно и проще - ИЗБЕГАЙТЕ ПРОГРАММИРОВАНИЯ... |
|
|
kwisp |
![]()
Сообщение
#37
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Константин,
>какой смысл отрабатывать слот по десять раз на одно(!) событие? действительно если ты соединил случайно два раза один и тот же сигнал с одним и тем же слотом зачем отрабаотывать 2 раз.??? а так сделали трольтехи! вот зачем это не понятно. т.е. в соединении присутствует не только тот факт что соединено или нет(логика bool) а соединено и сколько раз соединено(уже сложнее). почему не могу узнать сколько раз соединено??? почему не могу узнать соединенно ли вообще??? вот это точно крайности, к чему это? Цитата ИЗБЕГАЙТЕ ИСПОЛЬЗОВАНИЯ КУТЭ В СВОИХ ПРОЕКТАХ. а можно и проще - ИЗБЕГАЙТЕ ПРОГРАММИРОВАНИЯ... ты же избегаешь много кратного соединения, не так ли??? к чему наша дисскусия?. я предлагаю её прекратить. кто хочет будет использовать динамическое соединение разъединение и будет считать свои соединения сам. все что хотел по теме сказать сказал. |
|
|
kuler |
![]()
Сообщение
#38
|
![]() Танцор диско ![]() ![]() ![]() Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: ![]() ![]() ![]() |
они взялись реализовать сигналы слоты взялись сделать как коннект так и дисконнект ну и уже бы и предоставили возможность узнать сколько соединений а еще в qtablewidget нельзя узнать есть ли столбец с заданным названием. К чему я это? к тому что не все сделано как нада и полностью. Некоторые вещи еще и глючат |
|
|
Константин |
![]()
Сообщение
#39
|
![]() Студент ![]() Группа: Участник Сообщений: 69 Регистрация: 9.2.2009 Пользователь №: 539 Спасибо сказали: 15 раз(а) Репутация: ![]() ![]() ![]() |
узнать соединенно ли вообще QObject::connectNotify(...) ты же избегаешь много кратного соединения, не так ли??? а ты и не писал про "избегайте многократных соединений", изречение было иным. если ты соединил случайно два раза один и тот же сигнал с одним и тем же слотом зачем отрабаотывать 2 раз.? для конечных состояний не должно быть случайностей. либо ты соединил, либо нет. соединил два раза - тебе виднее, но и эффект получишь для двух раз. а вот зачем считать сколько раз ты соединил, если соединял вручную? ты же не соединяешь сигнал со слотом в соответствии с гороскопом или "была-не-была". тема бессмысленна с самого начала а еще в qtablewidget нельзя узнать есть ли столбец с заданным названием. возьми модель-источник и пройдись по заголовкам. или проблема в том, что нет готовой функции? |
|
|
SABROG |
![]()
Сообщение
#40
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
возьми модель-источник и пройдись по заголовкам. или проблема в том, что нет готовой функции? Это имхо специфичная задача, для чего создавать такой метод мне не понятно.
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#41
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
kwisp |
![]()
Сообщение
#42
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Константин,
Цитата а ты и не писал про "избегайте многократных соединений", изречение было иным. .... я писал Цитата дабы избежать проблем с много кратным соединением. Цитата тема бессмысленна с самого начала не пиши в ней. какие проблемы? кому то, не буду показывать пальцем, так не кажется. бессмысленные темы перенесли в треп и юмор ![]() Цитата для конечных состояний не должно быть случайностей. либо ты соединил, либо нет. соединил два раза - тебе виднее, но и эффект получишь для двух раз. тогда для разъединений должна таже логика действовать. пусть мне виднее и я соединил 2 раз тогда должен и разъединитиь 2 раза однако разъединение убивает все соединения а не одно. Сообщение отредактировал kwisp - 11.2.2009, 13:50 |
|
|
kuler |
![]()
Сообщение
#43
|
![]() Танцор диско ![]() ![]() ![]() Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: ![]() ![]() ![]() |
SABROG, а по нормальному это выглядит bool table->ExistColumn("colname")
|
|
|
SABROG |
![]()
Сообщение
#44
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
SABROG, а по нормальному это выглядит bool table->ExistColumn("colname") Строить логику программы сравнивая текст в компонентах изначальное не правильно. А какое будет у тебя название колонки, если для английского языка там будет одно, для русского - другое, для арабского - третье? Для таких целей обычно используют setData()/data(). |
|
|
kuler |
![]()
Сообщение
#45
|
![]() Танцор диско ![]() ![]() ![]() Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#46
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
пожалуй я эту тему закрою, а то во флуд превратилась.
В "Трёп" пока переносить не буду, может современем подчищу и открою заново. Связанное с темой обсуждение здесь |
|
|
![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 5.6.2025, 12:45 |