在Qt裡使用QSplashScreen類製作Splash啟動視窗

pamxy發表於2013-06-23

轉自:http://hi.baidu.com/xchinux/item/1f756d297f8ec8f950fd8796

發現在Qt論壇(http://www.qtcn.org)裡有幾個關於這方面的問題,其實這個問題即使不使用QSplashScreen也是很好解決的,就是一個簡單的無邊框(標題欄)的視窗,自己控制其顯示就行了。(我指的是Qt4 OpenSource版)

在Qt4中,可使用QSplashScreen來方便地製作啟示視窗。在文件中已經給了個例子了。
下面我帖一下我自己試驗的。

#include <QtGui/QtGui>
#include <QtGui/QPixmap>
#include <QtGui/QSplashScreen>
#include "ui_browser.h"

int main(int argc, char **argv)
{
QApplication app(argc, argv);

QPixmap pixmap("splash.png");
QSplashScreen *splash = new QSplashScreen(pixmap);
splash->show();

QMainWindow *form = new QMainWindow;
Ui::MainWindow ui;
ui.setupUi(form);
ui.textBrowser->setSource(QString("files:///C:/Qt/4.1.2/doc/html/index.html"));
form->show();

splash->finish(form);
delete splash;

return app.exec();



而採用計時器來控制顯示時間的話,可用下面方法自己製作SplashWindow。
注意,我裡面只是使用了簡單的QDialog來代替SplashWindow,使用的時候可自己用它來製作自己需要的SplashWindow

#include <QtGui/QtGui>
#include <QtGui/QDialog>
#include <QtCore/QTimer>
#include "ui_browser.h"

int main(int argc, char **argv)
{
QApplication app(argc, argv);

QDialog dialog;

QMainWindow *form = new QMainWindow;
Ui::MainWindow ui;
ui.setupUi(form);
ui.textBrowser->setSource(QString("files:///C:/Qt/4.1.2/doc/html/index.html"));

QTimer timer;
QObject::connect(&timer, SIGNAL(timeout()), form, SLOT(show()));
QObject::connect(&timer, SIGNAL(timeout()), &dialog, SLOT(accept()));
timer.start(10000);
dialog.exec();

return app.exec();
}

相關文章