• 6596阅读
  • 3回复

最小化至托盘的Icon问题(已解决) [复制链接]

上一主题 下一主题
离线realerge
 
只看楼主 倒序阅读 楼主  发表于: 2010-07-07
关键词: 界面最小化Icon
    大家好,感谢您花时间浏览本贴。
    我是Qt菜菜鸟,想实现一个把Dialog最小化的托盘的功能,Qt demo我也看了
    在SetIcon的时候总是报错,求牛人指教
    以下是代码

#ifndef LOGIN_H
#define LOGIN_H
#include <QtGui>
#include <QDialog>
#include "qtClass.h"
#include "loginLib.h"
#include "ngFolderUpdate.h"
#include "MsgDefine.h"
#include <QSystemTrayIcon>
QT_BEGIN_NAMESPACE
//class QAction;
//class QCheckBox;
//class QComboBox;
//class QGroupBox;
//class QLabel;
//class QLineEdit;
//class QMenu;
//class QPushButton;
//class QSpinBox;
//class QTextEdit;
class LOGIN ;
QT_END_NAMESPACE
namespace Ui
{class LOGIN;}
class LOGIN : public QDialog
{
    Q_OBJECT
public:
    explicit LOGIN(QWidget *parent = 0);
    ~LOGIN();
private slots:
    void getLogin();
    void getRegister();
    void getRec(Rec *rec);
 //void setIcon(int index);
protected:
    void changeEvent(QEvent *e);
 //void closeEvent(QCloseEvent *event);
private:
    Ui::LOGIN *ui;
    QString m_UserName;
    QString m_PassWord;
    UserLogin m_Login;
    bool NeedFirstUpdate();
    bool Check();
 //void createIconGroupBox();
 //QGroupBox *iconGroupBox;
 //QComboBox *iconComboBox;
 //QLabel *iconLabel;
 //QCheckBox *showIconCheckBox;
 
 QSystemTrayIcon * trayIcon;
};
#endif // LOGIN_H


void LOGIN::changeEvent(QEvent *e)
{
    QDialog::changeEvent(e);
    switch (e->type()) {
    case QEvent::LanguageChange:
        ui->retranslateUi(this);
        break;
 case QEvent::WindowStateChange:
   if (isMinimized())
   {
    
    trayIcon->setIcon(QIcon(":/images/up16.png"));
    hide();
    trayIcon->show();
    e->ignore();
   }
  break;
    default:
        break;
    }
}
[ 此帖被realerge在2010-07-08 22:10重新编辑 ]
离线leohui1988

只看该作者 1楼 发表于: 2010-07-08
new QSystemTrayIcon试试
实在不知道为什么就加断点跟踪一下看看吧
知道怎么调程序有时候也很重要
离线realerge
只看该作者 2楼 发表于: 2010-07-08
多谢,已解决
离线情如戏
只看该作者 3楼 发表于: 2010-07-13
如果要在程序中转换的话,推荐CXimage可以把jpg、jpeg、bmp等等转成ico,很方便的
快速回复
限100 字节
 
上一个 下一个