47-Qt控件详解:Buttons Containers1

一 QPushButton (命令按钮)

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QPushButton>//引入QPushButton类对应的头文件

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
private:
    //声明两个QPushButton对象
    QPushButton *pb1,*pb2;

private slots:
    //声明对象pb1,pb2的槽函数
    void pushbutton1_clicked();
    void pushbutton2_clicked();

};
#endif // MAINWINDOW_H



#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{

    //setGeometry()改变窗口的大小(pos()size())
    this->setGeometry(300,150,500,300);
    //QString::fromLocal8Bit("命令按钮1")
    //实例化两个命令按钮对象
    pb1 = new QPushButton("命令按钮1",this);
    pb2 = new QPushButton("命令按钮2",this);

    //设置两个QPushButton对象的坐标位置
    pb1->setGeometry(20,20,150,50);

    pb2->setGeometry(20,90,150,50);

    //与信号槽函数连接
    connect(pb1,SIGNAL(clicked()),this,SLOT(pushbutton1_clicked()));
    connect(pb2,SIGNAL(clicked()),this,SLOT(pushbutton2_clicked()));
    
    

}

MainWindow::~MainWindow()
{

}


//声明对象pb1,pb2的槽函数
void MainWindow::pushbutton1_clicked()
{
    //
    this->setStyleSheet("QMainWindow{background-color:rgba(255,255,0,100%);}");
}

void MainWindow::pushbutton2_clicked()
{

    this->setStyleSheet("QMainWindow{background-color:rgba(255,0,0,100%);}");
}

 

二 QToolButton (工具按钮) 

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QToolBar>//引入QToolBar类
#include <QToolButton>//引入QToolButton类
class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    //声明一个QToolButton对象和QToolBar对象

    QToolBar *tbar;
    QToolButton *tbutton;
};
#endif // MAINWINDOW_H


#include "mainwindow.h"
#include <QStyle>
#include <QApplication>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    //3.setGeometry()改变窗口的大小(pos()size())
    this->setGeometry(300,150,500,300);

    //4.将QToolBar对象进行实例化
    tbar = new QToolBar(this);
    tbar->setGeometry(20,20,200,50);

    //5.将QStyle类对象进行实例化,主要目的设置风格,图标是系统自带
    QStyle *sty = QApplication::style();
    QIcon ico = sty->standardIcon(QStyle::SP_TitleBarContextHelpButton);

    //6.将QToolButton对象进行实例化
    tbutton = new QToolButton();
    tbutton->setIcon(ico);
    //设置显示的文本
    tbutton->setText("系统帮助提示");

    //调用函数setToolButtonStyle()函数设置tbutton样式,
    //设置文本在图标下方
    tbutton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);

    //将tbutton添加到tbar里面
    tbar->addWidget(tbutton);

}
MainWindow::~MainWindow()
{
}

三 QRadioButton (单选按钮)  

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QRadioButton>


class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
private:
    //声明2个QRadioButton对象radb1;radb2;
    QRadioButton *radb1,*radb2;



};
#endif // MAINWINDOW_H


#include "mainwindow.h"
#include <QStyle>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    //3.setGeometry()改变窗口的大小(pos()size())
    this->setGeometry(300,150,500,300);

    //
    this->setStyleSheet("QMainWindow {background-color:rgba(255,0,0,100%);}");
    //将QRadioButton类的两个对象实例化
    radb1 = new QRadioButton(this);
    radb2 = new QRadioButton(this);

    //设置两个对象位置
    radb1->setGeometry(20,20,150,40);
    radb2->setGeometry(20,80,150,40);

    //设置两个单选按钮文本
    radb1->setText("选择按钮1");
    radb2->setText("选择按钮2");

    //设置命令按钮默认值checked

    radb1->setChecked(true);
    radb2->setChecked(false);

}

MainWindow::~MainWindow()
{
}

四 QCheckBox (复选框按钮)

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QCheckBox>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    //声明QCheckBox对象
    QCheckBox *cb;
private slots:
    //声明QCheckBox槽函数,在操作过程当中并且带参数传递,通过这个参数接收信号
    void checkboxstate(int);



};
#endif // MAINWINDOW_H



//.c

#include "mainwindow.h"
#include <QStyle>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    //3.setGeometry()改变窗口的大小(pos()size())
    this->setGeometry(300,150,500,300);

    //
    this->setStyleSheet("QMainWindow {background-color:rgba(255,0,0,100%);}");
    //将QRadioButton类的两个对象实例化
    radb1 = new QRadioButton(this);
    radb2 = new QRadioButton(this);

    //设置两个对象位置
    radb1->setGeometry(20,20,150,40);
    radb2->setGeometry(20,80,150,40);

    //设置两个单选按钮文本
    radb1->setText("选择按钮1");
    radb2->setText("选择按钮2");

    //设置命令按钮默认值checked

    radb1->setChecked(true);
    radb2->setChecked(false);

}

MainWindow::~MainWindow()
{
}

五 Command Link Button(命令链接按钮 )

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QCommandLinkButton>//

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
private:
    //声明一个QCommandLinkButton对象
    QCommandLinkButton *clb;
private slots:
    //声明槽函数使用鼠标点击clb之后触发
    void clbClicked();

};
#endif // MAINWINDOW_H


//.c


#include "mainwindow.h"
#include <QDesktopServices>//引入桌面服务
#include <QUrl>//引入URL

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{

    //3.setGeometry()改变窗口的大小(pos()size())
    this->setGeometry(300,150,500,300);

    this->setStyleSheet("QMainWindow {background-color:rgba(255,0,0,100%);}");

     //实例化
    clb =  new QCommandLinkButton("testclb","clicked testclb",this);

    clb->setGeometry(50,100,250,60);
    //连接槽函数
    connect(clb,SIGNAL(clicked()),this,SLOT(clbClicked()));
}

MainWindow::~MainWindow()
{
}

void MainWindow::clbClicked()
{
    //调用系统服务打开操作
    //https://www.sina.com.cn/
    //QDesktopServices::openUrl(QUrl("www.baidu.com"));
    QDesktopServices::openUrl(QUrl("https://www.sina.com.cn/"));

}

六 Dialog Button Box(按钮盒)

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
//QDialogButtonBox类主要用于在对话框中管理和布局标准按钮。
#include <QDialogButtonBox>
#include <QPushButton>


class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
private:
    //声明两个对象
    QDialogButtonBox *dbb;
    QPushButton *pb;
private slots:
    //声明槽函数
    void dbbpbClicked(QAbstractButton *);


};
#endif // MAINWINDOW_H


//.c

#include "mainwindow.h"
#include <QDebug>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    //3.setGeometry()改变窗口的大小(pos()size())
    this->setGeometry(0,0,800,600);

    dbb = new QDialogButtonBox(this);

    dbb->setGeometry(300,200,200,30);
    //函数的作用是在对话框中添加一个取消按钮
    //取消按钮通常用于关闭或取消对话框,并返回到上一级界面
    //在调用该函数后,当用户点击取消按钮时,对话框将被关闭,
    //并且可以执行一些自定义的操作,例如清除输入框中的文本、重置表单等
    dbb->addButton(QDialogButtonBox::Cancel);
    dbb->button(QDialogButtonBox::Cancel)->setText("取 消");

    pb = new QPushButton("自定义");
    //将pb添加到dbb并且设定ButtonRole为ActionRole
    /*具体来说,该函数将一个按钮(pb)添加到QDialogButtonBox对象(dbb)中,
     * 并指定其角色为ActionRole。ActionRole通常用于表示对话框中的操作按钮,
     * 例如“确定”、“取消”等。这些按钮通常用于执行一些特定的操作,如保存数据、关闭对话框等。
    */

    dbb->addButton(pb,QDialogButtonBox::ActionRole);

    //连接信号槽
    connect(dbb,SIGNAL(clicked(QAbstractButton*)),this,SLOT(dbbpbClicked(QAbstractButton*)));

}
MainWindow::~MainWindow()
{

}


