Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Не действуют кнопки в диалоговом окне |
Автор: Nikys 9.5.2013, 22:13 | ||||
Доброго всем вечера или ночи. Пишу Qt4 проект на C++. Суть в том, что есть главное окно, которое по нажатию кнопки открывает диалоговое окно. Есть Line Edit, кнопка ОК (самописная, не из QDialogButtonBox, по которой должна вызываться процедура для добавления этой строки в QList, но это другая история) и кнопка Отмена (просто закрывает форму). Описал для обеих форм классы, описал методы и конструктор с коннектом. Формы нарисовал в QtDesigner. Суть в том, что вторая форма открывается, но никак не реагирует на нажатия кнопок и не выполняет нужную процедуру по нажатию Enter в Line Edit (лишь закрывая при этом форму, т.е., по нажатию Enter в Line Edit). Я так понял, что либо не отсылается сигнал на слот, либо не слот не принимает сигнал. Либо я по другой статье залетел. Все размещено в трех файлах (mainwindow.h, main.cpp, mainwindow.cpp) и юзаются формы (mainwindow.ui, newteam.ui). В файле mainwindow.h:
В mainwindow.cpp
В main.cpp, вроде бы, нет ничего, что могло бы повлиять на проблему. Все, что связывает его с формами - объявление и показ формы из MainWindow. Всем заранее спасибо за ответы. Прошу прощения за глупые вопросы. Конструктивная критика по поводу кривости реализации приветствуется. |
Автор: borisbn 9.5.2013, 22:58 |
1. Если мне не изменяет память, то moc-компилятор требует, чтобы один класс был описан в одном файле 2. Что пишется в окне вывода ? 3. Чем тебе http://qt-project.org/doc/qt-4.8/qinputdialog.html#getItem не устраивает ? |
Автор: Nikys 10.5.2013, 00:06 |
borisbn, и ещё тогда можно задать к вам вопрос? Если у меня присутствует БД в программе, то желательно также описать класс (с методами по добавлению информации и считыванию), который будет работать с ней? |
Автор: math64 10.5.2013, 00:47 |
Чтобы избежать лишних включений заголовков, обычно используют не множественноенаследование, а включают Ui::Dialog* ui в качестве поля класса. #include "ui_newteam.h" тогда включается в cpp файле. |
Автор: Nikys 10.5.2013, 04:01 |
Спасибо всем за советы! После реорганизации программы должным образом (класс в отдельный хедер, отдельный cpp для него) и использование в поле класса Ui::className *ui вроде как начало работать ![]() Теперь буду твердо знать, что игнорировать советы умных людей, которые документацию составляют, нехорошо. Вроде как проблема решена ![]() |