0

この質問は完全に初心者の質問なので、申し訳ありません。私はこのように見えるSLOTを持っています。

 void MainWindow::on_actionSelect_for_hashing_triggered()
 {

 QFile file(QFileDialog::getOpenFileName (this, tr("Open File"),
                                         "",tr("")));

     if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
         return;  
     QByteArray line = file.readAll();  
 }

今、私はこのように見える別のSLOTにラインを渡したい..

 void MainWindow::on_pushButton_clicked()
 {
  line2 = line;  // QByteArray line2 has been assigned globally
 qDebug()<<line2;
  }

したがって、ここでは、最初の SLOT の行から値を受け取る line2 を単純に出力したいと思います。どうすればそれを行うことができますか?

4

1 に答える 1

4
void MainWindow::on_actionSelect_for_hashing_triggered()
{

    QFile file(QFileDialog::getOpenFileName (this, tr("Open File"), "",tr("")));

    if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
        return;  
    QByteArray line = file.readAll();  
    on_pushButton_clicked( line );
}

void MainWindow::on_pushButton_clicked( const QByteArray& line )
{
    line2 = line;  // QByteArray line2 has been assigned globally
    qDebug()<<line2;
}

メソッドを呼び出して、バイト配列を渡すだけです。が必要な場合はon_pushButton_clicked()、オーバーロードするか、デフォルトの引数を指定してください。

実行時にそれらを接続/切断できるようにしたい場合は、受信できるon_actionSelect_for_hashing_triggered()ものを発行する必要がありon_pushButton_clicked(..)ます。

そして、グローバル変数を使用しないことについて、いつものスピーチをします...

于 2012-08-13T11:58:04.173 に答える