void MainWindow::dbbpbClicked(QAbstractButton *bt)
{

    if(bt ==dbb->button(QDialogButtonBox::Cancel))
    {
        qDebug()<<"你已经点击【取消】按钮";
    }
    else if(bt == pb)
    {
        qDebug()<<"你已经点击【自定义】按钮";
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/619382.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【IMX6ULL项目】IMX6ULL下Linux实现产测工具框架

电子产品量产测试与烧写工具。这是一套软件&#xff0c;用在我们的实际生产中&#xff0c; 有如下特点&#xff1a; 1.简单易用&#xff1a; 把这套软件烧写在 SD 卡上&#xff0c;插到 IMX6ULL 板子里并启动&#xff0c;它就会自动测试各个模块、烧写 EMMC 系统。 工人只要按…

40 -1 入侵检测系统(IDS)- IDS的使用及规则

xampp 官网:XAMPP Installers and Downloads for Apache Friends 一、安装 XAMPP XAMPP 简介 XAMPP是完全免费且易于安装的Apache发行版,其中包含MariaDB、PHP和Perl。XAMPP开放源码包的设置让安装和使用出奇容易。 开始安装 如果命令行下载太慢,就在浏览器中下载完再拉…

【2024新版】龙年新版ui周易测算网站H5源码/在线起名网站源码/运势测算网站系统源码

>>>功能说明&#xff1a; 1、系统配置&#xff1a;系统基本配置、测算价格配置、在线预约配置、系统信息配置、代理分成配置、推广积分配置、VIP价格配置、账号管理 2、推广管理&#xff1a;我的信息、推广链接、订单管理、体现管理 3、付费应用&#xff0c;订单管…

高校课程评价|基于SSM+vue的高校课程评价系统的设计与实现(源码+数据库+文档)

高校课程评价系统 目录 基于SSM&#xff0b;vue的高校课程评价系统的设计与实现 一、前言 二、系统设计 三、系统功能设计 1管理员功能模块 2学生功能 3教师功能 4专家功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&…

Windows Docker 使用 httpd 部署静态 Web 站点

一、简介 httpd 是 Apache超文本传输协议&#xff08;HTTP&#xff09;服务器的主程序&#xff0c;是一个独立运行的后台进程&#xff0c;专门负责处理 HTTP 请求。它通过建立子进程或线程的池来高效管理请求&#xff0c;确保服务器能够迅速响应客户端的需求。httpd 因其高效率…

【Delphi】OpenCV 实战(一):OpenCV简介及开发环境配置

目录 一、OpenCV 功能模块 二、Delphi 中使用OpenCV 三、OpenCV 4.7 Delphi开发环境配置 1. 环境配置 2. OpenCV 中Demo程序的编译配置 3. 运行 Demo (OpenCV for Delphi) OpenCV 是世界上最大的计算机视觉库。 它是开源的,包含 2500 多种算法,由非营利…

信息系统项目管理师0105:项目评估与决策(7项目立项管理—7.3项目评估与决策)

点击查看专栏目录 文章目录 7.3项目评估与决策1.评估依据2.评估的程序3.项目评估的内容4.项目评估报告内容大纲记忆要点总结7.3项目评估与决策 项目评估指在项目可行性研究的基础上,由第三方(国家、银行或有关机构)根据国家颁布的政策、法规、方法、参数和条例等,从国民经济…

算法题② —— 链表专栏

1. 链表数据结构 struct ListNode {int val;ListNode *next;ListNode() : val(0), next(nullptr) {}ListNode(int x) : val(x), next(nullptr) {}ListNode(int x, ListNode *next) : val(x), next(next) {}};2. 链表的删除 2.1 移除链表元素 力扣&#xff1a;https://leetco…

大规模 RGB LED灯控系统 Lumos:创新与智能化的融合

灯控系统&#xff1a;创新与智能化的融合 在现代照明技术不断进步的背景下&#xff0c;灯控系统的应用已经从简单的开关控制&#xff0c;发展到能够进行复杂程控操作的智能化管理。我们推出的新一代灯控解决方案&#xff0c;凭借其高度的可配置性和跨平台兼容性&#xff0c;已…

Python | Leetcode Python题解之第86题分隔链表

题目&#xff1a; 题解&#xff1a; class Solution:def partition(self, head: Optional[ListNode], x: int) -> Optional[ListNode]:sml_dummy, big_dummy ListNode(0), ListNode(0)sml, big sml_dummy, big_dummywhile head:if head.val < x:sml.next headsml sm…

Android 10.0 Launcher3定制folder文件夹2x2布局之二foldericon的2x2的显示布局

1.前言 在10.0的系统rom产品定制化开发中,在对Launcher3的folder文件夹功能定制中,要求folder文件夹跨行显示,就是 2x2布局显示,默认的都是占1格的,现在要求占4格显示,系统默认是不支持显示4格的,所以接下来需要分析相关的 功能,然后来实现这个功能 2.Launcher3定制fo…

项目管理-计算题公式-补充【复习】

1.EMV决策树 定义&#xff1a;用决策树在若干备选行动方案中选择一个最佳方案。在决策树 中&#xff0c;用不同的分支代表不同的决策或事件&#xff0c;即项目的备选路径。每个决策或事件 都有相关的成本和单个项目风险(包括威胁和机会)。决策树分支的终点表示沿特 定路径发展的…

[C/C++] -- 搜索迷宫路径

DFS&#xff08;深度优先搜索&#xff09;和BFS&#xff08;广度优先搜索&#xff09;是两种常用的图遍历算法&#xff0c;它们在搜索图或树中的节点时有着不同的策略和特点。 深度优先搜索 (DFS): 在DFS中&#xff0c;从起始节点开始&#xff0c;沿着一条路径尽可能深地搜索&a…

基于数据挖掘与机器学习揭秘脱发主因

&#x1f31f;欢迎来到 我的博客 —— 探索技术的无限可能&#xff01; &#x1f31f;博客的简介&#xff08;文章目录&#xff09; 基于数据挖掘与机器学习揭秘脱发主因 目录 一、绪论背景描述数据说明内容大概 二、导入包以及数据读取三、数据预览四、探究导致脱发的因素4.1…

萤火虫优化算法(Firefly Algorithm)

注意&#xff1a;本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 &#xff08;[www.aideeplearning.cn]&#xff09; 算法背景 萤火虫优化算法&#xff0c;是由剑桥大学的Xin-She Yang在2009年提出的一种基于群体智能的优化算法。它的灵感来源于萤火虫在夜晚闪烁…

[AIGC] 跳跃表是如何实现的?原理?

文章目录 什么是跳跃表查找流程&#xff1a;为什么使用跳跃表?跳跃表是怎么实现的&#xff1f; PS:跳跃表是比较常问的一种结构。 什么是跳跃表 Skip Lists: A Probabilistic Alternative to Balanced Trees 跳跃表是一种可以用来代替平衡树的数据结构。跳跃表使用概率平衡…

微服务核心01-Maven【项目管理工具】高级

一、分模块开发与设计&#xff08;重点⭐&#xff09; ssm_pojo 拆分 新建模块拷贝原始项目中对应的相关内容到 ssm_pojo 模块中 实体类 &#xff08;User&#xff09;配置 文件&#xff08;无&#xff09; ssm_dao 拆分 ssm_service 拆分 ssm_control 拆分 二、聚合&#xff…

齿轮滚刀刃口钝化技术简介

介绍 在滚刀的使用中发现&#xff0c;进口滚刀和国产滚刀在加工质量和寿命方面存在显著差异。经过多次比较得知&#xff0c;滚刀的使用寿命可以达到国产滚刀的两倍以上&#xff0c;而进口滚刀返回原厂磨削后的使用寿命约为新刀具的90% &#xff0c;但同样经过国内厂家磨削后&a…

第 1 天_二分查找【算法基础】

第 1 天_二分查找 前言34. 在排序数组中查找元素的第一个和最后一个位置题解官方33. 搜索旋转排序数组题解官方74. 搜索二维矩阵 前言 这是陈旧已久的草稿2021-11-09 19:33:44 当时在学习数据结构&#xff0c;然后再LeetCode上找了一个算法基础。 但是后来又没做了。 现在20…

1. 抓娃娃-二分

因为这个限制&#xff0c;所以不用担心线段比区间长 线段一定比区间短的话&#xff0c;想要判断是否线段的二分之一及以上在区间内&#xff0c;则可以转化为线段中点是否在区间内的问题 如果没有那个限制&#xff0c;那么就无法这么考虑了&#xff0c;因为即使中点在区间内&…