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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Выбор сигнала QSpinBox  (Прочитано 10243 раз)
Wizard
Гость
« : Октябрь 01, 2013, 01:51 »

Я - новичок, и ни разу не работал с формами. Собственно, поэтому и выбрал Qt. Появилась необходимость использовать QSpinBox, но перед тем, как задать параметры для SpinBox, необходимо перейти к слоту и выбрать сигнал:
editingFinished()
destroyed()
destroyed(QObject*)
.............................
Что значит каждый из этих типов сигналов?
Мне нужно задать ограничение на верхнее значение в QSpinBox, чтобы верхняя кнопка нажималась до определённого значения, а в окошке при достижении его значение не превышало максимальное.
К примеру, в корзине 30 яблок, укажите, сколько съел Навальный. Выбрал 30, и выше никак. В окне максимум цифра 30, ниже жмётся кнопка, выше - нет. Вы должны понять.

Дайте, пожалуйста, источник, где расписано детально про каждый тип сигналов не только в SpinBox, но и в остальных прокрутках, окошках и других виджетах.
Заранее спасибо!
« Последнее редактирование: Октябрь 01, 2013, 01:53 от Wizard » Записан
Bepec
Гость
« Ответ #1 : Октябрь 01, 2013, 07:02 »

Qt Assistent. Он поставляется вместе с Qt. Открываете, набираете название вашего сигнала, потом выбираете к какому классу он относится (окошко вылезет) и после спокойно читайте подробное описание условий его вызова..
Записан
Serr500
Гость
« Ответ #2 : Октябрь 01, 2013, 08:23 »

На кой здесь сигналы? У QSpinBox уже есть эта функциональность. У него есть два свойства - maximum и minimum, которые и ограничивают диапазон ввода. Установите их в дизайнере или методами setMaximum, setMinimum и будет вам счастье.

Я - новичок, и ни разу не работал с формами. Собственно, поэтому и выбрал Qt.
1) В Qt есть отличная справка, которую можно прочитать в QtAssistant и QtCreator, правда, она на английском.
2) Если хотите на русском, возьмите книжку Макса Шлее или Марка Саммерфилда, там очень хорошо всё расписано.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Октябрь 01, 2013, 11:44 »

Я - новичок, и ни разу не работал с формами. Собственно, поэтому и выбрал Qt.
что-то не вижу причинно-следственной связи. каким образом из того, что человек — новичок, следует то, что ему необходимо начинать познавать «окошки» с Qt?
Записан

Изучением 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
Wizard
Гость
« Ответ #4 : Октябрь 01, 2013, 14:13 »

Я - новичок, и ни разу не работал с формами. Собственно, поэтому и выбрал Qt.
что-то не вижу причинно-следственной связи. каким образом из того, что человек — новичок, следует то, что ему необходимо начинать познавать «окошки» с Qt?
Ты тролль что ли? Причинно-следственная связь в том, что формы и Qt между собой синонимируют. MS VS без интеграции туда Qt этого не даст, а C# я не знаю.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #5 : Октябрь 01, 2013, 18:42 »

когда новички бросаются «троллями», это не очень хороший знак.

я задал абсолютно нормальный вопрос, потому что не понял, каким образом твой выбор пал на Qt. про язык, на котором ты пишешь, в твоем первом сообщении не сказано, но, исходя из последнего, это, видимо, С++. помимо Qt есть и другие графические библиотеки на С++, например WxWidgets. а можно вообще использовать WinAPI или MFC (но лучше не нужно), при чем для первого можно писать даже на чистом С.

в последнее время на этот форум приходит немало новичков, которые либо С++ видят чуть ли не впервые в жизни, а уже хотят создавать GUI приложения, либо думают, что умеют писать на С++, имея опыт написания программ лишь в структурном (не-ООП) стиле, в лучшем случае слышавших что-то про классы. надеюсь, что ты не относишься ни к одним из перечисленных категорий.

при чем тут студия — тоже неясно. она является средой разработки для разных языков и технологий, а Qt — это набор С++ библиотек. QtCreator — это тоже среда разработки для разных языков, но никто не обязывает использовать именно ее для написания Qt-приложений. в студию (особенно не-экспресс версию) Qt интегрируется достаточно легко.

