Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Програмирование платформенно-независимых систем > Trolltech Qt
Перезагрузить страницу Получение сигнала после выбора строки в tableview
Ответ
 
Опции темы Опции просмотра
  (#61 (permalink)) Старый
Lexflax Lexflax вне форума
Member
 
Сообщений: 92
Сказал(а) спасибо: 35
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 30.04.2011
По умолчанию 26.01.2015, 15:58

Доброго времени суток.
Подстроил под свою программу теперь окно отображается так как нужно.
Возникла теперь проблема с его закрытие по нажатию кнопки.
Я ввожу новые данные в поля, нажимаю кнопку ок и данные должны добавиться в справочник а форма закрыться.
Данные то добавляются а вот форма не корректно закрывается.

cpp Код:
void Addnomenklatura::on_pushButton_clicked()
{
    QSqlQuery query;
           query.prepare("INSERT INTO  nomenklatura (kod_pozicii,name_pozicii,cena_zakupki,proizvoditel) VALUES ( :kod_pozicii,:name_pozicii,:cena_zakupki,:proizvoditel)");
           query.bindValue(":kod_pozicii", ui->lineEdit->text());
           query.bindValue(":name_pozicii", ui->lineEdit_2->text());
           query.bindValue(":cena_zakupki", ui->lineEdit_3->text());
           query.bindValue(":proizvoditel", ui->lineEdit_4->text());
           query.exec();
           
           
}

если в конце добавляю
cpp Код:
this->close();
То закрывается виджет, но сам остается в закладках и вверху программы отображает что сидим по прежнему в строке редактирования.
если закрываю так
cpp Код:
this->window()->close();
То закрывается вся программа.
Подскажите пожалуйста как правильно закрыть такую форму чтоб она и из закладок ушла и компоненты ее закрылись.
Ответить с цитированием
  (#62 (permalink)) Старый
Rius Rius вне форума
Программист
 
Аватар для Rius
 
Сообщений: 7,398
Сказал(а) спасибо: 22
Поблагодарили 937 раз(а) в 921 сообщениях
Регистрация: 27.08.2004
Адрес: Russian Federation
По умолчанию 26.01.2015, 21:32

При добавлении в addSubWindow объекта, производного в QWidget, а не QMdiSubWindow, для виджета создаётся этот самый QMdiSubWindow и добавляется в QMdiArea.
У вас при закрытии закрывается сам QWidget, а QMdiSubWindow остаётся висеть.
Надо передать сигнал о закрытии в главное окно, чтобы оно аккуратно закрыло QMdiSubWindow.
См там же.
Ответить с цитированием
Пользователь сказал cпасибо:
Lexflax (27.01.2015)
  (#63 (permalink)) Старый
Lexflax Lexflax вне форума
Member
 
Сообщений: 92
Сказал(а) спасибо: 35
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 30.04.2011
По умолчанию 27.01.2015, 16:39

Пример теперь который выложен не запускается( выдает ошибки

cpp Код:
C:\tt\multiwindemo1-mdi\mainwindow.cpp:116: ошибка: cannot allocate an object of abstract type 'WindowExample'
     QWidget *child = new WindowExample(this);
                                            ^
C:\tt\multiwindemo1-mdi\mainwindow.cpp:157: ошибка: prototype for 'void MainWindow::on_windowCreated(QWidget*)' does not match any in class 'MainWindow'
 void MainWindow::on_windowCreated(QWidget *window)
      ^
C:\tt\multiwindemo1-mdi\mainwindow.h:70: ошибка: candidate is: void MainWindow::on_windowCreated(ISubWindow*)
     void on_windowCreated(ISubWindow *window);
          ^
C:\tt\multiwindemo1-mdi\isubwindow.h:11: note:  virtual QWidget* ISubWindow::widget()
     virtual QWidget *widget() = 0;
                      ^
C:\tt\multiwindemo1-mdi\isubwindow.h:15: note:  virtual void ISubWindow::windowCreated(ISubWindow*)
     virtual void windowCreated(ISubWindow *window) = 0;
                  ^
C:\tt\multiwindemo1-mdi\isubwindow.h:16: note:  virtual void ISubWindow::windowClosed(ISubWindow*)
     virtual void windowClosed(ISubWindow *window) = 0;
                  ^
Ответить с цитированием
  (#64 (permalink)) Старый
Rius Rius вне форума
Программист
 
Аватар для Rius
 
Сообщений: 7,398
Сказал(а) спасибо: 22
Поблагодарили 937 раз(а) в 921 сообщениях
Регистрация: 27.08.2004
Адрес: Russian Federation
По умолчанию 27.01.2015, 17:49

В репозитории такой файл:
cpp Код:
void MainWindow::on_windowCreated(ISubWindow *window)
{
this->setupSubWindow(window);
}

Вы же показываете
cpp Код:
C:\tt\multiwindemo1-mdi\mainwindow.cpp:157: ошибка: prototype for 'void MainWindow::on_windowCreated(QWidget*)' does not match any in class 'MainWindow'
 void MainWindow::on_windowCreated(QWidget *window)
Ответить с цитированием
Пользователь сказал cпасибо:
Lexflax (27.01.2015)
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
После замены дисковода нет сигнала на монитор андрей75 Любые вопросы от новичков 2 17.02.2014 02:10
Комп выключается после выбора загрузки, что делать? BAHO Техническая поддержка 19 14.08.2012 18:21
Нет сигнала после режима POST 024625 Любые вопросы от новичков 4 28.04.2010 00:14
Получение определенного числа после запятой Aziz C++ Builder 7 10.04.2010 00:19
BIOS после включения издаеттри коротких сигнала. SerGrey Техническая поддержка 26 05.12.2008 13:48
Получение параметров коммандной строки Niagen Prolog 8 15.02.2008 17:52
Нет сигнала на видеокарту после начала загрузки WINDOWS. alex2007 Техническая поддержка 7 21.06.2007 21:32
Получение и вывод на экран строки в TASM Zar Вопросы начинающих программистов 6 30.11.2006 22:32
Получение параметров командной строки Джо Delphi 2 28.07.2004 18:59
Получение командной строки по хэндлу окна Lili WinAPI 2 20.07.2004 16:44
Как сделать что бы событие происходило в момент выбора строки в ComboBox Anonymous Visual C++ 1 22.11.2003 22:39
Нужно, чтобы в списке после загрузки страницы не было выбора по умолчанию Anonymous DHTML, JavaScript, VBScript 1 14.11.2003 15:00



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов