Qt应用程序启动但未显示

时间:2015-09-26 19:08:01

标签: c++ qt

我有一个奇怪的问题,我在2个月前开发了一个小项目,我又开始研究它了。

问题是应用程序启动(因为我可以点击IDE中的停止按钮来杀死它)。但窗户没有显示。没有显示错误消息,我试图在IDE之外启动它(包含所有DLL和平台插件)。但这是一样的。

这是我的MainWindow构造函数:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow) {
    qDebug() << "R";
    ui->setupUi(this);
    ui->statusbar->setSizeGripEnabled(false);
    recorder = new QAudioRecorder(this);
    createTempDir();
    this->canProcessData = false;

    this->state = WAITING;
    this->mode = NONE;

    connect(this->recorder, SIGNAL(durationChanged(qint64)),
            this, SLOT(updateDuration(qint64)));
    connect(this->recorder, SIGNAL(statusChanged(QMediaRecorder::Status)),
            this, SLOT(updateStatus(QMediaRecorder::Status)));
    connect(this->recorder, SIGNAL(stateChanged(QMediaRecorder::State)),
            this, SLOT(onStateChanged(QMediaRecorder::State)));
    connect(this->recorder, SIGNAL(error(QMediaRecorder::Error)),
            this, SLOT(showError()));

    // list settings
    foreach(const QString &device, recorder->audioInputs()) {
        ui->input_device->addItem(device, QVariant(device));
    }
    foreach(const QString &codec, recorder->supportedAudioCodecs()) {
        ui->codec->addItem(codec, QVariant(codec));
    }
    foreach(int sample_rate, recorder->supportedAudioSampleRates()) {
        ui->sample_rate->addItem(QString::number(sample_rate), QVariant(sample_rate));
    }

    this->log("Ready :)");
}

这是main.cpp代码:

#include "mainwindow.h" 
#include <QApplication> 

int main(int argc, char *argv[]) {
    QApplication a(argc, argv); 

    qDebug() << "A"; 

    MainWindow w; 
    w.setFixedSize(720,455); 
    w.setWindowFlags(w.windowFlags() |= Qt::MSWindowsFixedSizeDialogHint); 
    w.show(); 

    return a.exec(); 

}

正如我所看到的,我在第一行有一个qDebug() << "R";,但它甚至没有显示。

我用谷歌搜索了它,但显然我能找到的只是DLL问题的主题。

我认为值得一提的是,当我2个月前放弃该项目时,我在同一台PC上,所有路径(编译器,库和Qt)都是相同的。

我知道你会感激你的事。

1 个答案:

答案 0 :(得分:0)

也许您使用的库定义了另一个main入口点,而您的入口点不会被调用。