⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qwindowsstyle.cpp

📁 奇趣公司比较新的qt/emd版本
💻 CPP
📖 第 1 页 / 共 5 页
字号:
"....bbbbbbbbbbbbbbbbbbbbbbbbbbb.",".....bbbbbbbbbbbbbbbbbbbbbbbbb.."};/* XPM */static const char* const critical_xpm[]={"32 32 4 1",". c None","a c #999999","* c #ff0000","b c #ffffff","...........********.............",".........************...........",".......****************.........","......******************........",".....********************a......","....**********************a.....","...************************a....","..*******b**********b*******a...","..******bbb********bbb******a...",".******bbbbb******bbbbb******a..",".*******bbbbb****bbbbb*******a..","*********bbbbb**bbbbb*********a.","**********bbbbbbbbbb**********a.","***********bbbbbbbb***********aa","************bbbbbb************aa","************bbbbbb************aa","***********bbbbbbbb***********aa","**********bbbbbbbbbb**********aa","*********bbbbb**bbbbb*********aa",".*******bbbbb****bbbbb*******aa.",".******bbbbb******bbbbb******aa.","..******bbb********bbb******aaa.","..*******b**********b*******aa..","...************************aaa..","....**********************aaa...","....a********************aaa....",".....a******************aaa.....","......a****************aaa......",".......aa************aaaa.......",".........aa********aaaaa........","...........aaaaaaaaaaa..........",".............aaaaaaa............"};/* XPM */static const char *const question_xpm[] = {"32 32 5 1",". c None","c c #000000","* c #999999","a c #ffffff","b c #0000ff","...........********.............","........***aaaaaaaa***..........","......**aaaaaaaaaaaaaa**........",".....*aaaaaaaaaaaaaaaaaa*.......","....*aaaaaaaaaaaaaaaaaaaac......","...*aaaaaaaabbbbbbaaaaaaaac.....","..*aaaaaaaabaaabbbbaaaaaaaac....",".*aaaaaaaabbaaaabbbbaaaaaaaac...",".*aaaaaaaabbbbaabbbbaaaaaaaac*..","*aaaaaaaaabbbbaabbbbaaaaaaaaac*.","*aaaaaaaaaabbaabbbbaaaaaaaaaac*.","*aaaaaaaaaaaaabbbbaaaaaaaaaaac**","*aaaaaaaaaaaaabbbaaaaaaaaaaaac**","*aaaaaaaaaaaaabbaaaaaaaaaaaaac**","*aaaaaaaaaaaaabbaaaaaaaaaaaaac**","*aaaaaaaaaaaaaaaaaaaaaaaaaaaac**",".*aaaaaaaaaaaabbaaaaaaaaaaaac***",".*aaaaaaaaaaabbbbaaaaaaaaaaac***","..*aaaaaaaaaabbbbaaaaaaaaaac***.","...caaaaaaaaaabbaaaaaaaaaac****.","....caaaaaaaaaaaaaaaaaaaac****..",".....caaaaaaaaaaaaaaaaaac****...","......ccaaaaaaaaaaaaaacc****....",".......*cccaaaaaaaaccc*****.....","........***cccaaaac*******......","..........****caaac*****........",".............*caaac**...........","...............caac**...........","................cac**...........",".................cc**...........","..................***...........","...................**..........."};#endif //QT_NO_IMAGEFORMAT_XPM/*! \reimp */QPixmap QWindowsStyle::standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt,                                      const QWidget *widget) const{#ifdef Q_WS_WIN    QPixmap desktopIcon;    switch(standardPixmap) {    case SP_DriveCDIcon:    case SP_DriveDVDIcon:        {            desktopIcon = loadIconFromShell32(12, 16);            break;        }    case SP_DriveNetIcon:        {            desktopIcon = loadIconFromShell32(10, 16);            break;        }    case SP_DriveHDIcon:        {            desktopIcon = loadIconFromShell32(9, 16);            break;        }    case SP_DriveFDIcon:        {            desktopIcon = loadIconFromShell32(7, 16);            break;        }    case SP_FileIcon:        {            desktopIcon = loadIconFromShell32(1, 16);            break;        }    case SP_FileLinkIcon:        {            desktopIcon = loadIconFromShell32(1, 16);            QPainter painter(&desktopIcon);            QPixmap link = loadIconFromShell32(30, 16);            painter.drawPixmap(0, 0, 16, 16, link);            break;        }    case SP_DirLinkIcon:        {            desktopIcon = loadIconFromShell32(4, 16);            QPainter painter(&desktopIcon);            QPixmap link = loadIconFromShell32(30, 16);            painter.drawPixmap(0, 0, 16, 16, link);            break;        }    case SP_DirClosedIcon:        {            desktopIcon = loadIconFromShell32(4, 16);            break;        }    case SP_DesktopIcon:        {            desktopIcon = loadIconFromShell32(35, 16);            break;        }    case SP_ComputerIcon:        {            desktopIcon = loadIconFromShell32(16, 16);            break;        }    case SP_DirOpenIcon:        {            desktopIcon = loadIconFromShell32(5, 16);            break;        }    case SP_FileDialogNewFolder:        {            desktopIcon = loadIconFromShell32(319, 16);            break;        }    case SP_DirHomeIcon:        {            desktopIcon = loadIconFromShell32(235, 16);            break;        }    case SP_TrashIcon:        {            desktopIcon = loadIconFromShell32(191, 16);            break;        }    case SP_MessageBoxInformation:        {            HICON iconHandle = LoadIcon(NULL, IDI_INFORMATION);            desktopIcon = convertHIconToPixmap( iconHandle );            DestroyIcon(iconHandle);            break;        }    case SP_MessageBoxWarning:        {            HICON iconHandle = LoadIcon(NULL, IDI_WARNING);            desktopIcon = convertHIconToPixmap( iconHandle );            DestroyIcon(iconHandle);            break;        }    case SP_MessageBoxCritical:        {            HICON iconHandle = LoadIcon(NULL, IDI_ERROR);            desktopIcon = convertHIconToPixmap( iconHandle );            DestroyIcon(iconHandle);            break;        }    case SP_MessageBoxQuestion:        {            HICON iconHandle = LoadIcon(NULL, IDI_QUESTION);            desktopIcon = convertHIconToPixmap( iconHandle );            DestroyIcon(iconHandle);            break;        }    case SP_VistaShield:        {            if (QSysInfo::WindowsVersion >= QSysInfo::WV_VISTA                && QSysInfo::WindowsVersion < QSysInfo::WV_NT_based                && pSHGetStockIconInfo)            {                QPixmap pixmap;                QSHSTOCKICONINFO iconInfo;                memset(&iconInfo, 0, sizeof(iconInfo));                iconInfo.cbSize = sizeof(iconInfo);                if (pSHGetStockIconInfo(_SIID_SHIELD, _SHGFI_ICON | _SHGFI_SMALLICON, &iconInfo) == S_OK) {                    pixmap = convertHIconToPixmap(iconInfo.hIcon);                    DestroyIcon(iconInfo.hIcon);                    return pixmap;                }            }        }        break;    }    if (!desktopIcon.isNull()) {        return desktopIcon;    }#endif#ifndef QT_NO_IMAGEFORMAT_XPM    switch (standardPixmap) {    case SP_TitleBarMenuButton:        return QPixmap(qt_menu_xpm);    case SP_TitleBarShadeButton:        return QPixmap(qt_shade_xpm);    case SP_TitleBarUnshadeButton:        return QPixmap(qt_unshade_xpm);    case SP_TitleBarNormalButton:        return QPixmap(qt_normalizeup_xpm);    case SP_TitleBarMinButton:        return QPixmap(qt_minimize_xpm);    case SP_TitleBarMaxButton:        return QPixmap(qt_maximize_xpm);    case SP_TitleBarCloseButton:        return QPixmap(qt_close_xpm);    case SP_TitleBarContextHelpButton:        return QPixmap(qt_help_xpm);    case SP_DockWidgetCloseButton:        return QPixmap(dock_widget_close_xpm);    case SP_MessageBoxInformation:        return QPixmap(information_xpm);    case SP_MessageBoxWarning:        return QPixmap(warning_xpm);    case SP_MessageBoxCritical:        return QPixmap(critical_xpm);    case SP_MessageBoxQuestion:        return QPixmap(question_xpm);    default:        break;    }#endif //QT_NO_IMAGEFORMAT_XPM    return QCommonStyle::standardPixmap(standardPixmap, opt, widget);}/*! \reimp */int QWindowsStyle::styleHint(StyleHint hint, const QStyleOption *opt, const QWidget *widget,                             QStyleHintReturn *returnData) const{    int ret = 0;    switch (hint) {    case SH_EtchDisabledText:    case SH_Slider_SnapToValue:    case SH_PrintDialog_RightAlignButtons:    case SH_FontDialog_SelectAssociatedText:    case SH_Menu_AllowActiveAndDisabled:    case SH_MenuBar_AltKeyNavigation:    case SH_MenuBar_MouseTracking:    case SH_Menu_MouseTracking:    case SH_ComboBox_ListMouseTracking:    case SH_ScrollBar_StopMouseOverSlider:    case SH_MainWindow_SpaceBelowMenuBar:        ret = 1;        break;    case SH_ItemView_ChangeHighlightOnFocus:#if defined(Q_WS_WIN)        if (QSysInfo::WindowsVersion != QSysInfo::WV_95 && QSysInfo::WindowsVersion != QSysInfo::WV_NT)            ret = 1;        else#endif            ret = 0;        break;    case SH_ToolBox_SelectedPageTitleBold:        ret = 0;        break;#if defined(Q_WS_WIN)    case SH_UnderlineShortcut:        ret = 1;        if (QSysInfo::WindowsVersion != QSysInfo::WV_95            && QSysInfo::WindowsVersion != QSysInfo::WV_98            && QSysInfo::WindowsVersion != QSysInfo::WV_NT) {            BOOL cues;            SystemParametersInfo(SPI_GETKEYBOARDCUES, 0, &cues, 0);            ret = int(cues);            // Do nothing if we always paint underlines            Q_D(const QWindowsStyle);            if (!ret && widget && d) {#ifndef QT_NO_MENUBAR                const QMenuBar *menuBar = ::qobject_cast<const QMenuBar*>(widget);                if (!menuBar && ::qobject_cast<const QMenu *>(widget)) {                    QWidget *w = QApplication::activeWindow();                    if (w && w != widget)                        menuBar = qFindChild<QMenuBar *>(w);                }                // If we paint a menu bar draw underlines if it has focus, or if alt is down,                // or if a popup menu belonging to the menu bar is active and paints underlines                if (menuBar) {                    if (menuBar->hasFocus() || d->altDown())                        ret = 1;                    // Otherwise draw underlines if the toplevel widget has seen an alt-press                } else#endif // QT_NO_MENUBAR                if (d->hasSeenAlt(widget)) {                    ret = 1;                }            }        }        break;#endif#ifndef QT_NO_RUBBERBAND    case SH_RubberBand_Mask:        if (const QStyleOptionRubberBand *rbOpt = qstyleoption_cast<const QStyleOptionRubberBand *>(opt)) {            ret = 0;            if (rbOpt->shape == QRubberBand::Rectangle) {                ret = true;                if(QStyleHintReturnMask *mask = qstyleoption_cast<QStyleHintReturnMask*>(returnData)) {                    mask->region = opt->rect;                    int size = 1;                    if (widget && widget->isWindow())                        size = 4;                    mask->region -= opt->rect.adjusted(size, size, -size, -size);                }            }        }        break;#endif // QT_NO_RUBBERBAND    case SH_LineEdit_PasswordCharacter:        {#ifdef Q_WS_WIN            if (widget && (QSysInfo::WindowsVersion >= QSysInfo::WV_XP && QSysInfo::WindowsVersion < QSysInfo::WV_NT_based)) {                const QFontMetrics &fm = widget->fontMetrics();                if (fm.inFont(QChar(0x25CF)))                    ret = 0x25CF;                else if (fm.inFont(QChar(0x2022)))                    ret = 0x2022;            }#endif            if (!ret)                ret = '*';        }        break;#ifndef QT_NO_WIZARD    case SH_WizardStyle:        ret = QWizard::ModernStyle;        break;#endif    case SH_ItemView_ArrowKeysNavigateIntoChildren:        ret = true;        break;    default:        ret = QCommonStyle::styleHint(hint, opt, widget, returnData);        break;    }    return ret;}/*! \reimp */void QWindowsStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -