用Qt写软件系列五:一个安全防护软件的制作(2)

用Qt写软件系列五:一个安全防护软件的制作(2)

ID:40503045

大小:349.16 KB

页数:10页

时间:2019-08-03

用Qt写软件系列五:一个安全防护软件的制作(2)_第1页
用Qt写软件系列五:一个安全防护软件的制作(2)_第2页
用Qt写软件系列五:一个安全防护软件的制作(2)_第3页
用Qt写软件系列五:一个安全防护软件的制作(2)_第4页
用Qt写软件系列五:一个安全防护软件的制作(2)_第5页
资源描述:

《用Qt写软件系列五:一个安全防护软件的制作(2)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、用Qt写软件系列五:一个安全防护软件的制作(2)引言    在上一篇中讲述了主窗体的创建和设计。主窗体的无边框效果、阴影效果、拖动事件处理、窗体美化等工作在前面的博客中早就涉及,因此上篇博文中并未花费过多笔墨。这一篇继续讲述工具箱(ToolButton)的实现。另外,在实现的过程中还做了另外一个贴心的小功能:可伸缩的侧边栏。不过后来发现应用起来后效果不佳,于是就没在主窗体中加入这个功能了,单独做了一个demo作为示范。工具箱的实现    工具箱是将若干的工具按钮组织在一起,为用户提供简便导航功能的一个组件。在Qt中实现这个功能不难,Qt库本身就提供了QTool

2、Button和QToolBox两个类用于类似功能。在这里我们从QToolButton类派生一个子类自定义按钮动作。QToolButton类本身只提供了一些基本功能。因此我们需要实现一些事件处理器来自定义工具按钮的动作和外观。    看码说话:CustomToolButton::CustomToolButton(constQString&path,QWidget*parent)    :QToolButton(parent),m_filePath(path){    //Getthewidget'spalette,wedohavetochangethecolor

3、ofthetoolbutton.    QPalettetext_palette=palette();    text_palette.setColor(QPalette::ButtonText,QColor(230,230,230));    setPalette(text_palette);    //setthestyleofQToolButton.    setToolButtonStyle(Qt::ToolButtonTextUnderIcon);    //setthefontstyleoftoolbuttons    //sincetheretu

4、rnvaluehasthetypeofconst,wehavetoremovethe    //constnessifwewanttomodify.    QFonttext_font=const_cast(font());    text_font.setBold(true);    setFont(text_font);    //setthefixedsizefortoolbuttons.    QPixmapbackground(m_filePath);    setIcon(background);    setIconSize(ba

5、ckground.size());    setFixedSize(background.width()+25,background.height()+25);     setAutoRaise(true);    m_mousePressed=false;    m_mouseHover=false;}/* *ArgumentstopColor,centerColor,bottomColorarealphavaluesforQColor. */voidCustomToolButton::doPaintStuff(inttopColor,intcenterCo

6、lor,intbottomColor){    QPainterpainter(this);    QPenp(Qt::NoBrush,1);    painter.setPen(p);    //createlineargradientbrushtodrawthewidget    QLinearGradientlinear(rect().topLeft(),rect().bottomLeft());    linear.setColorAt(0,QColor(230,230,230,topColor));    linear.setColorAt(0.5,

7、QColor(230,230,230,centerColor));    linear.setColorAt(1,QColor(230,230,230,bottomColor));     //paintthewidget.    painter.setBrush(linear);    painter.drawRect(rect());} voidCustomToolButton::setButtonPressed(boolisPressed){    m_mousePressed=isPressed;    update();} voidCustomToo

8、lButton::enterEvent

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。