├── .gitignore ├── QQStars.pro ├── README.md ├── deployment.pri ├── faces.qrc ├── faces └── classic │ ├── 0.gif │ ├── 0.png │ ├── 1.gif │ ├── 1.png │ ├── 10.gif │ ├── 10.png │ ├── 100.gif │ ├── 100.png │ ├── 101.gif │ ├── 101.png │ ├── 102.gif │ ├── 102.png │ ├── 103.gif │ ├── 103.png │ ├── 104.gif │ ├── 104.png │ ├── 105.gif │ ├── 105.png │ ├── 106.gif │ ├── 106.png │ ├── 107.gif │ ├── 107.png │ ├── 108.gif │ ├── 108.png │ ├── 109.gif │ ├── 109.png │ ├── 11.gif │ ├── 11.png │ ├── 110.gif │ ├── 110.png │ ├── 111.gif │ ├── 111.png │ ├── 112.gif │ ├── 112.png │ ├── 113.gif │ ├── 113.png │ ├── 114.gif │ ├── 114.png │ ├── 115.gif │ ├── 115.png │ ├── 116.gif │ ├── 116.png │ ├── 117.gif │ ├── 117.png │ ├── 118.gif │ ├── 118.png │ ├── 119.gif │ ├── 119.png │ ├── 12.gif │ ├── 12.png │ ├── 120.gif │ ├── 120.png │ ├── 121.gif │ ├── 121.png │ ├── 122.gif │ ├── 122.png │ ├── 123.gif │ ├── 123.png │ ├── 124.png │ ├── 125.gif │ ├── 125.png │ ├── 126.gif │ ├── 126.png │ ├── 127.gif │ ├── 127.png │ ├── 128.gif │ ├── 128.png │ ├── 129.gif │ ├── 129.png │ ├── 13.gif │ ├── 13.png │ ├── 130.gif │ ├── 130.png │ ├── 131.gif │ ├── 131.png │ ├── 132.gif │ ├── 132.png │ ├── 133.gif │ ├── 133.png │ ├── 134.gif │ ├── 134.png │ ├── 14.gif │ ├── 14.png │ ├── 2.gif │ ├── 2.png │ ├── 21.png │ ├── 23.gif │ ├── 23.png │ ├── 25.png │ ├── 26.gif │ ├── 26.png │ ├── 27.gif │ ├── 27.png │ ├── 29.gif │ ├── 29.png │ ├── 3.gif │ ├── 3.png │ ├── 32.png │ ├── 33.png │ ├── 34.png │ ├── 36.png │ ├── 37.gif │ ├── 37.png │ ├── 38.gif │ ├── 38.png │ ├── 39.png │ ├── 4.gif │ ├── 4.png │ ├── 42.png │ ├── 45.png │ ├── 46.gif │ ├── 46.png │ ├── 47.gif │ ├── 47.png │ ├── 5.gif │ ├── 5.png │ ├── 50.png │ ├── 51.gif │ ├── 51.png │ ├── 53.gif │ ├── 53.png │ ├── 54.gif │ ├── 54.png │ ├── 55.gif │ ├── 55.png │ ├── 56.gif │ ├── 56.png │ ├── 57.gif │ ├── 57.png │ ├── 58.gif │ ├── 58.png │ ├── 59.png │ ├── 6.gif │ ├── 6.png │ ├── 62.gif │ ├── 62.png │ ├── 63.gif │ ├── 63.png │ ├── 64.png │ ├── 7.gif │ ├── 7.png │ ├── 71.gif │ ├── 71.png │ ├── 72.gif │ ├── 72.png │ ├── 73.gif │ ├── 73.png │ ├── 74.gif │ ├── 74.png │ ├── 75.gif │ ├── 75.png │ ├── 76.gif │ ├── 76.png │ ├── 77.gif │ ├── 77.png │ ├── 78.gif │ ├── 78.png │ ├── 79.gif │ ├── 79.png │ ├── 8.gif │ ├── 8.png │ ├── 80.gif │ ├── 80.png │ ├── 81.gif │ ├── 81.png │ ├── 82.gif │ ├── 82.png │ ├── 83.gif │ ├── 83.png │ ├── 84.gif │ ├── 84.png │ ├── 85.png │ ├── 86.png │ ├── 87.gif │ ├── 87.png │ ├── 88.gif │ ├── 88.png │ ├── 9.gif │ ├── 9.png │ ├── 91.png │ ├── 93.gif │ ├── 93.png │ ├── 95.gif │ ├── 95.png │ ├── 96.gif │ ├── 96.png │ ├── 97.gif │ ├── 97.png │ ├── 98.gif │ ├── 98.png │ ├── 99.gif │ ├── 99.png │ ├── K歌.png │ ├── dfp.png │ ├── dfr.png │ ├── dhp.png │ ├── 下雨.png │ ├── 下面.png │ ├── 双喜.png │ ├── 发财.png │ ├── 喝奶.png │ ├── 喝彩.png │ ├── 多云.png │ ├── 帅.png │ ├── 开车.png │ ├── 彩球.png │ ├── 手枪.png │ ├── 打伞.png │ ├── 棒棒糖.png │ ├── 沙发.png │ ├── 灯泡.png │ ├── 灯笼.png │ ├── 熊猫.png │ ├── 爆筋.png │ ├── 祈祷.png │ ├── 纸巾.png │ ├── 药.png │ ├── 购物.png │ ├── 车厢.png │ ├── 邮件.png │ ├── 钞票.png │ ├── 钻戒.png │ ├── 闹钟.png │ ├── 青蛙.png │ ├── 鞭炮.png │ ├── 风车.png │ ├── 飞机.png │ ├── 香蕉.png │ ├── 高铁右车头.png │ └── 高铁左车头.png ├── images.qrc ├── images ├── QQ-for-ubuntu.svg ├── TempSession_press.png ├── avatar-border.svg ├── avatar.png ├── avatar.svg ├── avatar_left.png ├── background_arabesquitic.svg ├── background_arabesquitic2.svg ├── background_input.png ├── bit.bmp ├── blueStar.png ├── bubble_微笑河马_left.png ├── bubble_微笑河马_right.png ├── bubble_放飞心情_left.png ├── bubble_放飞心情_right.png ├── bubble_祈福_left.png ├── bubble_祈福_right.png ├── bubble_经典_left.png ├── bubble_经典_right.png ├── button-login-hover.svg ├── button-login-press.svg ├── button-login.svg ├── button-minimize.svg ├── button-quit.svg ├── button-settings.svg ├── checkBox-hover.svg ├── checkBox-select.svg ├── checkBox-unselect.svg ├── contact_press.png ├── dud.png ├── duz.png ├── friendList_select.svg ├── friendList_unselect.svg ├── greenStar.png ├── groupList_select.svg ├── groupList_unselect.svg ├── group_press.png ├── imaway.png ├── imbusy.png ├── imcallme.png ├── imhidden.png ├── imoffline.png ├── imonline.png ├── imsilent.png ├── inputBox-close.svg ├── inputBox-more.svg ├── inputBox-password-clicked.svg ├── inputBox-password-hover.svg ├── inputBox-qq-clicked.svg ├── inputBox-qq-hover.svg ├── inputBox.svg ├── inputBox1.png ├── inputBox1.svg ├── inputBox2.png ├── inputBox2.svg ├── list_arrow_down.png ├── list_arrow_up.png ├── list_item.png ├── list_item_bottom.png ├── loading.png ├── lock20.png ├── login-panel-shadow.png ├── login-panel.svg ├── login-panel2.svg ├── menu_background.png ├── progress-bar.png ├── recentList_select.svg ├── recentList_unselect.svg ├── soft-keyboard.svg ├── star.png ├── status-away-1.svg ├── status-busy-1.svg ├── status-callme-1.svg ├── status-hidden-1.svg ├── status-online-1.svg ├── status-silent-1.svg ├── unfold_icon.png ├── unlock20.png └── 未标题-1.png ├── introduce ├── login.jpg ├── mainWindow.jpg ├── 好友列表.jpg ├── 好友聊天页.jpg ├── 最近联系人列表.jpg ├── 群列表.jpg ├── 群聊天页.jpg ├── 讨论组列表.jpg ├── 讨论组聊天页.jpg └── 设置界面.jpg ├── other.qrc ├── qml.qrc ├── qml ├── Api │ ├── QQApi.qml │ └── api.js ├── Chat │ ├── ChatPage.qml │ ├── ChatWindowCommand.qml │ ├── DiscuChatPage.qml │ ├── FriendChatPage.qml │ ├── GroupChatPage.qml │ ├── MessageListComponent.qml │ └── qqshow.png ├── Login │ ├── LoginPanel │ │ ├── AccountList.qml │ │ ├── LoginCheckBox.qml │ │ ├── LoginInputArea.qml │ │ └── LoginPage.qml │ ├── MyLoginButton.qml │ ├── SettingPage.qml │ └── main.qml ├── MainPanel │ ├── ListPage │ │ ├── AllListPage.qml │ │ ├── DiscuList.qml │ │ ├── FriendList.qml │ │ ├── GroupAndDiscuPage.qml │ │ ├── GroupList.qml │ │ └── RecentList.qml │ ├── MainPanelPage.qml │ └── main.qml ├── QQItemInfo │ ├── DiscuInfo.qml │ ├── FriendInfo.qml │ └── GroupInfo.qml └── Utility │ ├── CodeInput.qml │ ├── ComboBox │ ├── MyComboBox.qml │ └── MyComboBoxComponent.qml │ ├── KeyboardPage │ ├── SoftKeyboard.qml │ └── SoftKeyboardButton.qml │ ├── MyButton.qml │ ├── MyMessageBox.qml │ ├── MyRectangularGlow.qml │ ├── MyScrollView.qml │ ├── MyTextArea.qml │ ├── MyTextField.qml │ ├── MyTextView.qml │ ├── MyWindow.qml │ ├── SystemTray.qml │ └── TrayMessageWindow.qml ├── qmlapplicationviewer.pri ├── qt_zh_CN.qm ├── sound ├── Audio.wav ├── Global.wav ├── msg.wav ├── shake.wav ├── system.wav └── tweet.wav ├── src ├── main.cpp ├── mywidgets │ ├── myimage.cpp │ ├── myimage.h │ ├── mymessagebox.cpp │ ├── mymessagebox.h │ ├── mysvgview.cpp │ ├── mysvgview.h │ ├── mywindow.cpp │ ├── mywindow.h │ ├── systemtrayicon.cpp │ └── systemtrayicon.h ├── qqstars │ ├── qqiteminfo.cpp │ ├── qqiteminfo.h │ ├── qqstars.cpp │ └── qqstars.h ├── qxtglobalshortcut │ ├── myshortcut.cpp │ ├── myshortcut.h │ ├── qxtglobal.h │ ├── qxtglobalshortcut.cpp │ ├── qxtglobalshortcut.h │ ├── qxtglobalshortcut.pri │ ├── qxtglobalshortcut_mac.cpp │ ├── qxtglobalshortcut_p.h │ ├── qxtglobalshortcut_win.cpp │ └── qxtglobalshortcut_x11.cpp └── utility │ ├── downloadimage.cpp │ ├── downloadimage.h │ ├── myhttprequest.cpp │ ├── myhttprequest.h │ ├── mynetworkaccessmanagerfactory.cpp │ ├── mynetworkaccessmanagerfactory.h │ ├── texteditplaygif.cpp │ ├── texteditplaygif.h │ ├── utility.cpp │ └── utility.h ├── style.qrc └── style ├── menuStyle.css └── messageBoxStyle.css /.gitignore: -------------------------------------------------------------------------------- 1 | # C++ objects and libs 2 | 3 | *.slo 4 | *.lo 5 | *.o 6 | *.a 7 | *.la 8 | *.lai 9 | *.so 10 | *.dll 11 | *.dylib 12 | 13 | # Qt-es 14 | 15 | /.qmake.cache 16 | /.qmake.stash 17 | *.pro.user 18 | *.pro.user.* 19 | *.moc 20 | moc_*.cpp 21 | qrc_*.cpp 22 | ui_*.h 23 | Makefile* 24 | *-build-* 25 | 26 | # QtCreator 27 | 28 | *.autosave 29 | 30 | #QtCtreator Qml 31 | *.qmlproject.user 32 | *.qmlproject.user.* 33 | 34 | #custom 35 | /build 36 | -------------------------------------------------------------------------------- /QQStars.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | TARGET = QQStars 3 | 4 | QT += widgets network webkit svg qml quick concurrent sql quick-private#widgets-private core-private gui-private 5 | QT += webkitwidgets 6 | 7 | linux:LIBS += -lXext 8 | 9 | INCLUDEPATH += \ 10 | src \ 11 | src/qxtglobalshortcut \ 12 | src/qqstars \ 13 | src/mywidgets \ 14 | src/utility 15 | 16 | SOURCES += src/main.cpp \ 17 | src/utility/mynetworkaccessmanagerfactory.cpp \ 18 | src/utility/utility.cpp \ 19 | src/mywidgets/mywindow.cpp \ 20 | src/qqstars/qqstars.cpp \ 21 | src/mywidgets/systemtrayicon.cpp \ 22 | src/mywidgets/mysvgview.cpp \ 23 | src/mywidgets/myimage.cpp \ 24 | src/mywidgets/mymessagebox.cpp \ 25 | src/utility/myhttprequest.cpp \ 26 | src/qqstars/qqiteminfo.cpp \ 27 | src/utility/downloadimage.cpp \ 28 | src/utility/texteditplaygif.cpp 29 | 30 | RESOURCES += \ 31 | images.qrc \ 32 | other.qrc \ 33 | faces.qrc \ 34 | qml.qrc \ 35 | style.qrc 36 | 37 | # Additional import path used to resolve QML modules in Qt Creator's code model 38 | QML_IMPORT_PATH = 39 | 40 | # Default rules for deployment. 41 | include(deployment.pri) 42 | include (src/qxtglobalshortcut/qxtglobalshortcut.pri) 43 | #include (qmlapplicationviewer.pri) 44 | #qtcAddDeployment() 45 | HEADERS += \ 46 | src/utility/mynetworkaccessmanagerfactory.h \ 47 | src/utility/utility.h \ 48 | src/mywidgets/mywindow.h \ 49 | src/qqstars/qqstars.h \ 50 | src/mywidgets/systemtrayicon.h \ 51 | src/mywidgets/mysvgview.h \ 52 | src/mywidgets/myimage.h \ 53 | src/mywidgets/mymessagebox.h \ 54 | src/utility/myhttprequest.h \ 55 | src/qqstars/qqiteminfo.h \ 56 | src/utility/downloadimage.h \ 57 | src/utility/texteditplaygif.h 58 | 59 | OTHER_FILES += \ 60 | qml/Utility/CodeInput.qml \ 61 | qml/Utility/MyButton.qml \ 62 | qml/Utility/MyMessageBox.qml \ 63 | qml/Utility/MyTextArea.qml \ 64 | qml/Utility/MyTextField.qml \ 65 | qml/Utility/SystemTray.qml \ 66 | qml/Api/api.js \ 67 | qml/Api/QQApi.qml \ 68 | qml/Login/KeyboardPage/SoftKeyboard.qml \ 69 | qml/Login/KeyboardPage/SoftKeyboardButton.qml \ 70 | qml/Login/main.qml \ 71 | qml/Login/SettingPage.qml \ 72 | qml/MainPanel/ChatWindow/qqshow.png \ 73 | qml/MainPanel/ListPage/AllListPage.qml \ 74 | qml/MainPanel/ListPage/FriendList.qml \ 75 | qml/MainPanel/ListPage/GroupList.qml \ 76 | qml/MainPanel/ListPage/RecentList.qml \ 77 | qml/MainPanel/main.qml \ 78 | qml/MainPanel/MainPanelPage.qml \ 79 | qml/Utility/ComboBox/MyComboBox.qml \ 80 | qml/Utility/ComboBox/MyComboBoxComponent.qml \ 81 | qml/Login/MyLoginButton.qml \ 82 | qml/Chat/ChatWindowCommand.qml \ 83 | qml/Chat/MessageListComponent.qml \ 84 | qml/Chat/qqshow.png \ 85 | qml/Utility/KeyboardPage/SoftKeyboard.qml \ 86 | qml/Utility/KeyboardPage/SoftKeyboardButton.qml \ 87 | qml/Utility/MyRectangularGlow.qml \ 88 | qml/Utility/MyWindow.qml \ 89 | qml/Utility/MyScrollView.qml \ 90 | qml/Login/LoginPanel/AccountList.qml \ 91 | qml/Login/LoginPanel/LoginCheckBox.qml \ 92 | qml/Login/LoginPanel/LoginInputArea.qml \ 93 | qml/Login/LoginPanel/LoginPage.qml \ 94 | qml/QQItemInfo/DiscuInfo.qml \ 95 | qml/QQItemInfo/FriendInfo.qml \ 96 | qml/QQItemInfo/GroupInfo.qml \ 97 | qml/MainPanel/ListPage/DiscuList.qml \ 98 | qml/MainPanel/ListPage/GroupAndDiscuPage.qml \ 99 | style/menuStyle.css \ 100 | style/messageBoxStyle.css \ 101 | qml/Chat/FriendChatPage.qml \ 102 | qml/Chat/GroupChatPage.qml \ 103 | qml/Chat/DiscuChatPage.qml \ 104 | qml/Chat/ChatPage.qml \ 105 | qml/Utility/TrayMessageWindow.qml \ 106 | qml/Login/textedit.html \ 107 | qml/Utility/MyTextView.qml 108 | 109 | FORMS += 110 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | #### 接口都已失效,此程序不在更新。 2 | 3 | QQStars 4 | ======= 5 | 此开源代码使用GPL授权方式 6 | 7 | 8 | 基于webqq协议的qq客户端,qt开发,可跨平台(主要给linux用户用,windows用户肯定不稀罕了) 9 | 10 | 开发环境windows 7,qt 5.3.2 11 | 12 | 下载链接:http://pan.baidu.com/s/1ntwW5DZ 密码: eeir。 13 | 其中QQStars-20141215gitd665984-1.fc21.x86_64.rpmQQStars-20141215gitd665984-1.fc21.src.rpm 14 | 为朋友LunarShaddow编译和打包,在此表示衷心的感谢。 15 | 16 | 直接解压,windows下直接运行QQStars.exe。 17 | linux下运行QQStars.sh,如果程序无法启动就给同目录的QQStars加可执行权限。如果还是无法启动就是用终端运行QQStars.sh看有什么错误提示 18 | 19 | 在LInux下如果无法输入中文的话请看此博客:http://www.cnblogs.com/AfterTheRainOfStars/p/3768484.html#3022718 20 | 21 | ![登录界面](https://github.com/AfterTheRainOfStars/QQStars/blob/master/introduce/login.jpg) 22 | ![设置界面](https://github.com/AfterTheRainOfStars/QQStars/blob/master/introduce/设置界面.jpg) 23 | ![主面板](https://github.com/AfterTheRainOfStars/QQStars/blob/master/introduce/mainWindow.jpg) 24 | ![好友列表](https://github.com/AfterTheRainOfStars/QQStars/blob/master/introduce/好友列表.jpg) 25 | ![群列表](https://github.com/AfterTheRainOfStars/QQStars/blob/master/introduce/群列表.jpg) 26 | ![讨论组](https://github.com/AfterTheRainOfStars/QQStars/blob/master/introduce/讨论组列表.jpg) 27 | ![最近联系人列表](https://github.com/AfterTheRainOfStars/QQStars/blob/master/introduce/最近联系人列表.jpg) 28 | ![好友聊天](https://github.com/AfterTheRainOfStars/QQStars/blob/master/introduce/好友聊天页.jpg) 29 | ![群聊天](https://github.com/AfterTheRainOfStars/QQStars/blob/master/introduce/群聊天页.jpg) 30 | ![讨论组聊天](https://github.com/AfterTheRainOfStars/QQStars/blob/master/introduce/讨论组聊天页.jpg) 31 | -------------------------------------------------------------------------------- /deployment.pri: -------------------------------------------------------------------------------- 1 | android-no-sdk { 2 | target.path = /data/user/qt 3 | export(target.path) 4 | INSTALLS += target 5 | } else:android { 6 | x86 { 7 | target.path = /libs/x86 8 | } else: armeabi-v7a { 9 | target.path = /libs/armeabi-v7a 10 | } else { 11 | target.path = /libs/armeabi 12 | } 13 | export(target.path) 14 | INSTALLS += target 15 | } else:unix { 16 | isEmpty(target.path) { 17 | qnx { 18 | target.path = /tmp/$${TARGET}/bin 19 | } else { 20 | target.path = /opt/$${TARGET}/bin 21 | } 22 | export(target.path) 23 | } 24 | INSTALLS += target 25 | } 26 | 27 | export(INSTALLS) 28 | -------------------------------------------------------------------------------- /faces/classic/0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/0.gif -------------------------------------------------------------------------------- /faces/classic/0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/0.png -------------------------------------------------------------------------------- /faces/classic/1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/1.gif -------------------------------------------------------------------------------- /faces/classic/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/1.png -------------------------------------------------------------------------------- /faces/classic/10.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/10.gif -------------------------------------------------------------------------------- /faces/classic/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/10.png -------------------------------------------------------------------------------- /faces/classic/100.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/100.gif -------------------------------------------------------------------------------- /faces/classic/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/100.png -------------------------------------------------------------------------------- /faces/classic/101.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/101.gif -------------------------------------------------------------------------------- /faces/classic/101.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/101.png -------------------------------------------------------------------------------- /faces/classic/102.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/102.gif -------------------------------------------------------------------------------- /faces/classic/102.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/102.png -------------------------------------------------------------------------------- /faces/classic/103.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/103.gif -------------------------------------------------------------------------------- /faces/classic/103.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/103.png -------------------------------------------------------------------------------- /faces/classic/104.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/104.gif -------------------------------------------------------------------------------- /faces/classic/104.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/104.png -------------------------------------------------------------------------------- /faces/classic/105.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/105.gif -------------------------------------------------------------------------------- /faces/classic/105.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/105.png -------------------------------------------------------------------------------- /faces/classic/106.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/106.gif -------------------------------------------------------------------------------- /faces/classic/106.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/106.png -------------------------------------------------------------------------------- /faces/classic/107.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/107.gif -------------------------------------------------------------------------------- /faces/classic/107.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/107.png -------------------------------------------------------------------------------- /faces/classic/108.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/108.gif -------------------------------------------------------------------------------- /faces/classic/108.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/108.png -------------------------------------------------------------------------------- /faces/classic/109.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/109.gif -------------------------------------------------------------------------------- /faces/classic/109.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/109.png -------------------------------------------------------------------------------- /faces/classic/11.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/11.gif -------------------------------------------------------------------------------- /faces/classic/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/11.png -------------------------------------------------------------------------------- /faces/classic/110.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/110.gif -------------------------------------------------------------------------------- /faces/classic/110.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/110.png -------------------------------------------------------------------------------- /faces/classic/111.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/111.gif -------------------------------------------------------------------------------- /faces/classic/111.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/111.png -------------------------------------------------------------------------------- /faces/classic/112.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/112.gif -------------------------------------------------------------------------------- /faces/classic/112.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/112.png -------------------------------------------------------------------------------- /faces/classic/113.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/113.gif -------------------------------------------------------------------------------- /faces/classic/113.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/113.png -------------------------------------------------------------------------------- /faces/classic/114.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/114.gif -------------------------------------------------------------------------------- /faces/classic/114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/114.png -------------------------------------------------------------------------------- /faces/classic/115.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/115.gif -------------------------------------------------------------------------------- /faces/classic/115.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/115.png -------------------------------------------------------------------------------- /faces/classic/116.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/116.gif -------------------------------------------------------------------------------- /faces/classic/116.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/116.png -------------------------------------------------------------------------------- /faces/classic/117.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/117.gif -------------------------------------------------------------------------------- /faces/classic/117.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/117.png -------------------------------------------------------------------------------- /faces/classic/118.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/118.gif -------------------------------------------------------------------------------- /faces/classic/118.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/118.png -------------------------------------------------------------------------------- /faces/classic/119.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/119.gif -------------------------------------------------------------------------------- /faces/classic/119.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/119.png -------------------------------------------------------------------------------- /faces/classic/12.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/12.gif -------------------------------------------------------------------------------- /faces/classic/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/12.png -------------------------------------------------------------------------------- /faces/classic/120.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/120.gif -------------------------------------------------------------------------------- /faces/classic/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/120.png -------------------------------------------------------------------------------- /faces/classic/121.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/121.gif -------------------------------------------------------------------------------- /faces/classic/121.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/121.png -------------------------------------------------------------------------------- /faces/classic/122.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/122.gif -------------------------------------------------------------------------------- /faces/classic/122.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/122.png -------------------------------------------------------------------------------- /faces/classic/123.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/123.gif -------------------------------------------------------------------------------- /faces/classic/123.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/123.png -------------------------------------------------------------------------------- /faces/classic/124.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/124.png -------------------------------------------------------------------------------- /faces/classic/125.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/125.gif -------------------------------------------------------------------------------- /faces/classic/125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/125.png -------------------------------------------------------------------------------- /faces/classic/126.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/126.gif -------------------------------------------------------------------------------- /faces/classic/126.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/126.png -------------------------------------------------------------------------------- /faces/classic/127.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/127.gif -------------------------------------------------------------------------------- /faces/classic/127.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/127.png -------------------------------------------------------------------------------- /faces/classic/128.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/128.gif -------------------------------------------------------------------------------- /faces/classic/128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/128.png -------------------------------------------------------------------------------- /faces/classic/129.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/129.gif -------------------------------------------------------------------------------- /faces/classic/129.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/129.png -------------------------------------------------------------------------------- /faces/classic/13.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/13.gif -------------------------------------------------------------------------------- /faces/classic/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/13.png -------------------------------------------------------------------------------- /faces/classic/130.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/130.gif -------------------------------------------------------------------------------- /faces/classic/130.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/130.png -------------------------------------------------------------------------------- /faces/classic/131.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/131.gif -------------------------------------------------------------------------------- /faces/classic/131.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/131.png -------------------------------------------------------------------------------- /faces/classic/132.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/132.gif -------------------------------------------------------------------------------- /faces/classic/132.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/132.png -------------------------------------------------------------------------------- /faces/classic/133.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/133.gif -------------------------------------------------------------------------------- /faces/classic/133.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/133.png -------------------------------------------------------------------------------- /faces/classic/134.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/134.gif -------------------------------------------------------------------------------- /faces/classic/134.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/134.png -------------------------------------------------------------------------------- /faces/classic/14.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/14.gif -------------------------------------------------------------------------------- /faces/classic/14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/14.png -------------------------------------------------------------------------------- /faces/classic/2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/2.gif -------------------------------------------------------------------------------- /faces/classic/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/2.png -------------------------------------------------------------------------------- /faces/classic/21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/21.png -------------------------------------------------------------------------------- /faces/classic/23.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/23.gif -------------------------------------------------------------------------------- /faces/classic/23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/23.png -------------------------------------------------------------------------------- /faces/classic/25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/25.png -------------------------------------------------------------------------------- /faces/classic/26.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/26.gif -------------------------------------------------------------------------------- /faces/classic/26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/26.png -------------------------------------------------------------------------------- /faces/classic/27.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/27.gif -------------------------------------------------------------------------------- /faces/classic/27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/27.png -------------------------------------------------------------------------------- /faces/classic/29.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/29.gif -------------------------------------------------------------------------------- /faces/classic/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/29.png -------------------------------------------------------------------------------- /faces/classic/3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/3.gif -------------------------------------------------------------------------------- /faces/classic/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/3.png -------------------------------------------------------------------------------- /faces/classic/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/32.png -------------------------------------------------------------------------------- /faces/classic/33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/33.png -------------------------------------------------------------------------------- /faces/classic/34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/34.png -------------------------------------------------------------------------------- /faces/classic/36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/36.png -------------------------------------------------------------------------------- /faces/classic/37.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/37.gif -------------------------------------------------------------------------------- /faces/classic/37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/37.png -------------------------------------------------------------------------------- /faces/classic/38.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/38.gif -------------------------------------------------------------------------------- /faces/classic/38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/38.png -------------------------------------------------------------------------------- /faces/classic/39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/39.png -------------------------------------------------------------------------------- /faces/classic/4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/4.gif -------------------------------------------------------------------------------- /faces/classic/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/4.png -------------------------------------------------------------------------------- /faces/classic/42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/42.png -------------------------------------------------------------------------------- /faces/classic/45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/45.png -------------------------------------------------------------------------------- /faces/classic/46.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/46.gif -------------------------------------------------------------------------------- /faces/classic/46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/46.png -------------------------------------------------------------------------------- /faces/classic/47.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/47.gif -------------------------------------------------------------------------------- /faces/classic/47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/47.png -------------------------------------------------------------------------------- /faces/classic/5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/5.gif -------------------------------------------------------------------------------- /faces/classic/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/5.png -------------------------------------------------------------------------------- /faces/classic/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/50.png -------------------------------------------------------------------------------- /faces/classic/51.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/51.gif -------------------------------------------------------------------------------- /faces/classic/51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/51.png -------------------------------------------------------------------------------- /faces/classic/53.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/53.gif -------------------------------------------------------------------------------- /faces/classic/53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/53.png -------------------------------------------------------------------------------- /faces/classic/54.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/54.gif -------------------------------------------------------------------------------- /faces/classic/54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/54.png -------------------------------------------------------------------------------- /faces/classic/55.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/55.gif -------------------------------------------------------------------------------- /faces/classic/55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/55.png -------------------------------------------------------------------------------- /faces/classic/56.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/56.gif -------------------------------------------------------------------------------- /faces/classic/56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/56.png -------------------------------------------------------------------------------- /faces/classic/57.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/57.gif -------------------------------------------------------------------------------- /faces/classic/57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/57.png -------------------------------------------------------------------------------- /faces/classic/58.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/58.gif -------------------------------------------------------------------------------- /faces/classic/58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/58.png -------------------------------------------------------------------------------- /faces/classic/59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/59.png -------------------------------------------------------------------------------- /faces/classic/6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/6.gif -------------------------------------------------------------------------------- /faces/classic/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/6.png -------------------------------------------------------------------------------- /faces/classic/62.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/62.gif -------------------------------------------------------------------------------- /faces/classic/62.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/62.png -------------------------------------------------------------------------------- /faces/classic/63.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/63.gif -------------------------------------------------------------------------------- /faces/classic/63.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/63.png -------------------------------------------------------------------------------- /faces/classic/64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/64.png -------------------------------------------------------------------------------- /faces/classic/7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/7.gif -------------------------------------------------------------------------------- /faces/classic/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/7.png -------------------------------------------------------------------------------- /faces/classic/71.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/71.gif -------------------------------------------------------------------------------- /faces/classic/71.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/71.png -------------------------------------------------------------------------------- /faces/classic/72.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/72.gif -------------------------------------------------------------------------------- /faces/classic/72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/72.png -------------------------------------------------------------------------------- /faces/classic/73.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/73.gif -------------------------------------------------------------------------------- /faces/classic/73.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/73.png -------------------------------------------------------------------------------- /faces/classic/74.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/74.gif -------------------------------------------------------------------------------- /faces/classic/74.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/74.png -------------------------------------------------------------------------------- /faces/classic/75.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/75.gif -------------------------------------------------------------------------------- /faces/classic/75.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/75.png -------------------------------------------------------------------------------- /faces/classic/76.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/76.gif -------------------------------------------------------------------------------- /faces/classic/76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/76.png -------------------------------------------------------------------------------- /faces/classic/77.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/77.gif -------------------------------------------------------------------------------- /faces/classic/77.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/77.png -------------------------------------------------------------------------------- /faces/classic/78.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/78.gif -------------------------------------------------------------------------------- /faces/classic/78.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/78.png -------------------------------------------------------------------------------- /faces/classic/79.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/79.gif -------------------------------------------------------------------------------- /faces/classic/79.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/79.png -------------------------------------------------------------------------------- /faces/classic/8.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/8.gif -------------------------------------------------------------------------------- /faces/classic/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/8.png -------------------------------------------------------------------------------- /faces/classic/80.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/80.gif -------------------------------------------------------------------------------- /faces/classic/80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/80.png -------------------------------------------------------------------------------- /faces/classic/81.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/81.gif -------------------------------------------------------------------------------- /faces/classic/81.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/81.png -------------------------------------------------------------------------------- /faces/classic/82.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/82.gif -------------------------------------------------------------------------------- /faces/classic/82.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/82.png -------------------------------------------------------------------------------- /faces/classic/83.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/83.gif -------------------------------------------------------------------------------- /faces/classic/83.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/83.png -------------------------------------------------------------------------------- /faces/classic/84.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/84.gif -------------------------------------------------------------------------------- /faces/classic/84.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/84.png -------------------------------------------------------------------------------- /faces/classic/85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/85.png -------------------------------------------------------------------------------- /faces/classic/86.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/86.png -------------------------------------------------------------------------------- /faces/classic/87.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/87.gif -------------------------------------------------------------------------------- /faces/classic/87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/87.png -------------------------------------------------------------------------------- /faces/classic/88.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/88.gif -------------------------------------------------------------------------------- /faces/classic/88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/88.png -------------------------------------------------------------------------------- /faces/classic/9.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/9.gif -------------------------------------------------------------------------------- /faces/classic/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/9.png -------------------------------------------------------------------------------- /faces/classic/91.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/91.png -------------------------------------------------------------------------------- /faces/classic/93.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/93.gif -------------------------------------------------------------------------------- /faces/classic/93.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/93.png -------------------------------------------------------------------------------- /faces/classic/95.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/95.gif -------------------------------------------------------------------------------- /faces/classic/95.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/95.png -------------------------------------------------------------------------------- /faces/classic/96.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/96.gif -------------------------------------------------------------------------------- /faces/classic/96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/96.png -------------------------------------------------------------------------------- /faces/classic/97.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/97.gif -------------------------------------------------------------------------------- /faces/classic/97.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/97.png -------------------------------------------------------------------------------- /faces/classic/98.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/98.gif -------------------------------------------------------------------------------- /faces/classic/98.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/98.png -------------------------------------------------------------------------------- /faces/classic/99.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/99.gif -------------------------------------------------------------------------------- /faces/classic/99.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/99.png -------------------------------------------------------------------------------- /faces/classic/K歌.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/K歌.png -------------------------------------------------------------------------------- /faces/classic/dfp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/dfp.png -------------------------------------------------------------------------------- /faces/classic/dfr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/dfr.png -------------------------------------------------------------------------------- /faces/classic/dhp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/dhp.png -------------------------------------------------------------------------------- /faces/classic/下雨.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/下雨.png -------------------------------------------------------------------------------- /faces/classic/下面.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/下面.png -------------------------------------------------------------------------------- /faces/classic/双喜.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/双喜.png -------------------------------------------------------------------------------- /faces/classic/发财.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/发财.png -------------------------------------------------------------------------------- /faces/classic/喝奶.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/喝奶.png -------------------------------------------------------------------------------- /faces/classic/喝彩.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/喝彩.png -------------------------------------------------------------------------------- /faces/classic/多云.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/多云.png -------------------------------------------------------------------------------- /faces/classic/帅.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/帅.png -------------------------------------------------------------------------------- /faces/classic/开车.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/开车.png -------------------------------------------------------------------------------- /faces/classic/彩球.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/彩球.png -------------------------------------------------------------------------------- /faces/classic/手枪.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/手枪.png -------------------------------------------------------------------------------- /faces/classic/打伞.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/打伞.png -------------------------------------------------------------------------------- /faces/classic/棒棒糖.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/棒棒糖.png -------------------------------------------------------------------------------- /faces/classic/沙发.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/沙发.png -------------------------------------------------------------------------------- /faces/classic/灯泡.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/灯泡.png -------------------------------------------------------------------------------- /faces/classic/灯笼.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/灯笼.png -------------------------------------------------------------------------------- /faces/classic/熊猫.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/熊猫.png -------------------------------------------------------------------------------- /faces/classic/爆筋.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/爆筋.png -------------------------------------------------------------------------------- /faces/classic/祈祷.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/祈祷.png -------------------------------------------------------------------------------- /faces/classic/纸巾.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/纸巾.png -------------------------------------------------------------------------------- /faces/classic/药.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/药.png -------------------------------------------------------------------------------- /faces/classic/购物.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/购物.png -------------------------------------------------------------------------------- /faces/classic/车厢.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/车厢.png -------------------------------------------------------------------------------- /faces/classic/邮件.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/邮件.png -------------------------------------------------------------------------------- /faces/classic/钞票.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/钞票.png -------------------------------------------------------------------------------- /faces/classic/钻戒.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/钻戒.png -------------------------------------------------------------------------------- /faces/classic/闹钟.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/闹钟.png -------------------------------------------------------------------------------- /faces/classic/青蛙.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/青蛙.png -------------------------------------------------------------------------------- /faces/classic/鞭炮.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/鞭炮.png -------------------------------------------------------------------------------- /faces/classic/风车.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/风车.png -------------------------------------------------------------------------------- /faces/classic/飞机.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/飞机.png -------------------------------------------------------------------------------- /faces/classic/香蕉.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/香蕉.png -------------------------------------------------------------------------------- /faces/classic/高铁右车头.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/高铁右车头.png -------------------------------------------------------------------------------- /faces/classic/高铁左车头.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/faces/classic/高铁左车头.png -------------------------------------------------------------------------------- /images.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | images/avatar.svg 4 | images/avatar_left.png 5 | images/avatar-border.svg 6 | images/imaway.png 7 | images/background_arabesquitic.svg 8 | images/background_input.png 9 | images/imbusy.png 10 | images/button-login.svg 11 | images/button-login-hover.svg 12 | images/button-login-press.svg 13 | images/button-minimize.svg 14 | images/button-quit.svg 15 | images/checkBox-hover.svg 16 | images/imoffline.png 17 | images/imonline.png 18 | images/inputBox.svg 19 | images/inputBox1.png 20 | images/inputBox2.png 21 | images/inputBox-close.svg 22 | images/inputBox-more.svg 23 | images/inputBox-password-clicked.svg 24 | images/inputBox-password-hover.svg 25 | images/inputBox-qq-clicked.svg 26 | images/inputBox-qq-hover.svg 27 | images/imhidden.png 28 | images/list_arrow_down.png 29 | images/list_arrow_up.png 30 | images/list_item.png 31 | images/list_item_bottom.png 32 | images/lock20.png 33 | images/login-panel.svg 34 | images/login-panel-shadow.png 35 | images/imsilent.png 36 | images/progress-bar.png 37 | images/imcallme.png 38 | images/QQ-for-ubuntu.svg 39 | images/soft-keyboard.svg 40 | images/status-away-1.svg 41 | images/status-busy-1.svg 42 | images/status-callme-1.svg 43 | images/status-hidden-1.svg 44 | images/status-online-1.svg 45 | images/status-silent-1.svg 46 | images/unfold_icon.png 47 | images/unlock20.png 48 | images/checkBox-select.svg 49 | images/checkBox-unselect.svg 50 | images/bit.bmp 51 | images/avatar.png 52 | images/contact_press.png 53 | images/group_press.png 54 | images/TempSession_press.png 55 | images/menu_background.png 56 | images/button-settings.svg 57 | images/inputBox1.svg 58 | images/inputBox2.svg 59 | images/bubble_放飞心情_left.png 60 | images/bubble_放飞心情_right.png 61 | images/bubble_经典_left.png 62 | images/bubble_经典_right.png 63 | images/bubble_祈福_left.png 64 | images/bubble_祈福_right.png 65 | images/bubble_微笑河马_left.png 66 | images/bubble_微笑河马_right.png 67 | images/friendList_select.svg 68 | images/friendList_unselect.svg 69 | images/groupList_select.svg 70 | images/groupList_unselect.svg 71 | images/recentList_select.svg 72 | images/recentList_unselect.svg 73 | images/未标题-1.png 74 | images/star.png 75 | images/greenStar.png 76 | images/blueStar.png 77 | images/login-panel2.svg 78 | images/loading.png 79 | images/dud.png 80 | images/duz.png 81 | 82 | 83 | -------------------------------------------------------------------------------- /images/TempSession_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/TempSession_press.png -------------------------------------------------------------------------------- /images/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/avatar.png -------------------------------------------------------------------------------- /images/avatar_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/avatar_left.png -------------------------------------------------------------------------------- /images/background_arabesquitic2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ]> 13 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 33 | 36 | 38 | 40 | 42 | 48 | 49 | -------------------------------------------------------------------------------- /images/background_input.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/background_input.png -------------------------------------------------------------------------------- /images/bit.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/bit.bmp -------------------------------------------------------------------------------- /images/blueStar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/blueStar.png -------------------------------------------------------------------------------- /images/bubble_微笑河马_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/bubble_微笑河马_left.png -------------------------------------------------------------------------------- /images/bubble_微笑河马_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/bubble_微笑河马_right.png -------------------------------------------------------------------------------- /images/bubble_放飞心情_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/bubble_放飞心情_left.png -------------------------------------------------------------------------------- /images/bubble_放飞心情_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/bubble_放飞心情_right.png -------------------------------------------------------------------------------- /images/bubble_祈福_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/bubble_祈福_left.png -------------------------------------------------------------------------------- /images/bubble_祈福_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/bubble_祈福_right.png -------------------------------------------------------------------------------- /images/bubble_经典_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/bubble_经典_left.png -------------------------------------------------------------------------------- /images/bubble_经典_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/bubble_经典_right.png -------------------------------------------------------------------------------- /images/button-login.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ]> 13 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /images/checkBox-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ]> 13 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 24 | 27 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /images/checkBox-select.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ]> 13 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 24 | 26 | 29 | 30 | 31 | 32 | 33 | 34 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 46 | 48 | 50 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /images/checkBox-unselect.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ]> 13 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 25 | 28 | 29 | 30 | 31 | 32 | 33 | 35 | 36 | 37 | 38 | 39 | 41 | 43 | 45 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /images/contact_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/contact_press.png -------------------------------------------------------------------------------- /images/dud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/dud.png -------------------------------------------------------------------------------- /images/duz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/duz.png -------------------------------------------------------------------------------- /images/greenStar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/greenStar.png -------------------------------------------------------------------------------- /images/group_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/group_press.png -------------------------------------------------------------------------------- /images/imaway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/imaway.png -------------------------------------------------------------------------------- /images/imbusy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/imbusy.png -------------------------------------------------------------------------------- /images/imcallme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/imcallme.png -------------------------------------------------------------------------------- /images/imhidden.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/imhidden.png -------------------------------------------------------------------------------- /images/imoffline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/imoffline.png -------------------------------------------------------------------------------- /images/imonline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/imonline.png -------------------------------------------------------------------------------- /images/imsilent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/imsilent.png -------------------------------------------------------------------------------- /images/inputBox-close.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ]> 13 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 30 | 35 | 39 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /images/inputBox-more.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ]> 13 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 26 | 28 | 30 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /images/inputBox-password-clicked.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ]> 13 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 36 | 37 | 38 | 39 | 40 | 41 | 43 | 44 | -------------------------------------------------------------------------------- /images/inputBox-password-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ]> 13 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 36 | 37 | 38 | 39 | 40 | 41 | 43 | 44 | -------------------------------------------------------------------------------- /images/inputBox-qq-clicked.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ]> 13 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 36 | 37 | 38 | 39 | 40 | 41 | 43 | 44 | -------------------------------------------------------------------------------- /images/inputBox-qq-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ]> 13 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 36 | 37 | 38 | 39 | 40 | 41 | 43 | 44 | -------------------------------------------------------------------------------- /images/inputBox.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ]> 13 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 26 | 29 | 31 | 33 | 34 | 36 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /images/inputBox1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/inputBox1.png -------------------------------------------------------------------------------- /images/inputBox2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/inputBox2.png -------------------------------------------------------------------------------- /images/list_arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/list_arrow_down.png -------------------------------------------------------------------------------- /images/list_arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/list_arrow_up.png -------------------------------------------------------------------------------- /images/list_item.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/list_item.png -------------------------------------------------------------------------------- /images/list_item_bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/list_item_bottom.png -------------------------------------------------------------------------------- /images/loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/loading.png -------------------------------------------------------------------------------- /images/lock20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/lock20.png -------------------------------------------------------------------------------- /images/login-panel-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/login-panel-shadow.png -------------------------------------------------------------------------------- /images/menu_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/menu_background.png -------------------------------------------------------------------------------- /images/progress-bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/progress-bar.png -------------------------------------------------------------------------------- /images/soft-keyboard.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ]> 13 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 25 | 27 | 30 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /images/star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/star.png -------------------------------------------------------------------------------- /images/unfold_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/unfold_icon.png -------------------------------------------------------------------------------- /images/unlock20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/unlock20.png -------------------------------------------------------------------------------- /images/未标题-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/images/未标题-1.png -------------------------------------------------------------------------------- /introduce/login.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/introduce/login.jpg -------------------------------------------------------------------------------- /introduce/mainWindow.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/introduce/mainWindow.jpg -------------------------------------------------------------------------------- /introduce/好友列表.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/introduce/好友列表.jpg -------------------------------------------------------------------------------- /introduce/好友聊天页.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/introduce/好友聊天页.jpg -------------------------------------------------------------------------------- /introduce/最近联系人列表.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/introduce/最近联系人列表.jpg -------------------------------------------------------------------------------- /introduce/群列表.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/introduce/群列表.jpg -------------------------------------------------------------------------------- /introduce/群聊天页.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/introduce/群聊天页.jpg -------------------------------------------------------------------------------- /introduce/讨论组列表.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/introduce/讨论组列表.jpg -------------------------------------------------------------------------------- /introduce/讨论组聊天页.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/introduce/讨论组聊天页.jpg -------------------------------------------------------------------------------- /introduce/设置界面.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/introduce/设置界面.jpg -------------------------------------------------------------------------------- /other.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | qt_zh_CN.qm 4 | 5 | 6 | -------------------------------------------------------------------------------- /qml.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | qml/QQItemInfo/DiscuInfo.qml 4 | qml/QQItemInfo/FriendInfo.qml 5 | qml/QQItemInfo/GroupInfo.qml 6 | qml/Api/api.js 7 | qml/Api/QQApi.qml 8 | qml/Chat/ChatPage.qml 9 | qml/Chat/ChatWindowCommand.qml 10 | qml/Chat/DiscuChatPage.qml 11 | qml/Chat/FriendChatPage.qml 12 | qml/Chat/GroupChatPage.qml 13 | qml/Chat/MessageListComponent.qml 14 | qml/Chat/qqshow.png 15 | qml/Login/LoginPanel/AccountList.qml 16 | qml/Login/LoginPanel/LoginCheckBox.qml 17 | qml/Login/LoginPanel/LoginInputArea.qml 18 | qml/Login/LoginPanel/LoginPage.qml 19 | qml/Login/main.qml 20 | qml/Login/MyLoginButton.qml 21 | qml/Login/SettingPage.qml 22 | qml/MainPanel/ListPage/AllListPage.qml 23 | qml/MainPanel/ListPage/DiscuList.qml 24 | qml/MainPanel/ListPage/FriendList.qml 25 | qml/MainPanel/ListPage/GroupAndDiscuPage.qml 26 | qml/MainPanel/ListPage/GroupList.qml 27 | qml/MainPanel/ListPage/RecentList.qml 28 | qml/MainPanel/main.qml 29 | qml/MainPanel/MainPanelPage.qml 30 | qml/Utility/ComboBox/MyComboBox.qml 31 | qml/Utility/ComboBox/MyComboBoxComponent.qml 32 | qml/Utility/KeyboardPage/SoftKeyboard.qml 33 | qml/Utility/KeyboardPage/SoftKeyboardButton.qml 34 | qml/Utility/CodeInput.qml 35 | qml/Utility/MyButton.qml 36 | qml/Utility/MyMessageBox.qml 37 | qml/Utility/MyRectangularGlow.qml 38 | qml/Utility/MyScrollView.qml 39 | qml/Utility/MyTextArea.qml 40 | qml/Utility/MyTextField.qml 41 | qml/Utility/MyTextView.qml 42 | qml/Utility/MyWindow.qml 43 | qml/Utility/SystemTray.qml 44 | qml/Utility/TrayMessageWindow.qml 45 | 46 | 47 | -------------------------------------------------------------------------------- /qml/Chat/FriendChatPage.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.2 2 | import utility 1.0 3 | import "../QQItemInfo" 4 | 5 | ChatPage{ 6 | id: root 7 | myinfo: myuin!=""?myqq.createFriendInfo(myuin):null 8 | rightBar.width: 0//设置右边栏宽度为0 9 | 10 | Connections{ 11 | target: myqq 12 | onShakeWindow:{ 13 | if(fromUin==myuin){ 14 | console.log("窗口震动消息") 15 | myqq.shakeChatMainWindow(root)//抖动聊天窗口 16 | } 17 | } 18 | onFriendInputNotify:{ 19 | if(fromUin==myuin){ 20 | console.log("正在输入消息") 21 | show_text.text = myinfo.aliasOrNick+"正在输入" 22 | } 23 | } 24 | } 25 | 26 | Timer{ 27 | id: timer_show_text 28 | interval: 2000 29 | onTriggered: { 30 | show_text.text = "" 31 | } 32 | } 33 | 34 | Text{ 35 | id: show_text 36 | parent: menuBar 37 | anchors.right: parent.right 38 | anchors.rightMargin: 10 39 | verticalAlignment: Text.AlignVCenter 40 | anchors.verticalCenter: parent.verticalCenter 41 | onTextChanged: { 42 | if(text!=""){ 43 | timer_show_text.start() 44 | } 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /qml/Chat/qqshow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/qml/Chat/qqshow.png -------------------------------------------------------------------------------- /qml/Login/LoginPanel/LoginCheckBox.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.2 2 | import QtQuick.Controls 1.2 3 | import QtQuick.Controls.Styles 1.2 4 | import mywindow 1.0 5 | 6 | CheckBox { 7 | id:root 8 | 9 | style: CheckBoxStyle { 10 | indicator: Item{ 11 | implicitHeight: image.implicitHeight 12 | implicitWidth: image.implicitWidth 13 | SvgView{ 14 | width: defaultSize.width*myqq.windowScale 15 | source: control.checked?"qrc:/images/checkBox-select.svg":"qrc:/images/checkBox-unselect.svg" 16 | } 17 | SvgView{ 18 | id: image 19 | width: defaultSize.width*myqq.windowScale 20 | source: "qrc:/images/checkBox-hover.svg" 21 | visible: mouse.hover 22 | Component.onCompleted: root.height = width 23 | } 24 | } 25 | label: Text{ 26 | text: control.text 27 | font.pointSize: root.height/2 28 | } 29 | } 30 | MouseArea{ 31 | id:mouse 32 | anchors.fill: parent 33 | property bool hover: false 34 | hoverEnabled: true 35 | onEntered: { 36 | hover = true 37 | } 38 | onExited: hover = false 39 | onClicked: { 40 | parent.checked=!parent.checked 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /qml/Login/MyLoginButton.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.2 2 | import mywindow 1.0 3 | 4 | SvgView{ 5 | id:root 6 | //sourceSize.width: width 7 | property alias text: button_text.text 8 | property alias font: button_text.font 9 | source: { 10 | if( mouse.pressed ) 11 | return "qrc:/images/button-login-press.svg" 12 | else if(mouse.hover) 13 | return "qrc:/images/button-login-hover.svg" 14 | else 15 | return "qrc:/images/button-login.svg" 16 | } 17 | 18 | signal clicked 19 | Rectangle{ 20 | radius: 10 21 | anchors.fill: parent 22 | color: "#888" 23 | visible: !root.enabled 24 | } 25 | 26 | Text { 27 | id: button_text 28 | anchors.centerIn: parent 29 | color: "white" 30 | } 31 | MouseArea{ 32 | id:mouse 33 | enabled: root.enabled 34 | property bool hover: false 35 | anchors.fill: parent 36 | hoverEnabled: true 37 | onEntered: { 38 | hover = true 39 | } 40 | onExited: { 41 | hover = false 42 | } 43 | onClicked: { 44 | root.clicked() 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /qml/MainPanel/ListPage/AllListPage.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.2 2 | import QtQuick.Controls 1.2 3 | import QtQuick.Controls.Styles 1.2 4 | import mywindow 1.0 5 | 6 | TabView { 7 | id: frame 8 | property int old_current:0 9 | 10 | Tab { 11 | active: true 12 | id: friend_list 13 | FriendList{ 14 | id: rect1 15 | width: parent.width 16 | height: parent.height 17 | NumberAnimation{ 18 | id: animat1 19 | target: rect1 20 | duration: 200 21 | running: false 22 | easing.type: Easing.InCubic 23 | property: "x" 24 | from: -width 25 | to:0 26 | } 27 | Connections{ 28 | target: frame 29 | onCurrentIndexChanged: { 30 | if(frame.currentIndex==0){ 31 | animat1.start() 32 | frame.old_current = 0 33 | } 34 | } 35 | } 36 | } 37 | } 38 | Tab { 39 | active: true 40 | GroupAndDiscuPage{ 41 | id:rect2 42 | width: parent.width 43 | height: parent.height 44 | NumberAnimation{ 45 | id: animat2 46 | target: rect2 47 | duration: 200 48 | running: false 49 | easing.type: Easing.InCubic 50 | property: "x" 51 | from: frame.old_current==0?width:-width 52 | to:0 53 | } 54 | Connections{ 55 | target: frame 56 | onCurrentIndexChanged: { 57 | if(frame.currentIndex==1){ 58 | animat2.start() 59 | frame.old_current = 1 60 | } 61 | } 62 | } 63 | } 64 | } 65 | Tab { 66 | active: true 67 | id: recent_list 68 | RecentList{ 69 | id:rect3 70 | width: parent.width 71 | height: parent.height 72 | 73 | NumberAnimation{ 74 | id: animat3 75 | target: rect3 76 | duration: 200 77 | running: false 78 | easing.type: Easing.InCubic 79 | property: "x" 80 | from: width 81 | to:0 82 | } 83 | Connections{ 84 | target: frame 85 | onCurrentIndexChanged: { 86 | if(frame.currentIndex==2){ 87 | animat3.start() 88 | frame.old_current = 2 89 | } 90 | } 91 | } 92 | } 93 | 94 | } 95 | 96 | style: TabViewStyle { 97 | //tabOverlap: 10 98 | tabsMovable : true 99 | tabsAlignment:Qt.AlignHCenter 100 | tab: Item{ 101 | implicitHeight: icon.height+20 102 | implicitWidth: control.width/3 103 | //width: control.width/3 104 | 105 | SvgView{ 106 | id: icon 107 | anchors.horizontalCenter: parent.horizontalCenter 108 | source: { 109 | if(index==0) 110 | return "qrc:/images/friendList_select.svg" 111 | else if(index==1) 112 | return "qrc:/images/groupList_select.svg" 113 | else 114 | return "qrc:/images/recentList_select.svg" 115 | } 116 | } 117 | } 118 | frame: Item {} 119 | } 120 | } 121 | -------------------------------------------------------------------------------- /qml/MainPanel/ListPage/DiscuList.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.2 2 | import mywindow 1.0 3 | import utility 1.0 4 | import "../" 5 | import "../../Utility" 6 | import QQItemInfo 1.0 7 | 8 | Item{ 9 | id: root 10 | clip: true 11 | 12 | function getDiscusListFinished(error, data) {//获取讨论组列表完成 13 | if(error){ 14 | myqq.getDiscusList(getDiscusListFinished) //讨论组列表 15 | return 16 | } 17 | data = JSON.parse(data) 18 | if(data.retcode ==0 ) { 19 | var list_info = data.result.dnamelist 20 | for( var i=0; i< list_info.length;++i ) { 21 | var info = myqq.createDiscuInfo(list_info[i].did) 22 | info.nick = list_info[i].name//设置昵称 23 | mymodel.append({"obj_info": info}) 24 | } 25 | } 26 | } 27 | Component.onCompleted: { 28 | myqq.getDiscusList(getDiscusListFinished) //讨论组列表 29 | } 30 | MyScrollView{ 31 | anchors.fill: parent 32 | Item{ 33 | height: mymodel.count*40+10 34 | width: root.width 35 | implicitHeight: height 36 | implicitWidth: width 37 | 38 | ListView{ 39 | id: list 40 | interactive: false 41 | anchors.fill: parent 42 | model: ListModel{ 43 | id:mymodel 44 | } 45 | spacing :10 46 | delegate: component 47 | } 48 | } 49 | } 50 | 51 | Component{ 52 | id: component 53 | Item{ 54 | id: item_root 55 | width: parent.width 56 | height: avatar.height 57 | property DiscuInfo myinfo: obj_info 58 | 59 | MyImage{ 60 | id: avatar 61 | x:10 62 | width:40 63 | height: 40 64 | sourceSize.width: width 65 | source: "qrc:/images/avatar.png" 66 | maskSource: "qrc:/images/bit.bmp" 67 | } 68 | Text{ 69 | id:text_nick 70 | anchors.top: avatar.top 71 | anchors.left: avatar.right 72 | anchors.leftMargin: 10 73 | font.pointSize: 14 74 | text: item_root.myinfo.aliasOrNick 75 | } 76 | MouseArea{ 77 | anchors.fill: parent 78 | onDoubleClicked: { 79 | myqq.addChatPage(item_root.myinfo.uin, QQItemInfo.Discu) 80 | } 81 | } 82 | } 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /qml/MainPanel/ListPage/GroupAndDiscuPage.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.2 2 | import QtQuick.Controls 1.2 3 | import QtQuick.Controls.Styles 1.2 4 | 5 | Item{ 6 | TabView{ 7 | anchors.fill: parent 8 | Tab{ 9 | title: "QQ群" 10 | active: true 11 | GroupList{ 12 | width: parent.width 13 | height: parent.height 14 | } 15 | } 16 | Tab{ 17 | title: "讨论组" 18 | active: true 19 | DiscuList{ 20 | width: parent.width 21 | height: parent.height 22 | } 23 | } 24 | style: TabViewStyle { 25 | //tabOverlap: 10 26 | frameOverlap: -10 27 | tabsMovable : true 28 | tabsAlignment:Qt.AlignHCenter 29 | tab:Rectangle { 30 | color: styleData.selected ? "#f07000" :"#eee" 31 | border.color: "#888" 32 | border.width: 1 33 | implicitWidth: Math.max(text.width + 4, 80) 34 | implicitHeight: 20 35 | radius: 10 36 | Rectangle{ 37 | height: parent.implicitHeight 38 | width: height 39 | x:index==1?0:parent.width-width 40 | color: parent.color 41 | border.width: parent.border.width 42 | border.color: parent.border.color 43 | Rectangle{ 44 | height: parent.height-2*width 45 | width: parent.border.width 46 | anchors.verticalCenter: parent.verticalCenter 47 | x:index==0?0:parent.width-width 48 | color: parent.color 49 | } 50 | } 51 | 52 | Text { 53 | id: text 54 | anchors.centerIn: parent 55 | text: styleData.title 56 | color: styleData.selected ? "white" : "black" 57 | } 58 | } 59 | frame: Item {} 60 | } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /qml/MainPanel/ListPage/GroupList.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.2 2 | import mywindow 1.0 3 | import utility 1.0 4 | import "../" 5 | import "../../Utility" 6 | import QQItemInfo 1.0 7 | 8 | Item{ 9 | id: root 10 | clip: true 11 | 12 | function getGroupListFinished( error, data ) { 13 | if(error){ 14 | myqq.getGroupList(getGroupListFinished) //获取群列表 15 | return 16 | } 17 | 18 | data = JSON.parse(data) 19 | if(data.retcode ==0 ) { 20 | var groupmarknames = data.result.gmarklist//群备注信息 21 | var i=0; 22 | 23 | for( i=0; i0 14 | 15 | handle: Rectangle{ 16 | radius: 10 17 | implicitWidth: 10 18 | property bool hovered: styleData.hovered 19 | onHoveredChanged: { 20 | if( hovered ) 21 | scroll_style.hovered_count++ 22 | else 23 | scroll_style.hovered_count-- 24 | } 25 | 26 | color: scroll_style.hovered?"#808080":"#BDBFBE" 27 | } 28 | scrollBarBackground:Rectangle{ 29 | implicitWidth: 10 30 | color:"#f0f0f0" 31 | radius: 10 32 | property bool hovered: styleData.hovered 33 | onHoveredChanged: { 34 | if( hovered ) 35 | scroll_style.hovered_count++ 36 | else 37 | scroll_style.hovered_count-- 38 | } 39 | opacity: scroll_style.hovered?1:0 40 | Behavior on opacity{ 41 | NumberAnimation{ 42 | duration: 200 43 | } 44 | } 45 | } 46 | decrementControl : Item{ 47 | implicitHeight: 10 48 | implicitWidth: 10 49 | Image{ 50 | source: "qrc:/images/list_arrow_up.png" 51 | property bool hovered: styleData.hovered 52 | anchors.centerIn: parent 53 | onHoveredChanged: { 54 | if( hovered ) 55 | scroll_style.hovered_count++ 56 | else 57 | scroll_style.hovered_count-- 58 | } 59 | opacity: scroll_style.hovered?1:0 60 | Behavior on opacity{ 61 | NumberAnimation{ 62 | duration: 200 63 | } 64 | } 65 | } 66 | } 67 | 68 | incrementControl : Item{ 69 | implicitHeight: 10 70 | implicitWidth: 10 71 | Image{ 72 | anchors.centerIn: parent 73 | source: "qrc:/images/list_arrow_down.png" 74 | property bool hovered: styleData.hovered 75 | onHoveredChanged: { 76 | if( hovered ) 77 | scroll_style.hovered_count++ 78 | else 79 | scroll_style.hovered_count-- 80 | } 81 | opacity: scroll_style.hovered?1:0 82 | Behavior on opacity{ 83 | NumberAnimation{ 84 | duration: 200 85 | } 86 | } 87 | } 88 | } 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /qml/Utility/MyTextField.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.2 2 | import QtQuick.Controls 1.2 3 | import QtQuick.Controls.Styles 1.2 4 | 5 | Item{ 6 | id: root 7 | property alias title: text.text 8 | property alias text: input.text 9 | property alias font: input.font 10 | property alias field: input 11 | Text { 12 | id: text 13 | anchors.left: parent.left 14 | anchors.verticalCenter: parent.verticalCenter 15 | font.pointSize: root.height/2 16 | } 17 | TextField{ 18 | id: input 19 | anchors.left: text.right 20 | anchors.right: parent.right 21 | anchors.top: parent.top 22 | anchors.bottom: parent.bottom 23 | font.pointSize:text.font.pointSize 24 | style: TextFieldStyle { 25 | textColor: "black" 26 | background: BorderImage { 27 | source: "qrc:/images/background_input.png" 28 | border.left: 5; border.top: 5 29 | border.right: 5; border.bottom: 5 30 | } 31 | } 32 | } 33 | Rectangle{ 34 | radius: 1 35 | anchors.top: input.top 36 | anchors.topMargin: 2 37 | anchors.bottom: input.bottom 38 | anchors.bottomMargin: 0 39 | anchors.left: input.left 40 | anchors.leftMargin: 1 41 | anchors.right: parent.right 42 | anchors.rightMargin: 1 43 | 44 | visible: !root.enabled 45 | color: "#f0efef" 46 | opacity: 0.75 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /qml/Utility/MyTextView.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.2 2 | import QtWebKit 3.0 3 | 4 | Item{ 5 | id:root 6 | property string html: "" 7 | property alias url: webview.url 8 | 9 | implicitWidth: webview.contentWidth 10 | implicitHeight: webview.contentHeight 11 | onHtmlChanged: { 12 | webview.loadHtml(html) 13 | } 14 | 15 | WebView{ 16 | id: webview 17 | anchors.fill: parent 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /qt_zh_CN.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/qt_zh_CN.qm -------------------------------------------------------------------------------- /sound/Audio.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/sound/Audio.wav -------------------------------------------------------------------------------- /sound/Global.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/sound/Global.wav -------------------------------------------------------------------------------- /sound/msg.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/sound/msg.wav -------------------------------------------------------------------------------- /sound/shake.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/sound/shake.wav -------------------------------------------------------------------------------- /sound/system.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/sound/system.wav -------------------------------------------------------------------------------- /sound/tweet.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zccrs/QQStars/fdaf86e828e4432f59cc35c50a830f7913295e55/sound/tweet.wav -------------------------------------------------------------------------------- /src/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include "mynetworkaccessmanagerfactory.h" 11 | #include "systemtrayicon.h" 12 | #include "utility.h" 13 | #include "mywindow.h" 14 | #include "qqstars.h" 15 | #include "myimage.h" 16 | #include "mysvgview.h" 17 | #include "myshortcut.h" 18 | #include "myhttprequest.h" 19 | #include "mymessagebox.h" 20 | #include "downloadimage.h" 21 | #include "texteditplaygif.h" 22 | #include 23 | 24 | int main(int argc, char *argv[]) 25 | { 26 | QApplication app(argc, argv); 27 | 28 | app.setApplicationName ("QQStars"); 29 | app.setApplicationVersion ("1.0.0"); 30 | app.setOrganizationName ("雨后星辰"); 31 | app.setApplicationDisplayName ("星辰QQ"); 32 | 33 | QTranslator *translator = new QTranslator; 34 | translator->load (":/qt_zh_CN.qm"); 35 | QApplication::installTranslator (translator); 36 | 37 | QQmlApplicationEngine *engine = new QQmlApplicationEngine; 38 | engine->setNetworkAccessManagerFactory (new MyNetworkAccessManagerFactory());//给qml设置网络请求所用的类 39 | 40 | qmlRegisterType("MyTextEditPlugin", 1, 0, "TextEditPlayGif"); 41 | qmlRegisterType("mywindow", 1,0, "MyQuickWindow"); 42 | qmlRegisterType("mywindow", 1,0, "MySystemTrayIcon"); 43 | qmlRegisterType("mywindow", 1,0, "MyMenu"); 44 | qmlRegisterType("mywindow", 1,0, "MenuSeparator"); 45 | qmlRegisterType("mywindow", 1,0, "MyMenuItem"); 46 | qmlRegisterType("utility", 1,0, "MyShortcut"); 47 | qmlRegisterType("utility", 1, 0, "DownloadImage"); 48 | qmlRegisterType("qqstars", 1,0, "QQ"); 49 | qmlRegisterType("QQItemInfo", 1,0, "FriendInfo"); 50 | qmlRegisterType("QQItemInfo", 1,0, "GroupInfo"); 51 | qmlRegisterType("QQItemInfo", 1,0, "DiscuInfo"); 52 | qmlRegisterType("QQItemInfo", 1,0, "QQItemInfo"); 53 | qmlRegisterType("QQItemInfo", 1, 0, "ChatMessageInfo"); 54 | qmlRegisterType("QQItemInfo", 1, 0, "ChatMessageInfoList"); 55 | qmlRegisterType("mywindow", 1,0, "MyImage"); 56 | qmlRegisterType("mywindow", 1, 0, "SvgView"); 57 | qmlRegisterType("mywindow", 1, 0, "MessageBox"); 58 | 59 | Utility *utility=Utility::createUtilityClass (); 60 | QNetworkRequest* request = utility->getHttpRequest ()->getNetworkRequest (); 61 | request->setRawHeader ("Referer", "http://d.web2.qq.com/proxy.html?v=20110331002&callback=1&id=2");//和腾讯服务器打交道需要设置这个 62 | request->setHeader (QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); 63 | 64 | request = utility->getDownloadImage ()->getHttpRequest ()->getNetworkRequest (); 65 | request->setRawHeader ("Referer", "http://web2.qq.com/webqq.html");//需要设置这个,不然腾讯服务器不响应你的请求 66 | request->setRawHeader ("Accept", "image/webp,*/*;q=0.8"); 67 | 68 | utility->initUtility (new QSettings, engine); 69 | 70 | QQmlComponent component0(engine, QUrl("qrc:/qml/Api/QQApi.qml")); 71 | QQCommand *qqapi = qobject_cast(component0.create ()); 72 | 73 | engine->rootContext ()->setContextProperty ("myqq", qqapi); 74 | 75 | QQmlComponent component(engine, QUrl("qrc:/qml/Utility/SystemTray.qml")); 76 | SystemTrayIcon *systemTray = qobject_cast(component.create ()); 77 | #ifdef Q_OS_WIN 78 | systemTray->setParent (Utility::createUtilityClass ());//不设置父对象会导致程序退出后托盘还存在的问题 79 | #endif 80 | engine->rootContext ()->setContextProperty ("systemTray", systemTray);//将程序托盘注册过去 81 | qqapi->loadLoginWindow ();//加载登录窗口 82 | 83 | return app.exec(); 84 | } 85 | -------------------------------------------------------------------------------- /src/mywidgets/myimage.h: -------------------------------------------------------------------------------- 1 | #ifndef MYIMAGE_H 2 | #define MYIMAGE_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #if(QT_VERSION>=0x050000) 10 | #include 11 | #else 12 | #include 13 | #endif 14 | 15 | #if(QT_VERSION>=0x050000) 16 | class MyImage : public QQuickPaintedItem 17 | #else 18 | class MyImage : public QDeclarativeItem 19 | #endif 20 | { 21 | Q_OBJECT 22 | Q_PROPERTY(QUrl maskSource READ maskSource WRITE setMaskSource NOTIFY maskSourceChanged) 23 | Q_PROPERTY(bool cache READ cache WRITE setCache NOTIFY cacheChanged) 24 | Q_PROPERTY(bool grayscale READ grayscale WRITE setGrayscale NOTIFY grayscaleChanged) 25 | Q_PROPERTY(State status READ status NOTIFY statusChanged FINAL) 26 | Q_PROPERTY(QSize sourceSize READ sourceSize WRITE setSourceSize NOTIFY sourceSizeChanged) 27 | Q_PROPERTY(QSize defaultSize READ defaultSize NOTIFY defaultSizeChanged FINAL) 28 | Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) 29 | 30 | Q_ENUMS(State) 31 | public: 32 | enum State{ 33 | Null, 34 | Ready, 35 | Loading, 36 | Error 37 | }; 38 | 39 | #if(QT_VERSION>=0x050000) 40 | explicit MyImage(QQuickItem *parent = 0); 41 | #else 42 | explicit MyImage(QDeclarativeItem *parent = 0); 43 | #endif 44 | ~MyImage(); 45 | 46 | QUrl source() const; 47 | QUrl maskSource() const; 48 | bool cache() const; 49 | bool grayscale() const; 50 | 51 | void chromaticToGrayscale(QImage &image); 52 | static QString imageFormatToString(const QByteArray& array); 53 | 54 | #if(QT_VERSION>=0x050000) 55 | void paint(QPainter * painter); 56 | #else 57 | void paint(QPainter *painter, const QStyleOptionGraphicsItem *new_style, QWidget *new_widget=0); 58 | #endif 59 | State status() const; 60 | QSize sourceSize() const; 61 | QSize defaultSize() const; 62 | 63 | const QPixmap* getPixmap() const; 64 | signals: 65 | void sourceChanged(QUrl arg); 66 | void maskSourceChanged(QUrl arg); 67 | void loadError();//加载图片出错 68 | void loadReady(); 69 | void cacheChanged(bool arg); 70 | void grayscaleChanged(bool arg); 71 | void statusChanged(State arg); 72 | void sourceSizeChanged(QSize arg); 73 | void defaultSizeChanged(QSize arg); 74 | 75 | public slots: 76 | void setSource(QUrl arg); 77 | void setMaskSource(QUrl arg); 78 | void setCache(bool arg); 79 | void setGrayscale(bool arg); 80 | void setStatus(State arg); 81 | void reLoad(); 82 | void setSourceSize(QSize arg); 83 | void setDefaultSize(QSize arg); 84 | bool save(const QString& fileName) const; 85 | 86 | private slots: 87 | void onDownImageFinished(QNetworkReply* reply); 88 | 89 | private: 90 | QUrl m_source; 91 | QPixmap *pixmap; 92 | static QCache pixmapCache; 93 | 94 | QUrl m_maskSource; 95 | bool m_cache; 96 | bool m_grayscale; 97 | QNetworkAccessManager manager; 98 | QNetworkReply *reply; 99 | State m_status; 100 | QSize m_sourceSize; 101 | QSize m_defaultSize; 102 | 103 | void downloadImage(const QUrl& url); 104 | void setImage(QImage& image); 105 | }; 106 | 107 | #endif // MYIMAGE_H 108 | -------------------------------------------------------------------------------- /src/mywidgets/mymessagebox.cpp: -------------------------------------------------------------------------------- 1 | #include "mymessagebox.h" 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | MyMessageBox::MyMessageBox(QWidget *parent) : 9 | QMessageBox(parent) 10 | { 11 | //setAttribute(Qt::WA_TranslucentBackground); 12 | setFixedSize (300, 200); 13 | setWindowFlags (windowFlags ()|Qt::FramelessWindowHint); 14 | //QImage image(":/images/menu_background.png"); 15 | //background_pixmap = QPixmap::fromImage (image); 16 | //QLabel *label = new QLabel(this); 17 | //label->setPixmap (background_pixmap); 18 | //label->setGeometry (0,0,width(),height ()); 19 | //label->setBackgroundRole (); 20 | } 21 | 22 | QUrl MyMessageBox::styleSource() const 23 | { 24 | return m_styleSource; 25 | } 26 | 27 | void MyMessageBox::mousePressEvent(QMouseEvent *event) 28 | { 29 | if(event->button () == Qt::LeftButton){ 30 | press_point = event->pos (); 31 | allow_move = true; 32 | event->accept (); 33 | }else{ 34 | QMessageBox::mousePressEvent (event); 35 | } 36 | } 37 | 38 | void MyMessageBox::mouseMoveEvent(QMouseEvent *event) 39 | { 40 | if(allow_move){ 41 | move (pos()+event->pos ()-press_point); 42 | event->accept (); 43 | }else{ 44 | QMessageBox::mouseMoveEvent (event); 45 | } 46 | } 47 | 48 | void MyMessageBox::mouseReleaseEvent(QMouseEvent *event) 49 | { 50 | if(event->button () == Qt::LeftButton){ 51 | allow_move = false; 52 | event->accept (); 53 | }else{ 54 | QMessageBox::mouseReleaseEvent (event); 55 | } 56 | } 57 | 58 | void MyMessageBox::setStyleSource(QUrl arg) 59 | { 60 | if (m_styleSource != arg) { 61 | m_styleSource = arg; 62 | QFile file(arg.toLocalFile ()); 63 | if(file.open (QIODevice::ReadOnly)){ 64 | setStyleSheet (file.readAll ()); 65 | }else{ 66 | qDebug()<<"打开"+arg.toLocalFile ()+"失败;"< 5 | #include 6 | #include 7 | 8 | class MyMessageBox : public QMessageBox 9 | { 10 | Q_OBJECT 11 | Q_PROPERTY(QUrl styleSource READ styleSource WRITE setStyleSource NOTIFY styleSourceChanged) 12 | 13 | public: 14 | explicit MyMessageBox(QWidget *parent = 0); 15 | QUrl styleSource() const; 16 | 17 | private: 18 | void mousePressEvent(QMouseEvent * event); 19 | void mouseMoveEvent(QMouseEvent * event); 20 | void mouseReleaseEvent(QMouseEvent * event); 21 | 22 | QUrl m_styleSource; 23 | QPoint press_point; 24 | bool allow_move; 25 | 26 | QPixmap *background_pixmap; 27 | signals: 28 | void styleSourceChanged(QUrl arg); 29 | public slots: 30 | void setStyleSource(QUrl arg); 31 | }; 32 | 33 | #endif // MYMESSAGEBOX_H 34 | -------------------------------------------------------------------------------- /src/mywidgets/mysvgview.cpp: -------------------------------------------------------------------------------- 1 | #include "mysvgview.h" 2 | #include 3 | #include 4 | #include 5 | 6 | #if(QT_VERSION>=0x050000) 7 | MySvgView::MySvgView(QQuickItem *parent) : 8 | QQuickPaintedItem(parent) 9 | #else 10 | MySvgView::MySvgView(QDeclarativeItem *parent) : 11 | QDeclarativeItem(parent) 12 | #endif 13 | { 14 | #if(QT_VERSION<0x050000) 15 | setFlag(QGraphicsItem::ItemHasNoContents, false); 16 | #endif 17 | m_defaultSize = QSize(0,0); 18 | svg = new QSvgRenderer(this); 19 | } 20 | 21 | QUrl MySvgView::source() const 22 | { 23 | return m_source; 24 | } 25 | 26 | QSize MySvgView::defaultSize() const 27 | { 28 | return m_defaultSize; 29 | } 30 | 31 | void MySvgView::setDefaultSize(QSize arg) 32 | { 33 | if(arg!=m_defaultSize){ 34 | m_defaultSize = arg; 35 | emit defaultSizeChanged (arg); 36 | } 37 | } 38 | 39 | #if(QT_VERSION>=0x050000) 40 | void MySvgView::paint(QPainter *painter) 41 | #else 42 | void MySvgView::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) 43 | #endif 44 | { 45 | svg->render (painter, boundingRect()); 46 | } 47 | 48 | void MySvgView::setSource(QUrl arg) 49 | { 50 | if (m_source != arg) { 51 | m_source = arg; 52 | 53 | QString str = m_source.toLocalFile(); 54 | if(str == ""){ 55 | str = m_source.toString(); 56 | if(str==""){ 57 | svg->deleteLater(); 58 | svg = new QSvgRenderer(this); 59 | return; 60 | } 61 | } 62 | 63 | if( str.mid (0, 3) == "qrc") 64 | str = str.mid (3, str.count ()-3); 65 | svg->load (str); 66 | setDefaultSize (svg->defaultSize ()); 67 | int width = svg->defaultSize ().width (); 68 | int height = svg->defaultSize ().height (); 69 | setImplicitWidth(width); 70 | setImplicitHeight(height); 71 | update (); 72 | emit sourceChanged(arg); 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /src/mywidgets/mysvgview.h: -------------------------------------------------------------------------------- 1 | #ifndef MYSVGVIEW_H 2 | #define MYSVGVIEW_H 3 | 4 | #include 5 | #if(QT_VERSION>=0x050000) 6 | #include 7 | #else 8 | #include 9 | #endif 10 | 11 | #if(QT_VERSION>=0x050000) 12 | class MySvgView : public QQuickPaintedItem 13 | #else 14 | class MySvgView : public QDeclarativeItem 15 | #endif 16 | { 17 | Q_OBJECT 18 | Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) 19 | Q_PROPERTY(QSize defaultSize READ defaultSize WRITE setDefaultSize NOTIFY defaultSizeChanged FINAL) 20 | 21 | public: 22 | #if(QT_VERSION>=0x050000) 23 | explicit MySvgView(QQuickItem *parent = 0); 24 | #else 25 | explicit MySvgView(QDeclarativeItem *parent = 0); 26 | #endif 27 | QUrl source() const; 28 | QSize defaultSize() const; 29 | public slots: 30 | void setSource(QUrl arg); 31 | void setDefaultSize( QSize arg ); 32 | 33 | signals: 34 | void sourceChanged(QUrl arg); 35 | void rotationModeChanged(Qt::Axis arg); 36 | void rotationOriginChanged(QPoint arg); 37 | void defaultSizeChanged( QSize arg ); 38 | 39 | private: 40 | QSvgRenderer *svg; 41 | QUrl m_source; 42 | QSize m_defaultSize; 43 | 44 | #if(QT_VERSION>=0x050000) 45 | void paint(QPainter * painter); 46 | #else 47 | void paint(QPainter *painter, const QStyleOptionGraphicsItem *new_style, QWidget *new_widget=0); 48 | #endif 49 | }; 50 | 51 | #endif // MYSVGVIEW_H 52 | -------------------------------------------------------------------------------- /src/qxtglobalshortcut/myshortcut.h: -------------------------------------------------------------------------------- 1 | #ifndef MYSHORTCUT_H 2 | #define MYSHORTCUT_H 3 | /*! 4 | * 使用须知: 5 | * 此类为 雨后星辰后来添加,封装了app内部全局热键(通过给QApplication安装事件过滤器) 6 | * 封装了指定对象热键(为此对象安装事件过滤器实现) 7 | * 最后封装了qxtglobalshortcut实现了系统全局热键,在这里感谢原作者的贡献 8 | * 另外,由于qxtglobalshortcut不支持qt5,所以我额外给他增加了一下代码 9 | * 总结,此类支持对象内热键(必须为QObject类型或继承QObject),程序全局热键,系统全局热键,支持qt5和qt4(未尝试,可以需要修改部分代码) 10 | * 请不要删除这段话,谢谢! 11 | */ 12 | #include 13 | #include 14 | #include 15 | #include "qxtglobalshortcut.h"//系统全局热键 16 | 17 | class MyShortcut : public QObject 18 | { 19 | Q_OBJECT 20 | Q_PROPERTY(QString shortcut READ shortcut WRITE setShortcut NOTIFY shortcutChanged) 21 | Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged) 22 | Q_PROPERTY(bool filterOut READ filterOut WRITE setFilterOut NOTIFY filterOutChanged) 23 | //是将事件传递给过滤的对象,对于系统全局热键不可用 24 | Q_PROPERTY(QObject* target READ target WRITE setTarget NOTIFY targetChanged) 25 | Q_PROPERTY(Type shortcutType READ shortcutType WRITE setShortcutType NOTIFY shortcutTypeChanged) 26 | Q_ENUMS(Type) 27 | public: 28 | enum Type{ 29 | LocalShortcut,//局部热键 30 | AppGlobalShortcut,//整个程序的热键 31 | SystemGlobalShortcut//系统全局热键 32 | }; 33 | explicit MyShortcut(Type type = LocalShortcut, QObject *parent = 0); 34 | explicit MyShortcut(QString shortcut, Type type = LocalShortcut, QObject *parent = 0); 35 | QString shortcut() const; 36 | bool isEnabled() const; 37 | bool filterOut() const; 38 | QObject* target() const; 39 | 40 | Type shortcutType() const; 41 | public slots: 42 | void setShortcut(QString arg); 43 | void setEnabled(bool arg); 44 | void setFilterOut(bool arg); 45 | void setTarget(QObject* arg); 46 | void setShortcutType(Type arg); 47 | 48 | signals: 49 | void shortcutChanged(QString arg); 50 | void trigger(); 51 | void enabledChanged(bool arg); 52 | void error(QString arg); 53 | void filterOutChanged(bool arg); 54 | void targetChanged(QObject* arg); 55 | void shortcutTypeChanged(Type arg); 56 | 57 | private: 58 | QString m_shortcut; 59 | QQueue key_list; 60 | QQueue queue_key; 61 | bool m_enabled; 62 | bool m_filterOut; 63 | QPointer m_target; 64 | QPointer obj; 65 | QPointer global_shortcut; 66 | Type m_shortcutType; 67 | 68 | void setObj(QObject *arg); 69 | void updataSystemGlobalShortcut(const QString &arg);//更新系统全局热键 70 | bool eventFilter ( QObject * watched, QEvent * event ); 71 | bool onKeyPressed(QQueue& list); 72 | 73 | }; 74 | 75 | #endif // MYSHORTCUT_H 76 | -------------------------------------------------------------------------------- /src/qxtglobalshortcut/qxtglobalshortcut.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | ** 3 | ** Copyright (C) Qxt Foundation. Some rights reserved. 4 | ** 5 | ** This file is part of the QxtGui module of the Qxt library. 6 | ** 7 | ** This library is free software; you can redistribute it and/or modify it 8 | ** under the terms of the Common Public License, version 1.0, as published 9 | ** by IBM, and/or under the terms of the GNU Lesser General Public License, 10 | ** version 2.1, as published by the Free Software Foundation. 11 | ** 12 | ** This file is provided "AS IS", without WARRANTIES OR CONDITIONS OF ANY 13 | ** KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY 14 | ** WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR 15 | ** FITNESS FOR A PARTICULAR PURPOSE. 16 | ** 17 | ** You should have received a copy of the CPL and the LGPL along with this 18 | ** file. See the LICENSE file and the cpl1.0.txt/lgpl-2.1.txt files 19 | ** included with the source distribution for more information. 20 | ** If you did not receive a copy of the licenses, contact the Qxt Foundation. 21 | ** 22 | ** 23 | ** 24 | ****************************************************************************/ 25 | #ifndef QXTGLOBALSHORTCUT_H 26 | #define QXTGLOBALSHORTCUT_H 27 | 28 | #include "qxtglobal.h" 29 | #include 30 | #include 31 | class QxtGlobalShortcutPrivate; 32 | 33 | class QxtGlobalShortcut : public QObject 34 | { 35 | Q_OBJECT 36 | QXT_DECLARE_PRIVATE(QxtGlobalShortcut) 37 | Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled) 38 | Q_PROPERTY(QKeySequence shortcut READ shortcut WRITE setShortcut) 39 | 40 | public: 41 | explicit QxtGlobalShortcut(QObject* parent = 0); 42 | explicit QxtGlobalShortcut(const QKeySequence& shortcut, QObject* parent = 0); 43 | virtual ~QxtGlobalShortcut(); 44 | 45 | QKeySequence shortcut() const; 46 | bool setShortcut(const QKeySequence& shortcut); 47 | bool isEnabled() const; 48 | 49 | public Q_SLOTS: 50 | void setEnabled(bool enabled = true); 51 | void setDisabled(bool disabled = true); 52 | 53 | Q_SIGNALS: 54 | void activated(); 55 | }; 56 | 57 | #endif // QXTGLOBALSHORTCUT_H 58 | -------------------------------------------------------------------------------- /src/qxtglobalshortcut/qxtglobalshortcut.pri: -------------------------------------------------------------------------------- 1 | INCLUDEPATH += $$PWD 2 | DEPENDPATH += $$PWD 3 | 4 | HEADERS += $$PWD/qxtglobal.h \ 5 | $$PWD/qxtglobalshortcut.h \ 6 | $$PWD/qxtglobalshortcut_p.h \ 7 | $$PWD/myshortcut.h 8 | SOURCES += $$PWD/qxtglobalshortcut.cpp \ 9 | $$PWD/myshortcut.cpp 10 | win32{ 11 | SOURCES += $$PWD/qxtglobalshortcut_win.cpp 12 | LIBS += -luser32 13 | } 14 | unix{ 15 | QT += x11extras 16 | LIBS += -lX11 17 | SOURCES += $$PWD/qxtglobalshortcut_x11.cpp 18 | } 19 | mac{ 20 | SOURCES += $$PWD/qxtglobalshortcut_mac.cpp 21 | } 22 | -------------------------------------------------------------------------------- /src/qxtglobalshortcut/qxtglobalshortcut_p.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | ** 3 | ** Copyright (C) Qxt Foundation. Some rights reserved. 4 | ** 5 | ** This file is part of the QxtGui module of the Qxt library. 6 | ** 7 | ** This library is free software; you can redistribute it and/or modify it 8 | ** under the terms of the Common Public License, version 1.0, as published 9 | ** by IBM, and/or under the terms of the GNU Lesser General Public License, 10 | ** version 2.1, as published by the Free Software Foundation. 11 | ** 12 | ** This file is provided "AS IS", without WARRANTIES OR CONDITIONS OF ANY 13 | ** KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY 14 | ** WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR 15 | ** FITNESS FOR A PARTICULAR PURPOSE. 16 | ** 17 | ** You should have received a copy of the CPL and the LGPL along with this 18 | ** file. See the LICENSE file and the cpl1.0.txt/lgpl-2.1.txt files 19 | ** included with the source distribution for more information. 20 | ** If you did not receive a copy of the licenses, contact the Qxt Foundation. 21 | ** 22 | ** 23 | ** 24 | ****************************************************************************/ 25 | #ifndef QXTGLOBALSHORTCUT_P_H 26 | #define QXTGLOBALSHORTCUT_P_H 27 | 28 | #include "qxtglobalshortcut.h" 29 | #include 30 | #include 31 | #include 32 | #if(QT_VERSION>=0x050000)//雨后星辰 33 | #include 34 | #endif 35 | 36 | class QxtGlobalShortcutPrivate : public QxtPrivate 37 | #if(QT_VERSION>=0x050000) 38 | , public QAbstractNativeEventFilter 39 | #endif 40 | { 41 | public: 42 | QXT_DECLARE_PUBLIC(QxtGlobalShortcut) 43 | QxtGlobalShortcutPrivate(); 44 | ~QxtGlobalShortcutPrivate(); 45 | 46 | bool enabled; 47 | Qt::Key key; 48 | Qt::KeyboardModifiers mods; 49 | 50 | bool setShortcut(const QKeySequence& shortcut); 51 | bool unsetShortcut(); 52 | 53 | static bool error; 54 | static int ref; 55 | #if(QT_VERSION<0x050000)//雨后星辰 56 | static QAbstractEventDispatcher::EventFilter prevEventFilter; 57 | static bool eventFilter(void* message); 58 | #else 59 | bool nativeEventFilter(const QByteArray &eventType, void *message, long *result); 60 | #endif 61 | private: 62 | static quint32 nativeKeycode(Qt::Key keycode); 63 | static quint32 nativeModifiers(Qt::KeyboardModifiers modifiers); 64 | 65 | static bool registerShortcut(quint32 nativeKey, quint32 nativeMods); 66 | static bool unregisterShortcut(quint32 nativeKey, quint32 nativeMods); 67 | static void activateShortcut(quint32 nativeKey, quint32 nativeMods); 68 | 69 | static QHash, QxtGlobalShortcut*> shortcuts; 70 | }; 71 | 72 | #endif // QXTGLOBALSHORTCUT_P_H 73 | -------------------------------------------------------------------------------- /src/utility/downloadimage.h: -------------------------------------------------------------------------------- 1 | #ifndef DOWNLOADIMAGE_H 2 | #define DOWNLOADIMAGE_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #if(QT_VERSION>=0x050000) 11 | #include 12 | #include 13 | #else 14 | #include 15 | #include 16 | #endif 17 | 18 | class MyHttpRequest; 19 | class QNetworkReply; 20 | class DownloadImage : public QObject 21 | { 22 | Q_OBJECT 23 | Q_ENUMS(ErrorType) 24 | public: 25 | explicit DownloadImage(QObject *parent = 0); 26 | explicit DownloadImage(MyHttpRequest* http, QObject *parent = 0); 27 | MyHttpRequest *getHttpRequest(); 28 | 29 | static QString imageFormatToString(const QByteArray& array); 30 | 31 | enum ErrorType{ 32 | NoError,//无错误 33 | DownloadError,//下载出错 34 | SaveError,//保存出错 35 | NotSupportFormat//不支持的图片格式 36 | }; 37 | 38 | private: 39 | enum ReplyType{//回调的几种方式 40 | CallbackFun, 41 | ConnectSlot 42 | }; 43 | struct Data{ 44 | ReplyType replyType; 45 | #if(QT_VERSION>=0x050000) 46 | QJSValue callbackFun; 47 | #else 48 | QScriptValue callbackFun; 49 | #endif 50 | QObject* caller; 51 | QByteArray slotName; 52 | QString savePath; 53 | QString saveName; 54 | }; 55 | QQueue queue_data; 56 | MyHttpRequest* httpRequest; 57 | 58 | private slots: 59 | void downloadFinished(QNetworkReply *replys);//当图片下载完成的时候调用 60 | public slots: 61 | #if(QT_VERSION>=0x050000) 62 | void getImage(QJSValue callbackFun, QUrl url, QString savePath, QString saveName); 63 | #else 64 | void getImage(QScriptValue callbackFun, QUrl url, QString savePath, QString saveName); 65 | #endif 66 | void getImage(QObject *caller, QByteArray slotName, QUrl url, QString savePath, QString saveName); 67 | /* 68 | * savePath中最后一个目录后面不要加"/",saveName不要带后缀 69 | */ 70 | }; 71 | 72 | #endif // DOWNLOADIMAGE_H 73 | -------------------------------------------------------------------------------- /src/utility/myhttprequest.h: -------------------------------------------------------------------------------- 1 | #ifndef MYHTTPREQUEST_H 2 | #define MYHTTPREQUEST_H 3 | 4 | #include 5 | #include 6 | #include 7 | #if(QT_VERSION>=0x050000) 8 | #include 9 | #include 10 | #else 11 | #include 12 | #include 13 | #endif 14 | 15 | class NetworkAccessManager; 16 | class MyHttpRequest : public QObject 17 | { 18 | Q_OBJECT 19 | Q_PROPERTY( RequestStatus status READ status WRITE setStatus NOTIFY statusChanged) 20 | Q_ENUMS(RequestStatus) 21 | 22 | public: 23 | explicit MyHttpRequest(QObject *parent = 0); 24 | enum RequestStatus{ 25 | Idle,//初始状态 26 | Busy//请求中 27 | }; 28 | 29 | const NetworkAccessManager *getNetworkAccessManager(); 30 | QNetworkRequest *getNetworkRequest(); 31 | protected: 32 | NetworkAccessManager *manager; 33 | QNetworkRequest request; 34 | QPointer m_reply; 35 | 36 | RequestStatus m_status; 37 | RequestStatus status(); 38 | void setStatus( RequestStatus new_status ); 39 | 40 | enum ReplyType{//回调的几种方式 41 | CallbackFun, 42 | ConnectSlot 43 | }; 44 | struct Data{ 45 | ReplyType replyType; 46 | #if(QT_VERSION>=0x050000) 47 | QJSValue callbackFun; 48 | #else 49 | QScriptValue callbackFun; 50 | #endif 51 | QObject* caller; 52 | QByteArray slotName; 53 | }; 54 | struct requestData{ 55 | QUrl url; 56 | QByteArray data; 57 | }; 58 | 59 | QQueue queue_replyData; 60 | QQueue queue_requestData; 61 | 62 | void send(QObject *caller, QByteArray slotName, QUrl url, QByteArray data="", bool highRequest=false );//highRequest记录是否为高级的网络请求 63 | #if(QT_VERSION>=0x050000) 64 | void send( QJSValue callbackFun, QUrl url, QByteArray data="", bool highRequest=false ); 65 | #else 66 | void send( QScriptValue callbackFun, QUrl url, QByteArray data="", bool highRequest=false ); 67 | #endif 68 | protected slots: 69 | virtual void finished( QNetworkReply *reply ); 70 | void send(); 71 | signals: 72 | void statusChanged(); 73 | public slots: 74 | void get(QObject *caller, QByteArray slotName, QUrl url, bool highRequest=false ); 75 | void post(QObject *caller, QByteArray slotName, QUrl url, QByteArray data="", bool highRequest=false ); 76 | #if(QT_VERSION>=0x050000) 77 | void get(QJSValue callbackFun, QUrl url, bool highRequest=false ); 78 | void post(QJSValue callbackFun, QUrl url, QByteArray data="", bool highRequest=false ); 79 | #else 80 | void get(QScriptValue callbackFun, QUrl url, bool highRequest=false ); 81 | void post(QScriptValue callbackFun, QUrl url, QByteArray data="", bool highRequest=false ); 82 | #endif 83 | void abort();//取消当前网络请求 84 | QString errorString(); 85 | }; 86 | 87 | class MyHttpRequestPrivate : public MyHttpRequest 88 | { 89 | Q_OBJECT 90 | private: 91 | #if(QT_VERSION>=0x050000) 92 | explicit MyHttpRequestPrivate(QNetworkRequest request, QJSValue callbackFun, QUrl url, QByteArray data); 93 | #else 94 | explicit MyHttpRequestPrivate(QNetworkRequest request, QScriptValue callbackFun, QUrl url, QByteArray data); 95 | #endif 96 | explicit MyHttpRequestPrivate(QNetworkRequest request, QObject *caller, QByteArray slotName, QUrl url, QByteArray data); 97 | friend class MyHttpRequest; 98 | private slots: 99 | void finished( QNetworkReply *reply ); 100 | }; 101 | 102 | #endif // MYHTTPREQUEST_H 103 | -------------------------------------------------------------------------------- /src/utility/mynetworkaccessmanagerfactory.cpp: -------------------------------------------------------------------------------- 1 | #include "mynetworkaccessmanagerfactory.h" 2 | #include 3 | #include 4 | 5 | MyNetworkAccessManagerFactory::MyNetworkAccessManagerFactory(QObject *parent) : 6 | QObject(parent) 7 | { 8 | m_networkManager = new NetworkAccessManager(this); 9 | connect(m_networkManager,SIGNAL(sslErrors(QNetworkReply*,QList)),this,SLOT(onIgnoreSSLErrors(QNetworkReply*,QList))); 10 | } 11 | 12 | QNetworkAccessManager* MyNetworkAccessManagerFactory::create(QObject *parent) 13 | { 14 | QMutexLocker lock(&mutex); 15 | Q_UNUSED(lock); 16 | QNetworkAccessManager* manager = new NetworkAccessManager(parent); 17 | 18 | return manager; 19 | } 20 | 21 | void MyNetworkAccessManagerFactory::onIgnoreSSLErrors(QNetworkReply *reply, QList error) 22 | { 23 | qDebug()<ignoreSslErrors(error); 25 | } 26 | 27 | NetworkAccessManager::NetworkAccessManager(QObject *parent) : 28 | QNetworkAccessManager(parent) 29 | { 30 | QNetworkCookieJar* cookieJar = NetworkCookieJar::GetInstance(); 31 | setCookieJar(cookieJar); 32 | cookieJar->setParent(0); 33 | } 34 | 35 | QNetworkReply *NetworkAccessManager::createRequest(Operation op, const QNetworkRequest &request, QIODevice *outgoingData) 36 | { 37 | QNetworkRequest req(request); 38 | QSslConfiguration config; 39 | 40 | config.setPeerVerifyMode(QSslSocket::VerifyNone); 41 | config.setProtocol(QSsl::TlsV1_0); 42 | req.setSslConfiguration(config); 43 | // set user-agent 44 | if (op == PostOperation){ 45 | req.setRawHeader("User-Agent", "IDP"); 46 | } else { 47 | req.setRawHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36 LBBROWSER"); 48 | } 49 | 50 | QNetworkReply *reply = QNetworkAccessManager::createRequest(op, req, outgoingData); 51 | 52 | return reply; 53 | } 54 | 55 | NetworkCookieJar::NetworkCookieJar(QObject *parent) : 56 | QNetworkCookieJar(parent) 57 | { 58 | //keepAliveCookie = QNetworkCookie("ka", "open"); 59 | load (); 60 | } 61 | 62 | NetworkCookieJar::~NetworkCookieJar() 63 | { 64 | } 65 | 66 | void NetworkCookieJar::load() 67 | { 68 | QMutexLocker lock(&mutex); 69 | Q_UNUSED(lock); 70 | 71 | } 72 | 73 | NetworkCookieJar* NetworkCookieJar::GetInstance() 74 | { 75 | static NetworkCookieJar cookieJar; 76 | return &cookieJar; 77 | } 78 | 79 | void NetworkCookieJar::clearCookies() 80 | { 81 | QList emptyList; 82 | setAllCookies(emptyList); 83 | } 84 | 85 | QList NetworkCookieJar::cookiesForUrl(const QUrl &url) const 86 | { 87 | QMutexLocker lock(&mutex); 88 | Q_UNUSED(lock); 89 | QList cookies = QNetworkCookieJar::cookiesForUrl(url); 90 | return cookies; 91 | } 92 | 93 | bool NetworkCookieJar::setCookiesFromUrl(const QList &cookieList, const QUrl &url) 94 | { 95 | QMutexLocker lock(&mutex); 96 | Q_UNUSED(lock); 97 | return QNetworkCookieJar::setCookiesFromUrl(cookieList, url); 98 | } 99 | 100 | QList NetworkCookieJar::cookies() const 101 | { 102 | return allCookies (); 103 | } 104 | -------------------------------------------------------------------------------- /src/utility/mynetworkaccessmanagerfactory.h: -------------------------------------------------------------------------------- 1 | #ifndef MYNETWORKACCESSMANAGERFACTORY_H 2 | #define MYNETWORKACCESSMANAGERFACTORY_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | class MyNetworkAccessManagerFactory : public QObject,public QQmlNetworkAccessManagerFactory 9 | { 10 | Q_OBJECT 11 | public: 12 | explicit MyNetworkAccessManagerFactory( QObject *parent = 0 ); 13 | virtual QNetworkAccessManager* create(QObject *parent); 14 | public slots: 15 | void onIgnoreSSLErrors(QNetworkReply* reply,QList error); 16 | private: 17 | QMutex mutex; 18 | QNetworkAccessManager* m_networkManager; 19 | }; 20 | 21 | class NetworkAccessManager : public QNetworkAccessManager 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit NetworkAccessManager(QObject *parent = 0); 27 | protected: 28 | QNetworkReply *createRequest(Operation op, const QNetworkRequest &request, QIODevice *outgoingData); 29 | }; 30 | 31 | class NetworkCookieJar : public QNetworkCookieJar 32 | { 33 | public: 34 | static NetworkCookieJar* GetInstance(); 35 | void clearCookies(); 36 | 37 | virtual QList cookiesForUrl(const QUrl &url) const; 38 | virtual bool setCookiesFromUrl(const QList &cookieList, const QUrl &url); 39 | QList cookies() const; 40 | private: 41 | explicit NetworkCookieJar(QObject *parent = 0); 42 | ~NetworkCookieJar(); 43 | void load(); 44 | mutable QMutex mutex; 45 | //QNetworkCookie keepAliveCookie; 46 | }; 47 | 48 | #endif // MYNETWORKACCESSMANAGERFACTORY_H 49 | -------------------------------------------------------------------------------- /src/utility/texteditplaygif.h: -------------------------------------------------------------------------------- 1 | #ifndef TEXTEDITPLAYGIF_H 2 | #define TEXTEDITPLAYGIF_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | class QQuickTextEdit; 12 | class TextEditPlayGif : public QObject 13 | { 14 | Q_OBJECT 15 | 16 | Q_PROPERTY(QQuickTextEdit* target READ target WRITE setTarget NOTIFY targetChanged) 17 | Q_PROPERTY(QUrl cachePath READ cachePath WRITE setCachePath NOTIFY cachePathChanged)//此属性暂时未使用 18 | Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY enabledChanged) 19 | 20 | public: 21 | TextEditPlayGif(QObject *parent=0); 22 | 23 | QQuickTextEdit* target() const; 24 | QUrl cachePath() const; 25 | bool enabled() const; 26 | 27 | private: 28 | struct MovieData{ 29 | QMovie* movie; 30 | QString url; 31 | QString gifName; 32 | QSize size; 33 | }; 34 | 35 | QPointer m_target; 36 | QList list_movie; 37 | QStringList list_errorUrl;//记录那些解析出错的gif的路径 38 | QUrl m_cachePath; 39 | QString old_content; 40 | bool m_enabled; 41 | 42 | void clearMovie(); 43 | void addMovie(QMovie *movie, const QString &url, const QString& gif_name, QSize size); 44 | QString getUrlByMovie(QMovie* movie); 45 | QString getGifNameByMovie(QMovie* movie); 46 | MovieData* getDataByGifNameAndSize(const QString& name, QSize size); 47 | MovieData* getDataByMovie(const QMovie* movie); 48 | void setUrlByMovie(QMovie* movie, const QString &url); 49 | 50 | bool isErrorUrl(const QString url); 51 | void addErrorUrl(const QString url); 52 | 53 | void startAllMovie(); 54 | void stopAllMovie(); 55 | 56 | void setTextEditContent(const QString& data); 57 | public slots: 58 | void onTextChanged(); 59 | private slots: 60 | void onMovie(int frame); 61 | void onMovieFinished(); 62 | signals: 63 | void targetChanged(QQuickTextEdit* arg); 64 | void cachePathChanged(QUrl arg); 65 | void error(const QString& errorString); 66 | void enabledChanged(bool arg); 67 | 68 | public slots: 69 | void setTarget(QQuickTextEdit* arg); 70 | void setCachePath(QUrl arg); 71 | 72 | void removeErrorUrl(const QString& url); 73 | void setEnabled(bool arg); 74 | }; 75 | 76 | #endif // TEXTEDITPLAYGIF_H 77 | -------------------------------------------------------------------------------- /src/utility/utility.h: -------------------------------------------------------------------------------- 1 | #ifndef UTILITY_H 2 | #define UTILITY_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | class UtilityPrivate : public QObject 15 | { 16 | Q_OBJECT 17 | Q_ENUMS(ProxyType) 18 | public: 19 | enum ProxyType { 20 | DefaultProxy, 21 | Socks5Proxy, 22 | NoProxy, 23 | HttpProxy, 24 | HttpCachingProxy, 25 | FtpCachingProxy 26 | }; 27 | }; 28 | 29 | class MyHttpRequest; 30 | class DownloadImage; 31 | class Utility : public QObject 32 | { 33 | Q_OBJECT 34 | public: 35 | static Utility *createUtilityClass(); 36 | 37 | private: 38 | explicit Utility(QObject *parent = 0); 39 | ~Utility(); 40 | QPointer engine; 41 | QPointer mysettings; 42 | 43 | MyHttpRequest *http_request; 44 | DownloadImage *download_image; 45 | 46 | QNetworkConfigurationManager networkConfigurationManager; 47 | 48 | char numToStr(int num);//将数字按一定的规律换算成字母 49 | QByteArray strZoarium(const QByteArray &str);//按一定的规律加密字符串(只包含数字和字母的字符串) 50 | QByteArray unStrZoarium(const QByteArray &str);//按一定的规律解密字符串(只包含数字和字母的字符串) 51 | QByteArray fillContent(const QByteArray &str, int length);//将字符串填充到一定的长度 52 | 53 | public: 54 | Q_INVOKABLE void consoleLog(QString str);//输出调试信息 55 | Q_INVOKABLE QString getCookie( QString cookieName ); 56 | QQmlApplicationEngine *qmlEngine(); 57 | MyHttpRequest *getHttpRequest(); 58 | DownloadImage *getDownloadImage(); 59 | bool networkIsOnline() const; 60 | signals: 61 | void mouseDesktopPosChanged(QPoint arg); 62 | void networkOnlineStateChanged(bool isOnline); 63 | public slots: 64 | void initUtility(QSettings *settings=0, QQmlApplicationEngine *qmlEngine=0); 65 | void setQmlEngine( QQmlApplicationEngine *new_engine ); 66 | QPoint mouseDesktopPos(); 67 | 68 | void setQSettings(QSettings *settings); 69 | void setValue( const QString & key, const QVariant & value); 70 | QVariant value(const QString & key, const QVariant & defaultValue = QVariant()) const; 71 | void removeValue( const QString & key ); 72 | 73 | void loadQml( QUrl url ); 74 | #if(QT_VERSION>=0x050000) 75 | void downloadImage( QJSValue callbackFun, QUrl url, QString savePath, QString saveName ); 76 | void httpGet(QJSValue callbackFun, QUrl url, bool highRequest=false ); 77 | void httpPost(QJSValue callbackFun, QUrl url, QByteArray data="", bool highRequest=false ); 78 | #else 79 | void downloadImage( QScriptValue callbackFun, QUrl url, QString savePath, QString saveName ); 80 | void httpGet(QScriptValue callbackFun, QUrl url, bool highRequest=false ); 81 | void httpPost(QScriptValue callbackFun, QUrl url, QByteArray data="", bool highRequest=false ); 82 | #endif 83 | void downloadImage( QObject *caller, QByteArray slotName, QUrl url, QString savePath, QString saveName ); 84 | void httpGet(QObject *caller, QByteArray slotName, QUrl url, bool highRequest=false); 85 | void httpPost(QObject *caller, QByteArray slotName, QUrl url, QByteArray data, bool highRequest=false); 86 | void socketAbort(); 87 | void setApplicationProxy( int type, QString location, QString port, QString username, QString password ); 88 | 89 | QString stringEncrypt(const QString &content, QString key);//加密任意字符串,中文请使用utf-8编码 90 | QString stringUncrypt(const QString &content_hex, QString key);//解密加密后的字符串 91 | 92 | void removePath(QString dirPath ,bool deleteHidden = true, bool deleteSelf = true ); 93 | }; 94 | 95 | #endif // UTILITY_H 96 | -------------------------------------------------------------------------------- /style.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | style/menuStyle.css 4 | style/messageBoxStyle.css 5 | 6 | 7 | -------------------------------------------------------------------------------- /style/menuStyle.css: -------------------------------------------------------------------------------- 1 | QMenu::item:selected { 2 | background: #F07000; 3 | color:#E6FFFF; 4 | height:25px; 5 | } 6 | QMenu{ 7 | background-image: url(":/images/menu_background.png"); 8 | } 9 | QMenu::item{ 10 | padding-left:35px; 11 | padding-right:30px; 12 | height:22px; 13 | } 14 | QMenu::icon{ 15 | padding-left:8px; 16 | } 17 | QMenu::separator { 18 | height: 1px; 19 | margin:5px 0px 5px 22px; 20 | background: #B2C0CD; 21 | } 22 | -------------------------------------------------------------------------------- /style/messageBoxStyle.css: -------------------------------------------------------------------------------- 1 | QMessageBox{ 2 | background-image: url(":/images/menu_background.png"); 3 | } 4 | QPushButton { 5 | background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,stop: 0 #ddd,stop: 1 #ccc); 6 | border-radius: 10px; 7 | padding: 6px; 8 | min-width: 5em; 9 | } 10 | QPushButton::hover{ 11 | background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,stop: 0 #ccc,stop: 1 #eee); 12 | } 13 | QPushButton::pressed{ 14 | background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,stop: 0 #ccc,stop: 1 #bbb); 15 | } 16 | --------------------------------------------------------------------------------