精华内容
下载资源
问答
  • 通过点击Qt中的pushbutton,可以弹出菜单,菜单选项是QAction,可以连接槽完成相应功能。Qt工程是基于Qt5.10.1 32位,Qt Creator 4.5.1(Community)
  • pushButton加图片

    2021-06-24 11:36:33
    pushButton加图片 QIcon icon; icon.addFile(QString::fromUtf8(":/new/prefix1/Hand.png"), QSize(), QIcon::Normal, QIcon::Off); // 加入fromUft8的目的是防止文件名有乱码 ui->pushButton->setIcon(icon...

    给pushButton加图片

    QIcon icon;
    icon.addFile(QString::fromUtf8(":/new/prefix1/Hand.png"), QSize(), QIcon::Normal, QIcon::Off); // 加入fromUft8的目的是防止文件名有乱码
    ui->pushButton->setIcon(icon);
    ui->pushButton->setIconSize(QSize(50, 50));
    
    展开全文
  • minimalcomps pushbutton

    2012-09-14 14:02:34
    var panel:Panel=new Panel(this,10,10); panel.width=150; var b:PushButton=new PushButton(panel,10,10); b.label="@mengtianwxs"; b.width=100;


    var panel:Panel=new Panel(this,10,10);
    panel.width=150;
    var b:PushButton=new PushButton(panel,10,10);
    b.label="@mengtianwxs";
    b.width=100;




    展开全文
  • Qt 自定义PushButton

    千次阅读 2015-10-02 21:39:11
    并实现normal、hover、pressed效果,PushButton大小默认为传入图片大小。 源码:cpp #include "pushbutton.h" #include #include #include #include PushButton::PushButton(QString normal, QString hover,...

    功能:鼠标弹起并在按键区域内时,按键响应。并实现normal、hover、pressed效果,PushButton大小默认为传入图片大小。

    源码:cpp

    #include "pushbutton.h"
    
    #include <QPainter>
    #include <QMouseEvent>
    #include <QFontMetrics>
    #include <QLabel>
    
    PushButton::PushButton(QString normal, QString hover, QString pressed, QWidget *parent) :
        QPushButton(parent)
    {
        buttonState = Normal;
    
        normalPixmap.load(normal);
        hoverPixmap.load(hover);
        pressPixmap.load(pressed);
    
        this->setFixedSize(normalPixmap.size());
    
        this->setContentsMargins(0, 0, 0, 0);
    }
    
    PushButton::PushButton(QString background, QWidget *parent) :
        QPushButton(parent)
    {
        buttonState = Normal;
    
        normalPixmap.load(background);
        hoverPixmap.load(background);
        pressPixmap.load(background);
    
        this->setFixedSize(normalPixmap.size());
    
        this->setContentsMargins(0, 0, 0, 0);
    }
    
    PushButton::~PushButton()
    {
    
    }
    
    void PushButton::paintEvent(QPaintEvent *)
    {
        QPainter painter(this);
    
        switch(buttonState)
        {
        case Normal:
            painter.drawPixmap(this->rect(), normalPixmap);
            break;
        case Hover:
            painter.drawPixmap(this->rect(), hoverPixmap);
            break;
        case Pressed:
            painter.drawPixmap(this->rect(), pressPixmap);
        }
    
        painter.drawText(this->rect(), Qt::AlignCenter, this->text());
    }
    
    void PushButton::enterEvent(QEvent *)
    {
        buttonState = Hover;
        update();
    }
    
    void PushButton::leaveEvent(QEvent *)
    {
        buttonState = Normal;
        update();
    }
    
    void PushButton::mousePressEvent(QMouseEvent *e)
    {
        if(e->button() == Qt::LeftButton)
        {
            buttonState = Pressed;
            update();
        }
    }
    
    bool PushButton::isOnPushButton(const QPoint &point, const PushButton *pushButton)
    {
        if(point.x() < 0 || point.x() > pushButton->width() ||
                point.y() < 0 || point.y() > pushButton->height())
        {
            return false;
        }
        return true;
    }
    
    void PushButton::mouseReleaseEvent(QMouseEvent *e)
    {
        if(e->button() == Qt::LeftButton)
        {
            //判断鼠标抬起时是否在PushButton之上
            if(isOnPushButton(e->pos(), this))
            {
                emit clicked();
            }
    
            buttonState = Hover;
            update();
        }
    }
    

    .h文件

    #ifndef PUSHBUTTON_H
    #define PUSHBUTTON_H
    #include <QPushButton>
    
    #define Normal 0
    #define Hover 1
    #define Pressed 2
    class QPixmap;
    
    class PushButton : public QPushButton
    {
        //Q_OBJECT
    public:
        explicit PushButton(QString normal, QString hover, QString pressed, QWidget *parent=0);
        explicit PushButton(QString background, QWidget *parent=0);
        ~PushButton();
        bool isOnPushButton(const QPoint &point, const PushButton *pushButton);
    
    protected:
        void paintEvent(QPaintEvent *);
        void enterEvent(QEvent *);
        void leaveEvent(QEvent *);
        void mousePressEvent(QMouseEvent *e);
        void mouseReleaseEvent(QMouseEvent *e);
        //void loadPixmap(QString path);
    
    private:
        char buttonState;
        QPixmap normalPixmap;
        QPixmap hoverPixmap;
        QPixmap pressPixmap;
    };
    
    #endif // PUSHBUTTON_H
    

    效果:





    eg:

    PushButton *xxx = new PushButton(":/image/contact.png",":/image/cut-the-rope.png",":/image/drop.png",this);

    以上 留存...

    出处:Qt 自定义PushButton





    展开全文
  • pushbutton 移动端弹出列表选择框 移动端从下往上推动画效果端弹出列表选择框,适应所有主流移动端机型,支持Node引入
  • 文章目录一.PushButton 基础PushButton介绍给PushButton添加快捷键PushButton构造函数PushButton添加/更改(图标,文本,父类)PushButton控件大小,位置PushButton 槽——信号响应二.PushButton 进阶PushButton ...


    一.PushButton 基础

    PushButton介绍

    头文件:#include<QPushButton>

    qmake:QT+=widgets

    继承于:QAbstractButton(所有按钮的抽象基类)

    继承给:QCommandLinkBut​​ton(支持2行文字显示、缺省带箭头图标,内部功能与PushButton类似的按钮)

    PushButton按钮样式如图:
    在这里插入图片描述
    可以在Qt Designer(ui界面) 中直接拖动生成控件,或者使用代码生成:

    QPushButton * btn = new QPushBuuton("PushBuuton",this);
    

    给PushButton添加快捷键

    如果我们想为按钮添加快捷键,只需要在按钮名字前面加&即可,这样,alt+p将作为该按钮的快捷键。

    QPushButton * btn = new QPushBuuton("&PushBuuton",this);
    

    PushButton构造函数

    QPushBuuton有三种构造函数,它们分别是:

    指定一个父类

    QPushButton(QWidget *parent = nullptr)
    

    指定一个文本,一个父类

    QPushButton(const QString &text, QWidget *parent = nullptr)
    

    指定一个图标,一个文本,一个父类

    QPushButton(const QIcon &icon, const QString &text, QWidget *parent = nullptr)
    

    如图,你可以生成如下三种样式的按钮:
    在这里插入图片描述

    如何设置图标大小呢,使用该函数即可:

    setIconSize(const QSize &size);
    

    对应的查看该图标的大小,可使用该函数:

    IconSize();
    

    PushButton添加/更改(图标,文本,父类)

    如上图所示,可以根据自己的寻求进行选择对应的构造函数,相应的,也可以在ui界面对按钮进行图标,文字,父类的指定。
    例如图标在此添加(点击按钮,右下角属性)。
    在这里插入图片描述
    而有无文本,只需要双击按钮就可以设置。

    那么如果想在程序运行过程中改变属性呢,我们可以利用下面三个函数,分别设置父类,图标,和文本。

    setParent();
    
    setIcon();
    
    setText();
    

    PushButton控件大小,位置

    ui界面直接拖进来的按钮可以可以在ui界面自行改变大小,位置。

    代码默认生成的按钮在窗口左上角初始位置,且大小默认,如何通过代码指定大小,位置呢。

    QWidget提供了成员函数用来设置窗口组件的位置大小信息,这其中包括PushBuuton。

    下面两个函数用于设置窗口宽度、高度(用户区的宽度和高度)

    void resize(int w, int h)
    
    void resize(const QSize&)
    

    下面两个函数用于设置按钮坐标位置(从窗口左上角的移动宽度和高度)

    void move(int w, int h)
    
    void move(const QPoint&)
    

    PushButton 槽——信号响应

    两种情况,第一种在ui界面创建的按钮,可直接右击按钮,选择转到槽,选择对应的信号数,即可自动生成相应的槽函数。
    在这里插入图片描述
    若是第二种,使用代码创建的按钮,我们就需要自己写槽函数。

    例如,现在有一个按钮叫btn。
    在头文件(类中添加)中声明槽函数:

    private slots: //表示槽函数
        void on_btn_clicked();
    

    在对应cpp文件中对该槽函数进行业务逻辑的编写(可直接右击声明的槽函数,选择Refactor,在XXXXXX.cpp添加定义)。
    在这里插入图片描述
    然后进行信号和槽函数的绑定:

    connect(ui->btn,SIGNAL(clicked(bool)),this,SLOT(on_btn_clicked()));
    

    第一种方式添加槽函数,会自动绑定,只不过connect的内容不会在cpp文件中生成。

    一般情况下,我们只需要用到QAbstractButton列表的几个信号:

    信号 描述
    clicked 当鼠标左键被按下然后释放时,或者快捷键被释放时触发该信号
    clicked(bool)] 当按钮被第一次按下然后释放时发出信号,并将当前状态传递给外界
    pressed 当鼠标指针在按钮上并按下左键时触发该信号
    released 当鼠标左键被释放时触发该信号
    toggled(bool) 按钮的状态发生变化时发出信号,并将当前状态传递给外界

    二.PushButton 进阶

    PushButton 设置可选/不可选

    ui界面没有该属性,可通过代码进行操作,true表示可选,false表示不可选,默认可选。

    setEnabled(bool);
    

    当参数为false是,按钮将是灰色的。
    在这里插入图片描述


    flat属性

    在这里插入图片描述

    该属性用于确认按钮边框是否凸起,如果为False则凸起,如果为True则边框与背景是平坦的。
    当将默认按钮的flat属性设置为True时,将看不到其按钮突起,效果如下:
    在这里插入图片描述
    该属性常用于扁平化设计,默认按钮表现不是很突出,使用样式表美化后,效果绝佳。
    在这里插入图片描述


    default属性

    该属性确认按钮是否为默认按钮,它的默认值是false,如果按钮被设置为默认按钮,当按下回车键(“Enter”键)时,此属性设置为True的按钮(即对话框的默认按钮)将自动被按下(执行此按键的clicked()事件)。

    注:该属性在父窗口为对话框时,生效,其他窗口设置该属性无意义。

    ui界面设置:
    在这里插入图片描述
    代码可以通过下面isDefault()和setDefault(bool)访问和设置按钮的default属性。


    autodefault属性

    该属性确认按钮是否为自动默认按钮,如果此属性设置为True,则按钮是自动默认按钮,在某些图形用户界面样式中,默认按钮的周围有一个额外的边框,最多3个像素或更多。

    注:该属性在父窗口为对话框时,生效,其他窗口设置该属性无意义。

    ui界面设置:
    在这里插入图片描述

    代码可以通过autoDefault() 、setAutoDefault(bool)来访问或设置按钮的atuoDefault属性。


    autodefault属性效果演示

    上面提到过无论是default和autodefault属性,在父窗口为对话框时,生效,其他窗口设置该属性无意义。
    下面我们一起来看一下(QT提供了一些现成的消息对话框,但是现在我们还不需要),我们右击项目,创建一个空对话框的类:
    在这里插入图片描述
    在这里插入图片描述
    在对话框类的 ui界面,我们拖入两个按钮,如果你细心的话可以看到它们的autodefault属性默认被选中,而在我们主窗口创建的按钮默认不被选中。
    在这里插入图片描述
    然后,我们在mian.cpp中显示这个对话框

        Dialog w;
        w.show();
    

    在这里插入图片描述
    当我们把两个按钮的autodefault属性都取消,效果如下:
    在这里插入图片描述


    继承属性

    在这里插入图片描述

    该类继承于QAbstractButton类的属性,在QT系统学习系列:1.1 QAbstractButton(所有按钮的抽象基类,学习按钮之前必看该篇)已经列出,有需要,可点击学习。


    关于PushButton 按钮的简单美化

    ui界面,我们可以右击按钮,选中改变样式表,关于按钮,常用的包括:

    border-image 自动适应图片
    color 字体颜色
    background-color 背景颜色
    border-color 边框色

    现在,我们先来为按钮添加一个背景色:

    在这里插入图片描述
    当我们点击ok时,发现我们的按钮并没有显示出我们想要的颜色,这是为什么呢?
    我们可以在Qt的官方文档找到答案,有兴趣,请点击我。
    在这里插入图片描述

    翻译过来就是:警告:如果仅在QPushButton上设置背景色,除非将border属性设置为某个值,否则背景可能不会出现。这是因为,默认情况下,QPushButton绘制一个原生边框,该边框与背景颜色完全重叠。

    我们现在给按钮一个border值(按钮边框宽度)。
    在这里插入图片描述
    当我们点击Apply,按钮变成我们想要的样子。

    设置按钮边框宽度不显示,是因为我们没有设置边框风格,默认的边框风格为none,我们将边框风格设置为slied(实线),便可以看到一条黑色的边线。
    在这里插入图片描述

    如果想把矩形按钮设计成有圆角的怎么办呢?
    使用border-radius:10px;
    在这里插入图片描述
    值越大,角越圆!

    关于按钮的简单美化就写到这里,其中还有一些内容并未列出,例如鼠标滑过如何,点击如何,因为关于样式表,本身就够写好几篇,在这之前,大家可以如果想初步了解,可以看一看这篇初学Qt不会样式表怎么办,打包好的Qt样式表一键生成送给你。,这篇文章将会带您初步了解Qt的样式表,并且为大家制作了一个简单的样式表一键生成,辅助学习。


    三.PushButton 高级

    PushButton 菜单

    PushButton按钮添加菜单与ToolButton,大致一样,可参考:QT系统学习系列:1.3 ToolButton(工具按钮)中的ToolButton添加菜单。

    自定义按钮

    暂无


    展开全文
  • Qt pushbutton设置icon和文字

    千次阅读 多人点赞 2019-11-12 10:04:08
    1.使用系统自带api ...pushButton->setIconSize(QSize(32,32)); ui->pushButton->setIcon(QIcon(":/images/Setting.png")); ui->pushButton->setText(QString::fromLocal8Bit("系统设置"));...
  • ui.pushButton->setFocus(); //设置默认焦点 ui.pushButton->setShortcut( QKeySequence::InsertParagraphSeparator ); //设置快捷键为键盘的“回车”键 ui.pushButton->setShortcut(Qt::Key_Enter); //...
  • PyQt5 pushbutton 学习

    2020-03-30 21:12:27
    # pushbutton继承自QAbstractButton,但启动AutoRepeat之后,会按照一定周期自动发出pressed、released、clicked这3个信号,很多时候需要按住按钮来重复执行一个功能,松开按钮就停止执行,就可以通过如下代码实现 ...
  • PyQt5, PushButton

    2018-08-09 20:08:25
    Pushbutton = QPushButton(label) 如果不需要label字符串可以省略,或者设置为在按钮顶部显示的文本。 方法 按钮上显示的标签可以在构建小部件后更改: pushbutton.setText(label) 默认情况下...
  • Qt pushbutton视觉问题

    2015-09-23 06:38:17
    我建立了一个pushbutton,在上面添加了图片,如何让按钮点击时有一个按下的视觉效果?
  • qt01 lineEdit pushButton

    2019-05-21 15:06:00
    1. void udp_server::on_lineEdit_textEdited() ...pushButton->setEnabled(ui->lineEdit->hasAcceptableInput()); }2. 撤销ctrl+z3.信号槽函数定义 signals: void readyRead(); private slots:...
  • pushbutton.cpp #include "pushbutton.h" #include QPainter> #include QMouseEvent> #include QFontMetrics> #include QLabel> PushButton::PushButton(QString normal, QString hover, QString pressed, QWid
  • Qt pushbutton模拟键盘事件

    千次阅读 2018-07-02 11:42:33
    举例:添加pushbutton并设置不获取焦点:ui-&gt;pushButton_key_right-&gt;setFocusPolicy(Qt::NoFocus);在pushbutton事件中添加代码: QKeyEvent keyPress(QEvent::KeyPress, Qt::Key_Left, Qt::NoModifier...
  • 之前写了BXML的PushButton,实在是太简单了,都没有了Java该有的味道 所以再用Java代码写一遍,也打消以下那些虽然看过我的文章使用BXML会使源码泄露吗却又不肯停止担心的人的顾虑 立刻上代码 package buttons; ...
  • 智能家居自动化:GIRA PUSHBUTTON SENSOR 4,GIRA TASTSENSOR 4.pdf
  • 带Icon的自绘PushButton

    2012-11-14 17:09:03
    带Icon的自绘PushButton
  • QT5-pushbutton checked

    2020-07-10 09:16:21
    今天添加了一个pushbutton的checked槽函数, .cpp程序中添加了判断 if (checked==true) {...} 却怎么都没进去,后来测试发现,点击按钮,checked=false。真是有悖于一般常识。
  • pushbutton engine是一个很好的flash游戏开发引擎,包含了常用的游戏组件,让设计师更注重游戏性的开发
  • SAP 选择屏幕中定义按钮 pushbutton
  • 帮助你快速了解PushButton的结构,尽快熟练应用
  • 本博客主要总结Qt中设置pushButton按钮的背景色和字体颜色,具体的内容如所述:   1.1设置背景色可以用函数setStyleSheet("background: rgb(0,255,0));   1.2设置字体颜色用函数setStyleSheet("...
  • % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a futur
  • 带Icon的自绘PushButton示例
  • 原创pushbutton应用显示多行文字及数学公式-003v2.rar 因為修改太多~重新發帖~ 舊帖請至 https://www.ilovematlab.cn/thread-86806-1-4.html 查看 該函數應該已經很完善 如果有出現問題可至下方網址的日誌回報 ...
  • 你好这是一个小例子,我尝试了很长时间将值从 Gui 的 Pushbutton 传递到输出函数,以便我可以从工作区访问它。 如果有人需要一些基本的 gui 开发技巧,请在此处发布。 例如:val = selection_gui;

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,470
精华内容 8,988
关键字:

pushbutton