зная С++, в другие С-подобные языки (типа C#) «войти» совсем несложно. а вот Java вообще не была упомянута…
Записан

Изучением 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
Wizard
Гость
« Ответ #6 : Октябрь 05, 2013, 01:29 »

когда новички бросаются «троллями», это не очень хороший знак.

я задал абсолютно нормальный вопрос, потому что не понял, каким образом твой выбор пал на Qt. про язык, на котором ты пишешь, в твоем первом сообщении не сказано, но, исходя из последнего, это, видимо, С++. помимо Qt есть и другие графические библиотеки на С++, например WxWidgets. а можно вообще использовать WinAPI или MFC (но лучше не нужно), при чем для первого можно писать даже на чистом С.

в последнее время на этот форум приходит немало новичков, которые либо С++ видят чуть ли не впервые в жизни, а уже хотят создавать GUI приложения, либо думают, что умеют писать на С++, имея опыт написания программ лишь в структурном (не-ООП) стиле, в лучшем случае слышавших что-то про классы. надеюсь, что ты не относишься ни к одним из перечисленных категорий.

при чем тут студия — тоже неясно. она является средой разработки для разных языков и технологий, а Qt — это набор С++ библиотек. QtCreator — это тоже среда разработки для разных языков, но никто не обязывает использовать именно ее для написания Qt-приложений. в студию (особенно не-экспресс версию) Qt интегрируется достаточно легко.

зная С++, в другие С-подобные языки (типа C#) «войти» совсем несложно. а вот Java вообще не была упомянута…
Я имею опыт написания программ без использования ООП, работа с классами знакома на уровне прочтения нескольких книг за лето и разбору примеров оттуда же. Приходилось работать с расширениями С/С++ - CUDA, OpenMP.
Сейчас по программе компьютерная графика, где надо написать 9 программ, начиная от поворота отрезка вокруг точки и заканчивая 3D-графикой. Также есть трассировка лучей, дерево Пифагора и ещё какая-то шляпа. С формами прежде никогда не работал. Да, это минус, но нас не учат такому, а в MS VS - сказали - с формами неудачная затея получилась, и не стоит в общем.
Мне вот нужно работать постоянно с QSpinBox, а я не знаю всей скрытой кучи возможности от этого виджета: начиная от визуальных качеств (заливка, цвет кнопок и пр.) и заканчивая извлечением данных из формочки и синхронизацией данных с другими формочками (к примеру, при нажатии кнопки SpinBox'а чтобы полоса прокрутки двигалась). В книгах такого нету, там всё примитивно, подробного нигде не нашёл.
Остаётся каждый день рыть форумы, ответы Mail.ru, Хабр и кучу источников, хоть что-то сдержащих о Qt'е. Что бы Вы посоветовали? Заранее благодарен.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #7 : Октябрь 05, 2013, 02:59 »

В книгах такого нету, там всё примитивно, подробного нигде не нашёл.
в книгах Саммерфилд/Бланшетт и Шлее это есть. также документация Qt написана очень качественно и понятно, есть даже русская ее версия.
Записан

Изучением 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
Wizard
Гость
« Ответ #8 : Октябрь 05, 2013, 04:42 »

В книгах такого нету, там всё примитивно, подробного нигде не нашёл.
в книгах Саммерфилд/Бланшетт и Шлее это есть. также документация Qt написана очень качественно и понятно, есть даже русская ее версия.
У меня есть все эти книги. Я их перерыл, как сапёр в Stronghold Crusader. Передо мной стоит задача наращивать или понижать значение координат с помощью QSpinBox.
Как выяснил {на Хабре!!!}, считывание значения представляет из себя нечто похожее на:
a = ui -> spinBox -> value();
Ну так и где же хоть что-то, похожее на это в книгах Саммерфилда и Шлее? Нету нихрена!!!
Я не знаю, как мне организовать структуру проекта: что должно содержаться в файле main.cpp, что в файле dialog.h, что в файле dialog.cpp, где мне реализовывать алгоритм (для дальнейших задач) - к примеру трассировки лучей: в main.cpp или в dialog.cpp? И прочие детали проекта.
Спасибо за терпение (ведь я тупарь, ибо не задавал бы один и тот же вопрос на форуме 1000500 раз) и понимание!!!  Непонимающий
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #9 : Октябрь 05, 2013, 09:22 »

Как выяснил {на Хабре!!!}, считывание значения представляет из себя нечто похожее на:
a = ui -> spinBox -> value();
Ну так и где же хоть что-то, похожее на это в книгах Саммерфилда и Шлее? Нету нихрена!!!
Представим себе что Вы пишете собственное UI. Тут обычно начинают фыркать, вспоминать про велосипеды и.т.п. Ну а все же - спиннер был бы класс. Конечно натыкали бы в него геттеров/сеттеров, как бы их назвали? Что-то типа GetValue/SetValue. Ну и в Qt почти так же. Но стопудово что эти методы должны быть, иначе нафиг нужен спиннер у которого нельзя ни установить ни прочитать значение?

Поэтому такие вещи очевидны для человека с опытом (пусть и небольшим) и упоминать о них в книгах излишне. А если опыта (пока) нет - надо набираться, а не изливать свое раздражение на форуме
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #10 : Октябрь 05, 2013, 11:31 »

У меня есть все эти книги. Я их перерыл, как сапёр в Stronghold Crusader. Передо мной стоит задача наращивать или понижать значение координат с помощью QSpinBox.
Как выяснил {на Хабре!!!}...
про документацию я уже сказал. когда тебя интересует, на что способен класс, надо открывать именно ее.

а про саперов не надо тут. страницы во вложениях я нашел за считанные секунды.
Записан

Изучением 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
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #11 : Октябрь 05, 2013, 12:16 »

Есть документация по Qt частично переведённая на русский:
http://www.doc.crossplatform.ru/qt/

рекомендую там смотреть документацию по Qt 4.6 и Qt 4.5 (по тех. причинам более свежие версии отображаются кривовато и объём перевода в них меньше)

В основном переведены обзорно-ознакомительные статьи, а также описания некоторых классов.

Рекомендую изучить учебное пособие от старой версии, оно весьма поучителено для новичков


П.С.
Раздел "Подробное описание" документации по QSpinBox-у
Записан

Юра.
Wizard
Гость
« Ответ #12 : Октябрь 05, 2013, 15:09 »

Есть документация по Qt частично переведённая на русский:
http://www.doc.crossplatform.ru/qt/

рекомендую там смотреть документацию по Qt 4.6 и Qt 4.5 (по тех. причинам более свежие версии отображаются кривовато и объём перевода в них меньше)

В основном переведены обзорно-ознакомительные статьи, а также описания некоторых классов.

Рекомендую изучить учебное пособие от старой версии, оно весьма поучителено для новичков


П.С.
Раздел "Подробное описание" документации по QSpinBox-у
Спасибо всем!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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