当前位置: 首页 > news >正文

widget一些控件的使用

QRadioButton使用

先使用ui界面拖拽创建radio button

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->male->setChecked(true);//选中按钮ui->other->setCheckable(false);//是否能够选择
}Widget::~Widget()
{delete ui;
}void Widget::on_male_clicked()
{ui->label->setText("你选的性别为:男");
}void Widget::on_fmale_clicked()
{ui->label->setText("你选的性别为:女");
}void Widget::on_other_clicked()
{ui->label->setText("你选的性别为: 其他");
}
  • clicked 是⼀次⿏标按下+⿏标释放触发的.

• pressed 是⿏标按下触发的.

• released 是⿏标释放触发的.

• toggled 是 checked 属性改变时触发的.

总的来说, toggled 是最适合 QRadioButton 的

radiobutton按照组分组

#include "widget.h"
#include "ui_widget.h"
#include <QButtonGroup>
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//创建三个QButtonGroupQButtonGroup* g1 = new QButtonGroup(this);QButtonGroup* g2 = new QButtonGroup(this);QButtonGroup* g3 = new QButtonGroup(this);//加入组里g1->addButton(ui->radioButton_1);g1->addButton(ui->radioButton_2);g1->addButton(ui->radioButton_3);g2->addButton(ui->radioButton_4);g2->addButton(ui->radioButton_5);g3->addButton(ui->radioButton_6);g3->addButton(ui->radioButton_7);}

checkbox的使用方法

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{QString s1;if(ui->checkBox_eat->isChecked()){s1 += ui->checkBox_eat->text();}if(ui->checkBox_sleep->isChecked()){s1 += ui->checkBox_sleep->text();}if(ui->checkBox_video->isChecked()){s1 += ui->checkBox_video->text();}qDebug() << "今天的安排是"<< s1;
}

QLabel

Label不支持在界面进行输入修改。!

textFormat属性:如下

Qt::PlainText 纯⽂本

Qt::RichText 富⽂本(⽀持 html 标签)

Qt::MarkdownText markdown 格式

Qt::AutoText 根据⽂本内容⾃动决定⽂本格式.


Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//设置文本格式ui->label->setTextFormat(Qt::PlainText);ui->label->setText("这是文本一");//设置为富文本ui->label_2->setTextFormat(Qt::RichText);ui->label_2->setText("<b>这是文本2</b>");//设置为markdownui->label_3->setTextFormat(Qt::MarkdownText);ui->label_3->setText("#  这是文本3");
}

pixmap(位图)

QLabel内部包含的图片

    //设置和widget一样的大小ui->label->setGeometry(0,0,800, 600);QPixmap q(":/pr/caixukun.png");ui->label->setPixmap(q);

scaledContents(缩放内容)

可以自动缩放包裹图片

    //设置和widget一样的大小ui->label->setGeometry(0,0,800, 600);QPixmap q(":/pr/caixukun.png");ui->label->setPixmap(q);ui->label->setScaledContents(true);
}

声明的时候不能指定类区域

 void resizeEvent(QResizeEvent* event);
//重写resizeEvent,这个函数会在窗口大小变化时 被 自动调用
void Widget::resizeEvent(QResizeEvent *event)
{//重新设置新的尺寸ui->label->setGeometry(0,0, event->size().width(), event->size().height());}

alignment对齐

对齐方式,可以设置水平和垂直方向如何对其

wordWrap换行

实现换行

indent缩进

设置文本缩进

{ui->setupUi(this);//设置文字居中对齐//    ui->label->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);//设置自动换行ui->label->setAlignment(Qt::AlignTop | Qt::AlignLeft);ui->label->setWordWrap(true);
//    ui->label->setText("踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩从踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩从");//设置首行缩进ui->label->setIndent(80);ui->label->setText("踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩从踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩从");
}

buddy

给QLabel关联一个 伙伴, 这样点击QLabel就能激活对应的伙伴。

此处把 label 中的⽂本设置为 “快捷键 &A” 这样的形式.

其中 & 后⾯跟着的字符, 就是快捷键.

可以通过 alt + A 的⽅式来触发该快捷键

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//设置label的伙伴widgetui->label->setBuddy(ui->radioButton);ui->label_2->setBuddy(ui->radioButton_2);
}

LCDNumber

通过设置定时器timer,绑定updatetime的自定义槽函数,来实现倒计时

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//创建QTimertimer = new QTimer(this);connect(timer, &QTimer::timeout, this, &Widget::updateTime);//启动QTimer,规定时间间隔1000秒timer->start(1000);
}Widget::~Widget()
{delete ui;
}
//更新时间
void Widget::updateTime()
{int value = ui->lcdNumber->intValue();if(value <= 0){timer->stop();return ;}ui->lcdNumber->display(value-1);
}

ProgressBar(进展条)

和上面的lcdnumber的接口差不多。

//更新进度条
void Widget::updateTime()
{int value = ui->progressBar->value();if(value >= 100){timer->stop();return ;}ui->progressBar->setValue(value+1);}

CalendarWidget日历控件

点击某一天,显示日期


void Widget::on_calendarWidget_selectionChanged()
{//获取日期QDate date = ui->calendarWidget->selectedDate();//显示日期ui->label->setText(date.toString());
}
http://www.lryc.cn/news/320030.html

相关文章:

  • Python基础(七)之数值类型集合
  • 电脑充电器能充手机吗?如何给手机充电?
  • 矩阵中移动的最大次数
  • Linux:系统初始化,内核优化,性能优化(3)
  • 使用 GitHub Actions 通过 CI/CD 简化 Flutter 应用程序开发
  • 微软 CEO Satya Nadella 的访谈
  • 万界星空科技商业开源MES,技术支持+项目合作
  • Docker Mysql无root账户创建最高权限用户
  • 常用芯片学习——DS3231M芯片
  • 蓝桥杯单片机快速开发笔记——矩阵键盘
  • 每周一算法:双向深搜
  • 蓝桥杯刷题(十)
  • ioDraw:与 GitHub、gitee、gitlab、OneDrive 无缝对接,绘图文件永不丢失!
  • 利用 Python 处理遥感影像数据:计算年度平均影像
  • 【Leetcode-73.矩阵置零】
  • redis 常见的异常
  • npm包、全局数据共享、分包
  • UnityShader:IBL
  • 每日五道java面试题之mybatis篇(三)
  • C#开发五子棋游戏:从新手到高手的编程之旅
  • ELK日志管理实现的3种常见方法
  • 深度强化学习01
  • C++ 智能指针的使用
  • Flutter 核心原理 - UI 框架(UI Framework)
  • Hive优化
  • React 的 diff 算法
  • 综合知识篇07-软件架构设计考点(2024年软考高级系统架构设计师冲刺知识点总结系列文章)
  • 【GPT-SOVITS-05】SOVITS 模块-残差量化解析
  • Flutter第四弹:Flutter图形渲染性能
  • [氮化镓]GaN中质子反冲离子的LET和射程特性