QT 设计启动界面
今天为QT设计开机界面,从网上copy的是代码先张贴如下:
#include <QApplication> #include <QTextEdit> #include <QSplashScreen> #include <QtTest> int main(int argc, char *argv[]) { QApplication app(argc, argv); QSplashScreen *splash = new QSplashScreen; splash->setPixmap(QPixmap("img/logo.jpg")); splash->show(); Qt::Alignment topRight = Qt::AlignRight | Qt::AlignTop; splash->showMessage(QObject::tr("Setting up the main Window..."), topRight, Qt::red); QTest::qSleep(3000); QTextEdit *textEdit = new QTextEdit; splash->showMessage(QObject::tr("Loading modules..."), topRight, Qt::blue); QTest::qSleep(3000); textEdit->show(); splash->finish(textEdit); delete splash; return app.exec(); }
当然根据QT对于QtTest的指导文档,我们要在我们工程文件中 (*.pro)添加 QT+= testlib 这么一句,要不会大大的报错。
完成了之后发现启动界面有了,但是先出现一个透明的框,没有图片,然后等待几秒,图片一闪而过。
main.cpp改为:
#include <QApplication> #include <QTextEdit> #include <QSplashScreen> #include <QPixmap> #include <mainwindow.h> int main(int argc, char *argv[]) { QApplication app(argc, argv); QSplashScreen *splash = new QSplashScreen; splash->setPixmap(QPixmap("img/logo.jpg")); splash->show(); Qt::Alignment topRight = Qt::AlignRight | Qt::AlignTop; QTextEdit *textEdit = new QTextEdit; splash->showMessage(QObject::tr("Loading modules..."), topRight, Qt::blue); MainWindow window; window.show(); splash->finish(textEdit); delete splash; return app.exec(); }
mainwindow.cpp改为:
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QTextEdit> #include <QDateTime> #include <QCoreApplication> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { QTextEdit *edit=new QTextEdit; edit->setText("Splash Example!"); setCentralWidget(edit); resize(600,450); QDateTime n=QDateTime::currentDateTime(); QDateTime now; do{ now=QDateTime::currentDateTime(); QCoreApplication::processEvents(); } while (n.secsTo(now)<=5);//5为需要延时的秒数 ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; }
成功运行
这篇文章跟我转载那篇是一样的