Qt控件学习

这篇具有很好参考价值的文章主要介绍了Qt控件学习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

QPushButton

 QToolButton

QRadioButton

QCheckBox


QPushButton

Qt控件学习,Qt,qt,ui,开发语言


MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    ui->n1->setText("我的世界");
    ui->n1->setIcon(QIcon(":/111"));
    ui->n1->setIconSize(QSize(30, 30));
    connect(ui->n1,&QPushButton::clicked,this,[=](){
        qDebug()<<"你好世界.";
    });

    //有checked属性的按钮
    ui->n2->setCheckable(true);
    connect(ui->n2,&QPushButton::toggled,this,[=](bool bl){
        qDebug()<<"等待..."<<bl;
    });
    //关联菜单
    ui->n3->setText("选择你喜欢的城市");
    QMenu *menu=new QMenu;
    QAction*act=menu->addAction("福建");
    menu->addAction("杭州");
    menu->addAction("成都");
    menu->addAction("上海");
    ui->n3->setMenu(menu);
    connect(act,&QAction::triggered,this,[=]{
        qDebug()<<"喜欢..."<<act;
    });

}

 Qt控件学习,Qt,qt,ui,开发语言

 QToolButton

他是高配版QPushButton

添加如下代码:

    // 设置图标和文本的显示模式 3种
    //用qaction方式去设置图标和文本信息
    QAction* ac=new QAction(QIcon(":/222"),"冲冲冲");
    ui->n4->setDefaultAction(ac);
    connect(ui->n4,&QToolButton::triggered,this,[=](){
        ac->setText("我是修改后的");
        ac->setIcon(QIcon(":/111"));
    });
    //基于自带的样式,给按钮设置箭头图标
    ui->n5->setArrowType(Qt::UpArrow);
    ui->n5->setText("向上");
    ui->n5->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);//都显示
  
    //关联菜单  设置成不延时的  ,有三种 ,默认是延时的
    ui->n6->setMenu(menu);
    ui->n6->setPopupMode(QToolButton::MenuButtonPopup);
    connect(ui->n6,&QToolButton::clicked, this, [=]()
    {
        qDebug() << "我是新菜单按钮...";
    });

Qt控件学习,Qt,qt,ui,开发语言

QRadioButton

QRadioButton 是 Qt 提供的单选按钮,如果单选按钮被选中, 再次点击这个按钮选中状态是不能被取消的。且一组只能选一个,它的父类是 QAbstractButton。

用容器去吧这一组一组的按钮区分开来,容器

如下: 

Qt控件学习,Qt,qt,ui,开发语言

这里我们选择group box 把一组按钮放一起,给这些按钮设置一个槽函数,选中后做个打印看看

void MainWindow::on_r1_clicked()
{
     qDebug() << "要吃饭...";
}

void MainWindow::on_r2_clicked()
{
     qDebug() << "要睡觉...";
}

void MainWindow::on_r3_clicked()
{
     qDebug() << "要打豆豆...";
}

void MainWindow::on_r4_clicked()
{
     qDebug() << "不要上班...";
}

void MainWindow::on_r5_clicked()
{
     qDebug() << "要下班...";
}

void MainWindow::on_r6_clicked()
{
     qDebug() << "卷死你...";
}

Qt控件学习,Qt,qt,ui,开发语言

QCheckBox

QCheckBox 是 Qt 中的复选框按钮,可以单独使用,也可以以组的方式使用 (同一组可以同时选中多个), 当复选按钮被选中, 再次点击之后可以取消选中状态, 这一点和单选按钮是不同的。

我们对复选框按钮操作的时候,可以设置选中和未选中状态,并且还可以设置半选中状态,这种半选中状态一般需要当前复选框按钮下还有子节点,类似一树状结构。

举个例子:常常在软件中见到的操作

我们利用 QCheckBox,层层实现这种分复选的效果,点击分类,可全选下方具体类别,选中部分类别或不选,或全选对应分类显示也是不同的

Qt控件学习,Qt,qt,ui,开发语言

我们在mainwindow.h添加成员

    // 添加槽函数, 处理复选框按钮状态变化
    void statusChanged(int );
    

    int count=0;//计数器

 在mainwindow.cpp去实现具体的连接

    //设置根节点 ,分类 ,的三态属性
    ui->fenlei->setTristate(true);
    //处理根节点点击鼠标的事件
    connect(ui->fenlei, &QCheckBox::clicked, this, [=](bool bl){
       if(bl){//被选中的状态
           ui->kehuan->setChecked(true);
           ui->aiqing->setChecked(true);
           ui->xiju->setChecked(true);
       }
       else{
           ui->kehuan->setChecked(false);
           ui->aiqing->setChecked(false);
           ui->xiju->setChecked(false);
       }
    });
    //处理子节点的一个状态变化,实现槽函数
    connect(ui->kehuan,&QCheckBox::stateChanged,this,&MainWindow::statusChanged);
    connect(ui->aiqing,&QCheckBox::stateChanged,this,&MainWindow::statusChanged);
    connect(ui->xiju,&QCheckBox::stateChanged,this,&MainWindow::statusChanged);



