Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Pupil от Октября 21, 2013, 11:02



Название: Доступ к эдементам ввода QWidget, порожденного от QDialog
Отправлено: Pupil от Октября 21, 2013, 11:02
Доброго дня!

В конструкторе QDialog создаю экземпляр QWidget:

Код:
wgt = new WgtReport(0, num)

В слоте по кнопке делаю
Код:
wgt->show()

Всё нормально за исключением того, что отсутствует доступ к кнопкам и таблице QWidget.

Поможите, пжлалуста. ) ???


Название: Re: Доступ к эдементам ввода QWidget, порожденного от QDialog
Отправлено: mutineer от Октября 21, 2013, 11:08
Каким еще кнопкам? Какой еще таблице? Где они находятся? Откуда доступ отсутствует?


Название: Re: Доступ к эдементам ввода QWidget, порожденного от QDialog
Отправлено: Pupil от Октября 21, 2013, 11:44
Кнопки  и таблица находятся на форме QWidgetа, а доступ к ним отсутствет для пользователя. Мышкой кликаешь, а реакции никакой.


Название: Re: Доступ к эдементам ввода QWidget, порожденного от QDialog
Отправлено: mutineer от Октября 21, 2013, 11:46
Видимо ты что-то в коде не сделал или сделал неправильно


Название: Re: Доступ к эдементам ввода QWidget, порожденного от QDialog
Отправлено: Pupil от Октября 21, 2013, 11:56
В моем перовом посте - что я написал неправильно? Неправильно создал объект wgt?
Неправильно открыл его с помощью show()?


Название: Re: Доступ к эдементам ввода QWidget, порожденного от QDialog
Отправлено: mutineer от Октября 21, 2013, 12:00
В тех двух строчках вроде бы все правильно (я ж не знаю что за параметры принимает конструктор WgtReport)


Название: Re: Доступ к эдементам ввода QWidget, порожденного от QDialog
Отправлено: Pupil от Октября 21, 2013, 12:21
В WgrReport.cpp
Код:
WgtReport::WgtReport(QWidget *parent, int num)...
                                ui->setupUI(this)
В WgtReport.h
Код:
 namespace ui{
                     class WgtReport}
                     class WgtReport : public QWiidget {
                     
                     Q_OBJECT 
       
                     public:
                     expilcit WgtReport(QWidget *parent = 0, int num = 0)...


Название: Re: Доступ к эдементам ввода QWidget, порожденного от QDialog
Отправлено: mutineer от Октября 21, 2013, 12:24
А можно как-нить сразу код? Или будешь по строчке сюда выкидывать для гадания?


Название: Re: Доступ к эдементам ввода QWidget, порожденного от QDialog
Отправлено: Pupil от Октября 21, 2013, 12:28
Что касается вопрос - этого достаточно или выложить весь проект?


Название: Re: Доступ к эдементам ввода QWidget, порожденного от QDialog
Отправлено: Bepec от Октября 21, 2013, 12:35
Ваши ответы малоинформативны, кода вы не приводите. Плохо в общем :)

PS это как просить врача поставить диагноз по переписке в скайпе :D


Название: Re: Доступ к эдементам ввода QWidget, порожденного от QDialog
Отправлено: mutineer от Октября 21, 2013, 12:44
Что касается вопрос - этого достаточно или выложить весь проект?

никаких кнопок и таблиц до сих пор не видно и непонятно даже где они


Название: Re: Доступ к эдементам ввода QWidget, порожденного от QDialog
Отправлено: Pupil от Октября 21, 2013, 13:23
Таблица , кнопки, LineEdit просто набросаны на QWidget. Их видно, но при попытке кликнуть на LineEdit фокус на него с возможностью ввода не наводится. Единственно, что позволяет QWidget - перетаскивать себя за загривок, сворчиваться на десктоп и расширяться. Закрываться по крестику оно также не хочет. )


Название: Re: Доступ к эдементам ввода QWidget, порожденного от QDialog
Отправлено: mutineer от Октября 21, 2013, 13:26
У тебя ошибка в коде, скорее всего. Нет кода - нет указания на ошибку


Название: Re: Доступ к эдементам ввода QWidget, порожденного от QDialog
Отправлено: Pupil от Октября 21, 2013, 13:57
"Нет ножек - нет и сапожек" )


Название: Re: Доступ к эдементам ввода QWidget, порожденного от QDialog
Отправлено: mutineer от Октября 21, 2013, 14:01
Ну гадать тут не умеют


Название: Re: Доступ к эдементам ввода QWidget, порожденного от QDialog
Отправлено: Pupil от Октября 21, 2013, 14:39
Хорошо.
сформулирую вопрос по-другому:
Каким образом создать отдельное окно класса QWidget из класса на основе QDialog, что при отображении окна на основе класса QWidget отрабатывал фокус на элементах ввода данного окна?


Название: Re: Доступ к эдементам ввода QWidget, порожденного от QDialog
Отправлено: mutineer от Октября 21, 2013, 14:46
Отнаследоваться, создать внутри элементы ввода, создать экземпляр и показать его


Название: Re: Доступ к эдементам ввода QWidget, порожденного от QDialog
Отправлено: Pupil от Октября 21, 2013, 14:56
Если я при создании вместо 0 указываю this, то желементы ввода окна QWidget отображаются в окне QDialog, наслаиваясь на элементы ввода QDialog и в них спокойно можно вводить данные, .т.е. фокус срабатывает, но не срабатывает в отдельном окне
Код:
wgt = new WgtReport(this, num)


Название: Re: Доступ к эдементам ввода QWidget, порожденного от QDialog
Отправлено: mutineer от Октября 21, 2013, 14:59
Диалог у тебя не модальный, случаем?


Название: Re: Доступ к эдементам ввода QWidget, порожденного от QDialog
Отправлено: Pupil от Октября 21, 2013, 15:05
WindowModality: Non Modal (Property Inspector)


Название: Re: Доступ к эдементам ввода QWidget, порожденного от QDialog
Отправлено: mutineer от Октября 21, 2013, 15:08
ну код показывай


Название: Re: Доступ к эдементам ввода QWidget, порожденного от QDialog
Отправлено: kambala от Октября 21, 2013, 15:52
Если я при создании вместо 0 указываю this, то желементы ввода окна QWidget отображаются в окне QDialog, наслаиваясь на элементы ввода QDialog и в них спокойно можно вводить данные, .т.е. фокус срабатывает, но не срабатывает в отдельном окне
Код:
wgt = new WgtReport(this, num)
можно выставить windowFlag Qt::Window и тогда виджет будет отдельным окном