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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: QInputDialog - дополнительный виджет  (Прочитано 14671 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #15 : Февраль 11, 2015, 17:20 »

Вот в том и дело, нужный ему лайот может лежать в другом лайоте. Правильнее будет свою реализацию сделать.
Ну а как же прынцыпы? Инкапсуляция, наследование и все такое  Улыбающийся

Ну че, пятерка тебе по проктологии. xD
Троечка. Лучше так

Код
C++ (Qt)
QInputDialog *inputDialog = new QInputDialog(this);
QPushButton * btn = inputDialog->findChid <QPushButton *>();
if (btn) {
QBoxLayot * layout = dynamic_cast <QBoxLayout *> (btn->parentWidget()->layout());
if (layout)
  layout->insertWidget(1, new QPushButton("1", this));
}
 
Записан
poru
Самовар
**
Offline Offline

Сообщений: 103


Просмотр профиля
« Ответ #16 : Февраль 12, 2015, 14:24 »

findChild - ноль возвращает
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #17 : Февраль 12, 2015, 15:52 »

findChild - ноль возвращает
Добавьте
Код
C++ (Qt)
inputDialog->labelText();
Сразу после создания. Вы уже так делали - зачем спрашивать?  Улыбающийся
Записан
poru
Самовар
**
Offline Offline

Сообщений: 103


Просмотр профиля
« Ответ #18 : Февраль 13, 2015, 11:36 »

Цитировать
Ну а как же прынцыпы? Инкапсуляция, наследование и все такое
Браво! Поддерживаю!

Цитировать
Вы уже так делали - зачем спрашивать?
Во-первых: я ни о чем не спрашивал, а дал конкретное утверждение, что код не рабочий.
Во-вторых: если представляешь исходный код, то не допускай ошибок, иначе тебя не правильно поймут. Береги свой статус.

И еще:
может ли кто-либо вопрос по дополнительному "виджету" переправить разработчикам?

Описание проблемы:
программа разработана для обычного "виндовоза", но  потребитель у себя установил на стену компьютер с сенсорным экраном, т.е. нет "мыши" и "клавы", при этом программа, разработанная в Qt, не распознает присутствие сенсорного экрана, и потребитель хочет, что бы наиболее частые параметры вводились дополнительным выбором именно через дополнительный "виджет", расположенный между строкой ввода и кнопками "OK" и  "Отмена", и именно в QInputDialog, при этом, когда мы с ним (потребителем) общались "виртуальная клава" ему "на хер" не нужна. Таким образом потребитель хочет что бы при вводе целых чисел была только цифровая панелька, а при вводе вещественных - панелька дополнялась точкой и т.д и т.п.

Всю эту "херь" я уже реализовал, но еще раз повторюсь - отправьте, пожалуйста, запрос "разрабам", что бы дали нормальный доступ к layout'у и строке ввода.
« Последнее редактирование: Февраль 13, 2015, 12:47 от poru » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #19 : Февраль 13, 2015, 13:17 »

Во-первых: я ни о чем не спрашивал, а дал конкретное утверждение, что код не рабочий.
Во-вторых: если представляешь исходный код, то не допускай ошибок, иначе тебя не правильно поймут. Береги свой статус.
Не надо злиться, тем более что Вы неправы. Пантер указал что кнопка может находиться в др лайауте, я предложил как это разрулить. Может Вы обиделись что не дали текст под copy/paste - так никто и не обещал.

может ли кто-либо вопрос по дополнительному "виджету" переправить разработчикам?
Ну а почему кто-то за Вас должен переправлять? Заходите в баг тракер и постите. Но я бы этого делать не стал, потому что:

- тот InputDialog самому за полчаса написать, делать это серьезной проблемой и стучаться с этим к разрабам...

- "нормальным" решением является хранение диалога в ресурсах, ну Qt этого не предоставляет. Остается самому искать/добавлять виджеты. Это менее удобно чем интерактивно в редакторе - но суть та же. Не обращайте внимание на гордые заявления типа "через задницу" - это обычное желание поумничать, не более того Улыбающийся По существу нет никаких аргументов против такого решения, оно ничему не противоречит.
Записан
Bepec
Гость
« Ответ #20 : Февраль 13, 2015, 13:18 »

Igors прав, написать данный функционал дело десяти минут. Отладить - ну полдня, чтоб красиво было и все ошибочки обработать.

Записан
poru
Самовар
**
Offline Offline

Сообщений: 103


Просмотр профиля
« Ответ #21 : Февраль 13, 2015, 14:57 »

Цитировать
Igors прав, написать данный функционал дело десяти минут...
Bepec, читай еще раз:
Цитировать
Всю эту "херь" я уже реализовал...

Цитировать
Ну а почему кто-то за Вас должен переправлять? Заходите в баг тракер и постите
Да я бы с удовольствием, но у меня нет практики с "инглишом", поэтому и прошу кого-то. А ведь дело-то всего в том, что бы layout был доступен после конструктора.
Записан
Bepec
Гость
« Ответ #22 : Февраль 13, 2015, 16:57 »

А мою реплику прочитай Улыбающийся
Из-за 10 минут работы вы намереваетесь поднимать исправление Улыбающийся Стоит ли овчинка выделки?
Записан
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« Ответ #23 : Февраль 13, 2015, 22:24 »

Здорово! Для меня это маленькое открытие. Т.е. можно взять готовый, фирменный виджет типа InputDialog или QColorDialog, и через его layout() понапихать своих кнопочек. В случае с ColorDialog для меня это вполне актуально. Из-за кнопочки "Восстановить стандартный цвет" мне пришлось городить свой класс на QDialog и вообще всячески изощряться. Попробую!
Записан
Bepec
Гость
« Ответ #24 : Февраль 13, 2015, 22:34 »

Как бы это известная практика, вроде даже в примерах есть парочка "впихиваемых" в стандартные виджеты.

Улыбающийся
Записан
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« Ответ #25 : Февраль 13, 2015, 22:46 »

Как бы это известная практика,
Но для меня, "Самовара", это было приятной неожиданностью...Улыбающийся
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #26 : Февраль 14, 2015, 09:21 »

Здорово! Для меня это маленькое открытие. Т.е. можно взять готовый, фирменный виджет типа InputDialog или QColorDialog, и через его layout() понапихать своих кнопочек.
К сожалению, это не проходит для системных диалогов, напр QFileDialog (native)
Записан
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« Ответ #27 : Февраль 14, 2015, 12:33 »

Все получилось. И код стал логичнее.
К сожалению, это не проходит для системных диалогов, напр QFileDialog (native)
Но если нативные флаги не выставлять, то и с QFileDialog все хорошо.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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