这是我的 btconnect.h 文件
#ifndef BTCONNECT_H
#define BTCONNECT_H
#include "scandialog.h"
namespace Ui {
class BTConnect;
}
class BTConnect : public QWidget
{
    Q_OBJECT
public:
    explicit BTConnect(QWidget *parent = 0);
    ~BTConnect();
private slots:
    void on_ScanButton_clicked();
    void ScanBTDevices();
    //some slots here
    void ScanDialogShow();
    void ScanDialogClose();
public slots:
//some slots here
private:
    Ui::BTConnect *ui;
    QProcess BTscan_Process;
    scanDialog *scan;
};
#endif // BTCONNECT_H
btconnect.cpp
BTConnect::BTConnect(QWidget *parent) :
QWidget(parent),
ui(new Ui::BTConnect)
{
    //set the userinterface as BTConnect.ui
    ui->setupUi(this);
    scan = new scanDialog(this);
}
void BTConnect::ScanDialogShow()
{
    scan->show();
}
void BTConnect::ScanDialogClose()
{
    scan->close();
}
void BTConnect::ScanBTDevices()
{
    ScanDialogShow();
    //Command to scan nearby bluetooth devices
    //"hcitool scan"
    QString cmd("hcitool scan");
    //start the process
    BTscan_Process.start(cmd);
    //Wait for the processs to finish with a timeout of 20 seconds
    if(BTscan_Process.waitForFinished(20000))
    {
        //Clear the list widget
        this->ui->listWidget->clear();
        //Read the command line output and store it in QString out
        QString out(BTscan_Process.readAllStandardOutput());
        //Split the QString every new line and save theve in a QStringList
        QStringList OutSplit = out.split("\n");
        //Parse the QStringList in btCellsParser
        btCellsParser cp(OutSplit);
        for(unsigned int i = 0; i<cp.count(); i++)
        {
           //writing in listwidget
        }
    }
    ScanDialogClose();
}
void BTConnect::on_ScanButton_clicked()
{
    //Scan for available nearby bluetooth devices
    ScanBTDevices();
}
如果我使用上面的代码,qdialog scandialog 会在进程开始时打开并在 qlistwidget 中加载数据时关闭,但不会显示 qdialog scandialog 的内容。如果我将 show() 更改为 exec(),将显示内容,但 QProcess 在对话框关闭之前不会运行。
我希望对话框在 Qprocess 启动时打开,并在 qlistwidget 加载来自扫描的数据时关闭。我希望显示 scandialog 的内容。它有两个标签。一个带有 .GIF 文件,另一个带有文本说扫描。
任何帮助表示赞赏。