2013-04-13 3 views
1

Qt4 응용 프로그램을 실행하면 Windows 7 및 Windows XP의 작업 표시 줄에 아이콘으로 나타나지 않습니다. 어떻게 보이게 할 수 있습니까?Qt4 응용 프로그램 아이콘이 Windows 작업 표시 줄에 나타나지 않습니다.

내 앱을 최소화하면 왼쪽 하단의 작은 창없는 제목 표시 줄이됩니다.

그리고 그런데

, 나는 내 CMakeLists.txt에 다음과 같은 일을 해요 내 응용 프로그램과 함께 태그에서 콘솔 창을 방지하기 위해 :

#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(); 
} 
:

가 여기 내 주요 기능입니다
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() 

여기 MainWindow를 선언의 일부 :

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); 
+0

세부 사항이 더 필요합니다. 문제의 최소 (자체 포함, 컴파일) 코드 예제를 게시하십시오. –

+0

확인. 자세한 내용이 추가되었습니다. – ruben2020

+0

setWindowIcon (const QIcon & icon)을 사용해 보셨습니까? – IKM2007

답변

1

내가 그것을 발견! WS_EX_APPWINDOW를 추가해야합니다.

#ifdef _WIN32 
#include <windows.h> 
#endif 

#include "mainwindow.h" 


int main(int argc, char *argv[]) 
{ 
    QApplication app(argc, argv); 
    QMainWindow *wndw = new QMainWindow; 
    mainwindow mw(wndw, &app); 

    mw.show(); 

#ifdef _WIN32 
    ShowWindow(mw.winId(), SW_HIDE); 
    SetWindowLongPtr(mw.winId(), GWL_EXSTYLE, 
       GetWindowLongPtr(mw.winId(), GWL_EXSTYLE) | WS_EX_APPWINDOW); 
    ShowWindow(mw.winId(), SW_SHOW); 
#endif 

    return app.exec(); 
} 
+0

이것은 나에게 흥미 롭다. 나는 WS_EX_APPWINDOW 나 다른 윈도우를 설정하지 않는다. Qt/CMake/VisualStudio로 빌드하는 모든 단일 애플리케이션에 플래그와 아이콘이 나타난다. – drescherjm

+0

Qt/CMake/MinGW를 사용하고 있습니다. 그러나 Qt Designer에서 일부 속성을 설정하지 않았을 수도 있습니다. – ruben2020

관련 문제