精华内容
下载资源
问答
  • 需要给QLineEdit添加清空按钮的直接在属性里面勾选clearButtonEnabled 需要给QLineEdit文本框添加提示语的,在placeholderText后面加上你需要的文字即可 效果如下图: ...

    需要给QLineEdit添加清空按钮的直接在属性里面勾选clearButtonEnabled

    需要给QLineEdit文本框添加提示语的,在placeholderText后面加上你需要的文字即可

    效果如下图:

     

     

     

     

    展开全文
  • QT按钮TEXT设置小技巧

    千次阅读 2011-07-25 16:27:41
    情形如下:(两张图片)   如上图一样,第二界面(是dialog,文件名是...首先,在第一个界面的源文件中添加一个头文件: #include "ui_button.h" 然后在按钮的槽中加入代码: button *setdlg = new button; setd
      
    

     情形如下:(两张图片)

     

    如上图一样,第二界面(是dialog,文件名是button偷笑)中的按钮没有文字,现在就是通过第一界面(widget)中的按钮显示出第二个界面,然后使其按钮出现文字。

    首先,在第一个界面的源文件中添加一个头文件:

    #include "ui_button.h"


    然后在按钮的槽中加入代码:

    button *setdlg = new button;
    setdlg->ui->pushButton->setText(tr("hello , it is hot!"));
    setdlg->show();


    这样之后,运行就有这个效果了。

     

    展开全文
  • Qt编写导航按钮

    千次阅读 2017-12-24 12:09:55
    做各种各样的界面的时候,经常需要做一排按钮用于切换到对应界面,俗称导航按钮或者导航菜单,参照过各种各样的主界面导航布局,特意编写导航按钮自定义控件,结合各种情况,继承自QPushButton。已集成在QUC自定义...

    做各种各样的界面的时候,经常需要做一排按钮用于切换到对应界面,俗称导航按钮或者导航菜单,参照过各种各样的主界面导航布局,特意编写导航按钮自定义控件,结合各种情况,继承自QPushButton。已集成在QUC自定义控件中。

     

    /**
     * 导航按钮控件 作者:feiyangqingyun(QQ:517216493) 2017-12-19
     * 1:可设置文字的左侧+右侧+顶部+底部间隔
     * 2:可设置文字对齐方式
     * 3:可设置显示倒三角/倒三角边长/倒三角位置/倒三角颜色
     * 4:可设置显示图标/图标间隔/图标尺寸/正常状态图标/悬停状态图标/选中状态图标
     * 5:可设置显示边框线条/线条宽度/线条间隔/线条位置/线条颜色
     * 6:可设置正常背景颜色/悬停背景颜色/选中背景颜色
     * 7:可设置正常文字颜色/悬停文字颜色/选中文字颜色
     * 8:可设置背景颜色为画刷颜色
     */


     

     

     

    本人有代码洁癖症,写代码处处讲究对称完美。如下图所示。

    主要代码如下:

     

    void NavButton::paintEvent(QPaintEvent *)
    {
        //绘制准备工作,启用反锯齿
        QPainter painter(this);
        painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);
    
        //绘制背景
        drawBg(&painter);
        //绘制文字
        drawText(&painter);
        //绘制图标
        drawIcon(&painter);
        //绘制边框线条
        drawLine(&painter);
        //绘制右侧倒三角
        drawTriangle(&painter);
    }
    
    void NavButton::drawBg(QPainter *painter)
    {
        painter->save();
        painter->setPen(Qt::NoPen);
    
        int width = this->width();
        int height = this->height();
    
        QRect bgRect;
        if (linePosition == LinePosition_Left) {
            bgRect = QRect(lineSpace, 0, width - lineSpace, height);
        } else if (linePosition == LinePosition_Right) {
            bgRect = QRect(0, 0, width - lineSpace, height);
        } else if (linePosition == LinePosition_Top) {
            bgRect = QRect(0, lineSpace, width, height - lineSpace);
        } else if (linePosition == LinePosition_Bottom) {
            bgRect = QRect(0, 0, width, height - lineSpace);
        }
    
        //如果画刷存在则取画刷
        QBrush bgBrush;
        if (isChecked()) {
            bgBrush = checkBgBrush;
        } else if (hover) {
            bgBrush = hoverBgBrush;
        } else {
            bgBrush = normalBgBrush;
        }
    
        if (bgBrush != Qt::NoBrush) {
            painter->setBrush(bgBrush);
        } else {
            //根据当前状态选择对应颜色
            QColor bgColor;
            if (isChecked()) {
                bgColor = checkBgColor;
            } else if (hover) {
                bgColor = hoverBgColor;
            } else {
                bgColor = normalBgColor;
            }
    
            painter->setBrush(bgColor);
        }
    
        painter->drawRect(bgRect);
    
        painter->restore();
    }
    
    void NavButton::drawText(QPainter *painter)
    {
        painter->save();
        painter->setBrush(Qt::NoBrush);
    
        //根据当前状态选择对应颜色
        QColor textColor;
        if (isChecked()) {
            textColor = checkTextColor;
        } else if (hover) {
            textColor = hoverTextColor;
        } else {
            textColor = normalTextColor;
        }
    
        QRect textRect = QRect(paddingLeft, paddingTop, width() - paddingLeft - paddingRight, height() - paddingTop - paddingBottom);
        painter->setPen(textColor);
        painter->drawText(textRect, textAlign | Qt::AlignVCenter, text());
    
        painter->restore();
    }
    
    void NavButton::drawIcon(QPainter *painter)
    {
        if (!showIcon) {
            return;
        }
    
        painter->save();
    
        QPixmap pix;
        if (isChecked()) {
            pix = iconCheck;
        } else if (hover) {
            pix = iconHover;
        } else {
            pix = iconNormal;
        }
    
        if (!pix.isNull()) {
            //等比例平滑缩放图标
            pix = pix.scaled(iconSize, Qt::KeepAspectRatio, Qt::SmoothTransformation);
            painter->drawPixmap(iconSpace, (height() - iconSize.height()) / 2, pix);
        }
    
        painter->restore();
    }
    
    void NavButton::drawLine(QPainter *painter)
    {
        if (!showLine) {
            return;
        }
    
        if (!isChecked()) {
            return;
        }
    
        painter->save();
    
        QPen pen;
        pen.setWidth(lineWidth);
        pen.setColor(lineColor);
        painter->setPen(pen);
    
        //根据线条位置设置线条坐标
        QPoint pointStart, pointEnd;
        if (linePosition == LinePosition_Left) {
            pointStart = QPoint(0, 0);
            pointEnd = QPoint(0, height());
        } else if (linePosition == LinePosition_Right) {
            pointStart = QPoint(width(), 0);
            pointEnd = QPoint(width(), height());
        } else if (linePosition == LinePosition_Top) {
            pointStart = QPoint(0, 0);
            pointEnd = QPoint(width(), 0);
        } else if (linePosition == LinePosition_Bottom) {
            pointStart = QPoint(0, height());
            pointEnd = QPoint(width(), height());
        }
    
        painter->drawLine(pointStart, pointEnd);
    
        painter->restore();
    }
    
    void NavButton::drawTriangle(QPainter *painter)
    {
        if (!showTriangle) {
            return;
        }
    
        //选中或者悬停显示
        if (!hover && !isChecked()) {
            return;
        }
    
        painter->save();
        painter->setPen(Qt::NoPen);
        painter->setBrush(triangleColor);
    
        //绘制在右侧中间,根据设定的倒三角的边长设定三个点位置
        int width = this->width();
        int height = this->height();
        int midWidth = width / 2;
        int midHeight = height / 2;
    
        QPolygon pts;
        if (trianglePosition == TrianglePosition_Left) {
            pts.setPoints(3, triangleLen, midHeight, 0, midHeight - triangleLen, 0, midHeight + triangleLen);
        } else if (trianglePosition == TrianglePosition_Right) {
            pts.setPoints(3, width - triangleLen, midHeight, width, midHeight - triangleLen, width, midHeight + triangleLen);
        } else if (trianglePosition == TrianglePosition_Top) {
            pts.setPoints(3, midWidth, triangleLen, midWidth - triangleLen, 0, midWidth + triangleLen, 0);
        } else if (trianglePosition == TrianglePosition_Bottom) {
            pts.setPoints(3, midWidth, height - triangleLen, midWidth - triangleLen, height, midWidth + triangleLen, height);
        }
    
        painter->drawPolygon(pts);
    
        painter->restore();
    }

     

     

     

     

     

    展开全文
  • Qt编写阴影按钮

    2020-11-24 17:11:17
    目录Qt编写阴影按钮阴影效果:应用:1. 编写头文件2. 编写实现文件 Qt编写阴影按钮 本文主要介绍如何利用QGraphicsDropShadowEffect类实现带阴影的按钮 阴影效果: 阴影按钮的阴影效果由QGraphicsDropShadowEffect类...

    Qt编写阴影按钮

    本文主要介绍如何利用QGraphicsDropShadowEffect类实现带阴影的按钮

    阴影效果:

    阴影按钮的阴影效果由QGraphicsDropShadowEffect类提供,下面是该类的介绍:

    The QGraphicsDropShadowEffect class provides a drop shadow effect.
    A drop shadow effect renders the source with a drop shadow. The color of the drop shadow can be modified using the setColor() function. The drop shadow offset can be modified using the setOffset() function and the blur radius of the drop shadow can be changed with the setBlurRadius() function.
    By default, the drop shadow is a semi-transparent dark gray (QColor(63, 63, 63, 180)) shadow, blurred with a radius of 1 at an offset of 8 pixels towards the lower right. The drop shadow offset is specified in device coordinates.
    效果

    应用:

    1. 编写头文件

    #ifndef SHADOWBUTTON_H
    #define SHADOWBUTTON_H
    #include <QPointer>
    
    class ShadowButton : public QWidget
    {
        Q_OBJECT
    public:
        explicit ShadowButton(QWidget *parent = nullptr);
        void setStyleSheet(const QString& styleSheet);
        void setText(const QString& text);
        void setShadowEffect(const QColor &color, const QPointF &offs = {0, 5},  qreal blurRadius = 20);
        QPointer<QPushButton> button();
    
    Q_SIGNALS:
        void pressed();
        void released();
        void clicked(bool checked = false);
        void toggled(bool checked);
    
    protected:
        void paintEvent(QPaintEvent *e) override;
    
    private:
        void setCenterWidget(QWidget* widget);
        QPointer<QPushButton> _btn;
    };
    
    #endif // SHADOWBUTTON_H
    

    阴影按钮并没有继承QPushButton,而是持有了一个按钮指针,目的是降低耦合,便于注入或魔改成其他类型的控件,当然也可以直接继承QPushButton或QAbstractButton

    2. 编写实现文件

    #include "ShadowButton.h"
    #include <QPainter>
    #include <QStyleOption>
    #include <QHBoxLayout>
    
    #define CHECK_NULL(OBJ) if (!(OBJ)){return;}
    
    ShadowButton::ShadowButton(QWidget *parent) :
        QWidget(parent)
    {
        setWindowFlags(Qt::FramelessWindowHint);
        setAttribute(Qt::WA_TranslucentBackground);
    
        _btn = new QPushButton(this);
        _btn->setFocusPolicy(Qt::NoFocus);
        setCenterWidget(_btn);
        setShadowEffect(QColor(130, 73, 1, 51), {0, 5}, 40); //默认效果
    
        connect(_btn, &QPushButton::clicked, this, &ShadowButton::clicked);
        connect(_btn, &QPushButton::toggled, this, &ShadowButton::toggled);
        connect(_btn, &QPushButton::pressed, this, &ShadowButton::pressed);
        connect(_btn, &QPushButton::released, this, &ShadowButton::released);
    }
    
    void ShadowButton::paintEvent(QPaintEvent *e)
    {
        Q_UNUSED(e)
        QPainter painter(this);
        painter.setRenderHint(QPainter::Antialiasing, true);
    }
    
    void ShadowButton::setCenterWidget(QWidget* widget)
    {
        auto hMainLayout = new QHBoxLayout(this);
    
        hMainLayout->addWidget(widget);
        hMainLayout->setSpacing(0);
    }
    
    void ShadowButton::setStyleSheet(const QString& styleSheet)
    {
        CHECK_NULL(_btn)
        _btn->setStyleSheet(styleSheet);
    }
    
    QPointer<QPushButton> ShadowButton::button()
    {
        return _btn;
    }
    
    void ShadowButton::setText(const QString& text)
    {
        CHECK_NULL(_btn)
        _btn->setText(text);
    }
    
    void ShadowButton::setShadowEffect(const QColor &color, const QPointF &offs, qreal blurRadius)
    {
    	CHECK_NULL(_btn)
    	auto shadowEffect = new QGraphicsDropShadowEffect(_btn);
    	
    	shadowEffect->setOffset(offs);
    	shadowEffect->setColor(color);
    	shadowEffect->setBlurRadius(blurRadius);
    	
    	_btn->setGraphicsEffect(shadowEffect);
    }
    

    至此一个阴影按钮就实现了,该类将内部持有的按钮的信号全部转发了出去,便于使用者处理。当然也可以仿照此代码为其他类型的控件增加阴影效果

    展开全文
  • Qt自定义图片按钮并设置方向

    千次阅读 2017-09-24 11:47:25
    Qt自定义图片按钮,并设置方向的简短代码
  • 比如在group中来增加两个按钮,实现组内成员的增减,效果如下: 点击“+”,组内增加指定类型的成员,点击“-”,组内删除选中的成员。 问题 需要解决以下问题: 把按钮加进去 给多组“+”/"-"按钮绑定信号槽 改变...
  • Qt中实现按钮的图片在左,文字在右,主要有两种方法,如下: 方法一 : 设置按钮内部布局 ui->pushButton->setIcon(QIcon(":/pic/share.png")); ui->pushButton->setLayoutDirection(Qt::LeftToRight)...
  • 添加一个QFrame的对话框 设置按钮的样式表 QPushButton#pdf2file { border:0px; background-image:url(:/images/btn-menu-02.png); font:16px "微软雅黑"; color:rgb(255,255,255); text-...
  • 添加按钮的图标或者背景的时候可以通过调用如下所示的接口函数。 void setIcon(const QIcon &icon) 虽然Qt已经提供了非常完美的接口函数,但是总有一些情况是它无法满足的:比如在使用一些图片进行缩放的时候...
  • text属性保存按钮上显示的文字,如果按钮未设置文字则为空字符串。如果文字中包含有与符号(’&’),则该按钮会自动设置一个快捷键,快捷键就是’&'后第一个字符,显示时会在该字符下加下划线。例如将...
  • Qt buttonBox按钮

    万次阅读 2012-12-17 18:30:17
    新建buttonboxGUI Application项目。布局如图: ...最下边:textEdit 用来当按下“确定” 按钮时, 显示lineEdit输入的文字; 或按下“取消” 时清空textEdit控件中内容。  实现:  1. 头
  • 问题描述   我们利用代码直接生成MainWindow下的右键菜单栏(如何生成右键菜单?),但是发现由于textBrowser控件定义了自有...setContextMenuPolicy函数的参数为枚举类型Qt::ContextMenuPolicy,qt帮助文档中有相应介
  • Qt 对话框里添加确定取消按钮

    万次阅读 2014-08-12 16:15:24
    有时候需要弹出一个小对话框,不... suffix = box->currentText(); ImageConvert img; img.ConvertImages( files, dstpath.toStdString(), suffix.toStdString()); } 点击OK和NO按钮会有响应。
  • 接上一个关于QStackedWidget的博文,将QStackedWidget中的三个按钮替换成QTableWidget,并实现单元格里面添加按钮和进度条。 实现功能为:单元格里的按钮控制进度条的加减; 这里多次运用Qt经典的信号槽功能,希望...
  • QT常用按钮介绍

    千次阅读 2017-07-26 17:04:12
    常用按钮 1、QPushButton 推动按钮 典型应用:确定(OK)、应用(Apply)、撤消(Cancel)、关闭(Close)、是(Yes)、否(No)和帮助(Help)等 该按钮是矩形的,并且通常显示一个文本标签来描述它的操作。标签中有下划线的...
  • QT 环境下为按钮菜单项添加快捷键

    千次阅读 2009-10-25 02:30:00
    方法很简单, 文件前加&即可. 比如&File, 那么快捷键就是ALT+F, Fi&le对应的快捷键就是ALT+I. pushButton的文本是Text属性菜单项的文本是Title属性 刚用QT, 记录一下
  • QT个性化按钮封装类

    2018-08-09 11:27:03
    本封装类作者:feiyangqingyun(QQ:517216493),自己只是简单改动,添加了click信号,以用来使用该控件。 原作者控件封装类下载地址:https://download.csdn.net/download/zhangxiaoyu_sy/10178335 1、该类的使用:...
  • QT 圆形窗体,圆形按钮

    千次阅读 2018-04-12 17:44:04
    QT 圆形窗体,圆形按钮 一、简要说明 1、在窗体上画一个圆形(如果添加上点击等事件,这个圆形就相当于一个控件——圆形PushButton) 2、无边框 3、窗体透明化,窗体上的控件不透明 4、实现无边框拖动 代码打包...
  • 在做数据展示时,为了偷懒少布局些界面元素,结果后面发现某部分功能无法很容易的实现,然后想到了Qt提供了控件自绘功能。具体实现效果为:表头的双击弹出输入框改变表头名称,点击按钮退出应用,也可以自定义为...
  • QT添加登陆界面(QT系列2)

    千次阅读 2020-04-29 09:40:02
    学习如何给QT增加一个登录界面,给自己的软件加一个需要密码的界面,或者加一个获得信息的界面,可以让自己的软件更加的好用。
  • QT的自动滚动区QScrollArea的用法,图文详解_野生猿-群号1025127672-CSDN博客_qscrollarea​blog.csdn.net这个的代码最后一段是缺少的.需要加几行. scrollArea->setWidget(pWgt); setCentralWidget(scrollArea);...
  • 一、按钮一按下,就会在text文本框中显示指定内容 1、ui界面布局 2、mydialog.h中添加槽函数 public slots: void myDynamicOutput(); 3、(1)mydialog.cpp中的构造函数中加入连接函数connect(ui->pushButton,...
  • pythonQT button按钮的状态设置

    千次阅读 2020-01-30 15:11:21
    pythonQT button按钮的状态设置 一、先来认识一下按钮的几种状态: #设置椭圆形按钮 border-radius:40.45px #设置图片按钮 border-image:url() # 设置鼠标悬停后的按钮 border-image:url() #设置鼠标点击后改变按钮...
  • Qt自定义委托之按钮控件

    千次阅读 2017-06-02 16:01:27
    Qt中显示数据有个很好的控件QTableWidget; 功能很强大,可以排序,可以在单元格添加控件(table-&gt;setCellWidget(0,0,pWidget);) 不过有时候还是不能满足需要。我自己就遇到了一个需求:显示的时候除了进度条...
  • 8、添加按钮: .cpp #include "showdialog.h" #include "ui_showdialog.h" // 添加文字类 #include // 添加按钮类 #include ShowDialog::ShowDialog(QWidget *parent) : QDialog(parent), ui(new Ui::...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,395
精华内容 3,758
关键字:

qt添加text按钮