void MainWindow::statusChanged(int st)
{
    if(st==Qt::Checked){
        count++;//选中了 ++
    }
    else{
        count--;
    }
    // 根据计数器值判断根节点是否需要做状态的更新
     if(count == 3)
     {
         ui->fenlei->setCheckState(Qt::Checked);
     }
     else if(count == 0)
     {
         ui->fenlei->setCheckState(Qt::Unchecked);
     }
     else
     {
         ui->fenlei->setCheckState(Qt::PartiallyChecked);
     }
}

点击分类,全选

Qt控件学习,Qt,qt,ui,开发语言

 部分选中

Qt控件学习,Qt,qt,ui,开发语言

子节点全选,根节也选中

Qt控件学习,Qt,qt,ui,开发语言文章来源地址https://www.toymoban.com/news/detail-585754.html

到了这里,关于Qt控件学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VS QT——ui不显示新添加成员(控件)||代码无提示

    场景1:新建项目,在ui里编辑之后,新添加的控件不显示代码提示。 场景2:成员 ui  报错 不允许使用不完整的类型  因为是刚开始学,花了两三天才找到解决办法。 网上方法: 重新编译 ui文件 + 重新扫描解决方案 (但是我这里还是无法解决) 根本原因:缺少xxx.ui 的头文

    2024年02月13日
    浏览(42)
  • Qt 之tableView控件C++语言

    table view是用的比较多的一个控件之一,我们在展示数据或者表格的时候经常用到。 1、添加表头 2、 添加行数据 3、 获取双击事件 4、获取选中行内容 5、删除行 以上就是QT中TABLE VIEW的使用,其实还有很多属性可以设置,比如是否隐藏表头呀,是否显示网格线呀,QSS样式设置

    2024年02月13日
    浏览(41)
  • 解决QT中UI控件布局更改后运行结果没有发生变化的问题

    在学习QT中,遇到了一个问题,那就是当我UI中更改了控件布局后,运行的结果却并没有发生改变,于是我上网查找了一些资料,大多略显麻烦。 效果如下:这是UI控件更改布局后  这是运行后结果 显然,UI文件中并没有更新。 我的解决方案是: 1.首先在项目文件中找到UI文件

    2024年02月11日
    浏览(82)
  • 【Visual Studio】Qt 在其他 cpp 文件中调用操作 ui 界面控件

    知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 还整了一个如何相互之间调用函数的文章,感兴趣可以看:【Visual Studio】Qt 在其他 cpp 文件中调用主工程下文件中的函数。 主界面工程为 A ,添加的文件名字为 test ,目标是在

    2024年02月05日
    浏览(51)
  • QT界面调用ui,定义主MainWindow中的子控件的槽函数

    在QT的应用中,不可避免需要使用QtDesigner,创建的ui如何调用呢,这里给出我的调用方法。  所有设计做完后,保存ui文件,终端输入: 得到ui.h文件,新建mainwindow.h文件,输入: 新建mainwindow.cpp文件,输入: 新建main.cpp文件,输入: 编译即可,编译需要编写pro文件。 除此之外,

    2024年02月12日
    浏览(42)
  • Qt项目UI文件中新添加的控件在代码中不识别的问题

    ui-XXXX 在UI界面中新添加了控件,但是在代码中怎么也不出现,或者划红线 我看不少人说备份删除文件再添加,或者关闭QT再打开。。。 其实只要右键项目清除构建,然后重新构建就可以了, 这有一个大哥写的也很明白,感觉好的办法被海一样的信息淹没了,也帮他给个链接

    2024年02月16日
    浏览(41)
  • 【Qt 学习笔记】Qt常用控件 | 输入类控件 | Text Edit的使用及说明

    博客主页:Duck Bro 博客主页 系列专栏:Qt 专栏 关注博主,后期持续更新系列文章 如果有错误感谢请大家批评指出,及时修改 感谢大家点赞👍收藏⭐评论✍ 文章编号:Qt 学习笔记 / 29 1. 简介 QTextEdit是Qt中的一个可编辑的文本框控件,可以用于显示和编辑多行文本。 它是基于

    2024年04月28日
    浏览(48)
  • Qt控件学习

    目录 QPushButton  QToolButton QRadioButton QCheckBox   他是高配版QPushButton 添加如下代码: QRadioButton 是 Qt 提供的单选按钮, 如果单选按钮被选中, 再次点击这个按钮选中状态是不能被取消的。且一组只能选一个, 它的父类是 QAbstractButton。 用容器去吧这一组一组的按钮区分开来,容

    2024年02月16日
    浏览(35)
  • QT学习07:五种按钮控件

    文章首发于我的个人博客:欢迎大佬们来逛逛 完整Qt学习项目地址:源码地址 是所有按钮类的祖先。 QAbstractButton的信号 : void clicked (bool checked = false) : 是否选中按钮 void pressed (): 点击按钮 void released (): 释放按钮 void toggled (bool checked): 检测 是否被选中 最常用的按钮控

    2024年02月09日
    浏览(45)
  • QT子线程或自定义类操作访问主界面UI控件的几种方法

            QT创建窗体工程,一般在MainWindow或Dialog类里可以直接通过ui指针访问控件,但是添加新的类后又如何访问呢,可以通过以下几种方式: (1)例如有个自己定义的类CustomClass,在自定义类里包含主界面指针MainWindow * class MainWindow;   class CustomClass { public:     CustomCla

    2024年02月09日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包