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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: [1]
1  Qt / Пользовательский интерфейс (GUI) / Re: QWizardPage, Послать сигнал главному окну. : Ноябрь 06, 2018, 17:34
Можно через parent связать, а можно создать сигнал визарда, который связать с сигналом страницы. Имхо, второй вариант лучше
Воспользовался вторым вариантом.
2  Qt / Пользовательский интерфейс (GUI) / QWizardPage, Послать сигнал главному окну. : Октябрь 24, 2018, 14:40
В главном окне создаю объект QWizard
Код:
recWiz = new RecoveryWizard();
    connect(recWiz, &RecoveryWizard::signalHideWiz,this,&MainWindow::slotHideWiz);
    ui->verticalLayout->addWidget(recWiz);
    recWiz->show();

В конструкторе класса QWizard добавляю страницы:
Код:
RecoveryWizard::RecoveryWizard(QWidget *parent) :
    QWizard(parent),
    ui(new Ui::RecoveryWizard)
{
    ui->setupUi(this);
 
    this->setPage(CONNECTIONS_PAGE, new ConnectionsPage());
    this->setPage(TERMINALS_PAGE, new TerminalsPage());
 
    disconnect( button( QWizard::CancelButton ), &QAbstractButton::clicked, this, &QDialog::reject );
    connect(button(QWizard::CancelButton),&QAbstractButton::clicked,this,&RecoveryWizard::cancelWizard);
}

Со страницы TERMINALS_PAGE нужно передать значение в MainWidow (там TableWidget cо сводной информацией полученной при работе мастера).
Никак не могу сообразить как связать сигналам/слотом страницу QWizardPage и главное окно.
3  Qt / Базы данных / Re: Firebird, создание и выполнение процедур : Май 07, 2018, 11:43
Спасибо за ответ. Сейчас опробуем.
4  Qt / Базы данных / Firebird, создание и выполнение процедур : Апрель 19, 2018, 10:46
Доброго времени суток.
Необходимо на множестве баз выполнять запросы такого вида.
Код:
SET TERM ^ ;
create or alter procedure TMP1C_T1
as
declare variable ARTICLE_ID integer;
declare variable TERMINAL_ID smallint = 2142;
begin
    FOR select A.article_id from get_asaldos (:TERMINAL_ID, 9999, null, 0) GA
    join articles A on A.article_id = GA.article_id and A.terminal_id = :TERMINAL_ID
    where A.isactive = 'F'
    INTO :ARTICLE_ID
    DO
        update articles AR set AR.isactive = 'T'
        where AR.terminal_id = :TERMINAL_ID and AR.article_id = :ARTICLE_ID;
end^
SET TERM ; ^
GRANT EXECUTE ON PROCEDURE GET_ASALDOS TO PROCEDURE TMP1C_T1;
GRANT SELECT,UPDATE ON ARTICLES TO PROCEDURE TMP1C_T1;
GRANT EXECUTE ON PROCEDURE TMP1C_T1 TO SYSDBA;
execute procedure tmp1c_t1;

Каким образом его правильно скармливать QSqlQuery.
Или формировать скрипт и скармливать isql?

Буду благодарен за любые советы.
Спасибо.
5  Qt / Многопоточное программирование, процессы / Re: QProcess и ping : Октябрь 23, 2017, 20:07
В Linux все работает. В Windows при сборке

Код:
E:\Develop\HotlineDesktop\infoobjectdialog.cpp:261: ошибка: no matching function for call to 'arg(Q_PID)'
         QProcess::execute(QString("kill -SIGINT %1").arg(ping->pid()));
Завершаю так.
Код:
PROCESS_INFORMATION *pinfo = (PROCESS_INFORMATION  *)ping->pid();
QProcess::execute(QString("taskkill /PID %1 /F").arg(pinfo->dwProcessId));
Однако статистики PING не получаю :-(
6  Qt / Многопоточное программирование, процессы / Re: QProcess и ping : Октябрь 23, 2017, 13:29
Таки не там читал. Спасибо.
7  Qt / Многопоточное программирование, процессы / QProcess и ping : Октябрь 23, 2017, 11:25
Возникла необходимость отображать в форме вывод команды пинг.
Код:
void InfoObjectDialog::on_toolButtonPing_clicked()
{    if(ui->pingOutput->isHidden()) {
        ping = new QProcess(this);
        ping->setProcessChannelMode(QProcess::MergedChannels);
        connect( ping, SIGNAL(readyReadStandardOutput ()), this, SLOT(print_ping()) );
#ifdef Q_OS_WIN
     ping->start("ping", QStringList() << "-t" <<ip);
#else
     ping->start("ping", QStringList() << ip);
#endif
    } else {
        ping->kill();
    }
}
void InfoObjectDialog::print_ping()
{
    QByteArray      output;
    output = ping->readAllStandardOutput ();
    QTextCodec *codec = QTextCodec::codecForName("cp-866");
    QString fio = codec->toUnicode(output.data());
    fio.replace("\n","");
    qDebug() << "ping output" << fio;
    ui->pingOutput->appendPlainText(fio); //вывод в гуи
}
ping->kill(); Это понятно убивает процесс.
А хотелось бы послать  Ctrl+C. дабы получить статистику работы ping.
Может я не там Асистент читаю? :-)
Страниц: [1]

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