Jeka178RUS, я правильно понимаю, что если я для кнопки устанавливаю Button->SetAutoRepeat(true), то должно эмулироваться постоянное нажатие кнопки с заданным интервалом? Попробовала реализовать так, но у меня только один раз попадает в процедуру почему то....
| Код | #include <QtCore> using namespace std; MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); tcpServer = new EchoServer; connect(tcpServer, SIGNAL(receivedBlock(QByteArray)),this, SLOT(receivedBlock(QByteArray))); connect(tcpServer, SIGNAL(answeredBlock(QByteArray)),this, SLOT(answeredBlock(QByteArray))); connect(this, SIGNAL(onTransmit()), tcpServer, SLOT(onTransmit())); connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(onSend())); } void MainWindow::on_toolBtnOpenXml_clicked() { QXmlStreamReader* xml; QFile* xmlfile; QString name, str; QString fileName = QFileDialog::getOpenFileName( this, tr("Выбор файла"), QString(), tr("XML files(*.xml)")); if (!fileName.isEmpty()){ tcpServer->rec_com.clear(); tcpServer->tr_com.clear(); ui->lineEdit->setText(fileName); xmlfile = new QFile(fileName); if(xmlfile->open(QIODevice::ReadOnly)){ xml = new QXmlStreamReader(xmlfile->readAll()); while (!xml->atEnd() && !xml->hasError()) { QXmlStreamReader::TokenType token = xml->readNext(); if (token == QXmlStreamReader::StartElement){ if (xml->name().toString() =="Receiver") parseRec(xml); if (xml->name().toString() =="Transmiter") parseTrans(xml); } } xmlfile->close(); ui->pushButton->setAutoRepeat(Loop); ui->pushButton->setAutoRepeatInterval(200); } delete xmlfile; delete xml; } else { } } void MainWindow::onSend() { emit onTransmit(); }
|
Оказывается я недопоняла хэлп: оказывается надо удерживать кнопку нажатой В принципе, наверное такой вариант вполне устроит.... |