如何从主窗口调用QT中辅助窗口中的函数

  • 本文关键字:窗口 函数 调用 QT c++ qt qml
  • 更新时间 :
  • 英文 :


这是名为hello的辅助窗口中的函数

void hello::save()
{
QString file_name = QFileDialog::getSaveFileName(this,"Open the file","X://");
QFile file(file_name);
if(!file.open(QFile::WriteOnly | QFile::Text)){
QMessageBox::warning(this,"Error","File not Open");
return;
}
QTextStream out(&file);
QString text = ui->textEdit_sec->toPlainText();
out<<text;
file.flush();
file.close();
}

我需要这里的功能

void MainWindow::on_actionsavew_triggered()
{

}

为什么不在通用包含文件中使用静态函数:

void saveStatic(QWidget* parent, const QString& text)
{
QString file_name = QFileDialog::getSaveFileName(parent,"Open the file","X://");
QFile file(file_name);
if(!file.open(QFile::WriteOnly | QFile::Text)){
QMessageBox::warning(this,"Error","File not Open");
return;
}
QTextStream out(&file);
QString text =
out<<text;
file.flush();
file.close();
}

并从以下两个函数调用它:

void MainWindow::on_actionsavew_triggered()
{
saveStatic(this, ui->textEdit_sec->toPlainText());
}

void hello::save()
{
saveStatic(this, ui->textEdit_sec->toPlainText());
}

Qt的方法是使用信号和插槽。您的保存函数应该是您的插槽,并且在。。。函数应该调用一个信号。你可以用QObject连接两者::连接

最新更新