我的 Qt4 应用程序在启动时不会在 Windows 7 和 Windows XP 的任务栏上显示为图标。我怎样才能让它出现?
当我最小化我的应用程序时,它会在左下角变成一个小的无窗口标题栏。
顺便说一句,我在我的 CMakeLists.txt 中执行以下操作,以防止控制台窗口与我的应用程序一起标记:
if(WIN32)
add_executable( codequery WIN32 ${CODEQUERY_SRCS} ${CODEQUERY_MOC_SRCS} ${CODEQUERY_RC_SRCS} ${CODEQUERY_UI_HDRS} ${QM} )
else()
add_executable( codequery ${CODEQUERY_SRCS} ${CODEQUERY_MOC_SRCS} ${CODEQUERY_RC_SRCS} ${CODEQUERY_UI_HDRS} ${QM} )
endif()
这是我的主要功能:
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QMainWindow *wndw = new QMainWindow;
mainwindow mw(wndw, &app);
mw.show();
return app.exec();
}
这是主窗口声明的一部分:
namespace Ui {
class MainWindow;
}
class mainwindow : public QMainWindow
{
Q_OBJECT
public:
Ui::MainWindow *ui;
mainwindow(QMainWindow *parent = NULL, QApplication *app = NULL);
virtual ~mainwindow();
这是它的构造函数的一部分:
#include "mainwindow.h"
#include "ui_mainWindow.h"
mainwindow::mainwindow(QMainWindow *parent, QApplication *app)
:QMainWindow(parent)
,m_app(app)
,ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
GUI 部分是使用 Qt Designer 设计的,生成为 ui_mainWindow.h。
setupUi 函数的一部分:
void setupUi(QMainWindow *MainWindow)
{
if (MainWindow->objectName().isEmpty())
MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
MainWindow->resize(629, 600);
QIcon icon;
icon.addFile(QString::fromUtf8(":/mainwindow/images/logo.png"), QSize(), QIcon::Normal, QIcon::Off);
MainWindow->setWindowIcon(icon);