2012-08-13 81 views
0

這個問題絕對是一個新手問題,所以我對此表示歉意。我有一個幾乎看起來像這樣的SLOT。如何將價值從一個SLOT傳遞到另一個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(); 
} 

現在我想通過線到我的另一個插槽是這個樣子..

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

所以在這裏我只是想打印2號線將從從第一槽線獲得價值。 我該怎麼做?

+2

您可以使'line'成爲MainWindow類的成員變量。 – sje397 2012-08-13 11:54:41

回答

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(..)可以接收的內容。

而且我將就不使用全局變量的通常演講...

+0

解決了......非常感謝您的快速回復。 – muktoshuvro 2012-08-13 12:04:39

相關問題