Qt控件:按钮类

一、Push Button

1、属性列表

2、代码示例

创建一个按钮设置一个坦克图标占满按钮

cpp 复制代码
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //创建图标
    QIcon icon(":/Tank.png");
    //设置图标
    ui->Tank->setIcon(icon);
    //调节图标大小
    ui->Tank->setIconSize(QSize(50,50));
    //设置按钮大小
    ui->Tank->setFixedSize(QSize(50,50));
}

运行结果:

3、简单运用

创建4个按键控制坦克上下左右移动

cpp 复制代码
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //创建图标
    QIcon icon(":/Tank.png");
    //设置图标
    ui->Tank->setIcon(icon);
    //调节图标大小
    ui->Tank->setIconSize(QSize(50,50));
    //设置按钮大小
    ui->Tank->setFixedSize(QSize(50,50));

    //设置按钮图标
    ui->pushButton_up->setIcon(QIcon(":/up.png"));
    ui->pushButton_down->setIcon(QIcon(":/down.png"));
    ui->pushButton_left->setIcon(QIcon(":/left.png"));
    ui->pushButton_right->setIcon(QIcon(":/right.png"));

    //设置图标大小
    ui->pushButton_up->setIconSize(QSize(20,20));
    ui->pushButton_down->setIconSize(QSize(20,20));
    ui->pushButton_left->setIconSize(QSize(20,20));
    ui->pushButton_right->setIconSize(QSize(20,20));

    //设置快捷键
    ui->pushButton_up->setShortcut(QKeySequence("w"));
    ui->pushButton_down->setShortcut(QKeySequence("s"));
    ui->pushButton_left->setShortcut(QKeySequence("a"));
    ui->pushButton_right->setShortcut(QKeySequence("d"));
}
cpp 复制代码
void Widget::on_pushButton_up_clicked()
{
    QRect rect=ui->Tank->geometry();
    ui->Tank->setGeometry(rect.x(),rect.y()-5,rect.width(),rect.height());
    qDebug()<<"up";
}


void Widget::on_pushButton_left_clicked()
{
    QRect rect=ui->Tank->geometry();
    ui->Tank->setGeometry(rect.x()-5,rect.y(),rect.width(),rect.height());
    qDebug()<<"left";
}


void Widget::on_pushButton_right_clicked()
{
    QRect rect=ui->Tank->geometry();
    ui->Tank->setGeometry(rect.x()+5,rect.y(),rect.width(),rect.height());
    qDebug()<<"right";
}


void Widget::on_pushButton_down_clicked()
{
    QRect rect=ui->Tank->geometry();
    ui->Tank->setGeometry(rect.x(),rect.y()+5,rect.width(),rect.height());
    qDebug()<<"down";
}

二、Radio Buttion

1、属性列表

2、代码示例

cpp 复制代码
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //禁用其他选项
    //触发点击事件但是没有反应
    // ui->radioButton_others->setCheckable(false);
    //更加彻底的禁用,不会触发点击事件
    ui->radioButton_others->setEnabled(false);

}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_radioButton_male_clicked()
{
    ui->label->setText("您的性别:男");
}


void Widget::on_radioButton_female_clicked()
{
    ui->label->setText("您的性别:女");
}


void Widget::on_radioButton_others_clicked()
{
    ui->label->setText("您的性别:其他");
}

三、Check Box

1、属性列表

2、代码示例

cpp 复制代码
#include "widget.h"
#include "ui_widget.h"
#include "QString"
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}




void Widget::on_pushButton_clicked()
{
    QString result;
    if(ui->checkBox_1->isChecked())
        result+=" 鸡腿堡 ";
    if(ui->checkBox_2->isChecked())
        result+=" 牛肉堡 ";
    if(ui->checkBox_3->isChecked())
        result+=" 鸡肉卷 ";
    result+=".";
    ui->label_2->setText(result);
}
相关推荐
浪子明X5 小时前
十六位账本怎样发现传输差错:Internet Checksum 生活类比
开发语言
Quz6 小时前
QML StackView:实现卡片堆叠效果
qt
Quz6 小时前
QML Drawer 抽屉导航详解
qt
xiangyun617 小时前
【408数据结构 08】队列:循环队列判空判满,408年年考,一次讲清
c语言·开发语言·数据结构·c++·算法
xiangyun618 小时前
【408数据结构 06】双链表、循环链表、静态链表
c语言·开发语言·数据结构·c++·算法
白远山9 小时前
家政服务家政社区派单实战:调度系统架构设计与实现指南
java·开发语言·小程序·架构·需求分析
DevRay10 小时前
Java 21虚拟线程深度实战:告别线程池焦虑,百万并发吞吐量直接翻倍(原理+代码+避坑)
java·开发语言
free-elcmacom10 小时前
C++学习<1>程序分区
开发语言·c++
醉颜凉10 小时前
Java 必看:如何彻底避免 HashMap 多线程死循环问题?
java·开发语言
默 语10 小时前
Java新手入门:从零开始安装JDK并配置环境变量
java·开发语言·python·mysql·group by·1024程序员节·数据去重