我有一个奇怪的问题,我在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)都是相同的。
我知道你会感激你的事。
答案 0 :(得分:0)
也许您使用的库定义了另一个main
入口点,而您的入口点不会被调用。