【Qt】常见控件

编程入门 行业动态 更新时间:2024-10-20 00:28:41

【Qt】常见<a href=https://www.elefans.com/category/jswz/34/1769529.html style=控件"/>

【Qt】常见控件

文章目录

  • 按钮组
  • QListWidget列表容器
  • TreeWidget树控件
  • TableWidget 表格控件
  • 其它控件介绍
    • 下拉框
    • QLabel显示图片和动图
  • 自定义控件封装

按钮组

QPushButton 常用按钮

QToolButton 工具按钮: 用于显示图片

  • 如果想显示文字:修改风格:toolButtonStyle =>选择TextBesideIcon
  • 凸起风格:autoRaise选中即可

radioButton 单选按钮 => 多个按钮通常配合Group Box组件一起使用

  • 设置默认选中的值:ui->按钮名字->setChecked(true);
//设置单选按钮 男默认选中
ui->rBtnMan->setChecked(true);//选中女后 打印信息
connect(ui->rBtnWoman,&QRadioButton::clicked,[=](){qDebug() << "选中了女了!";
});


checkbox:多选按钮,监听状态。2表示选中 1表示半选 0表示未选中,通常配合group box使用

开启半选状态

点一下:半选 再点一下:选中


//多选按钮  2是选中  0是未选中 1是半选 
connect(ui->cBox,&QCheckBox::stateChanged,[=](int state){qDebug() << state;
});

stateChanged有一个int参数,所以需要在lambda当中接收


QListWidget列表容器

QListWidgetItem * item = new QListWidgetItem("锄禾日当午");
//将一行诗放入到listWidget控件中
ui->listWidget->addItem(item);
item->setTextAlignment(Qt::AlignHCenter); //设置水平居中


方式2

QStringList list ; 
list << "锄禾日当午" << "旱地和下土" << "谁知盘中餐"<< "粒粒皆辛苦";
ui->listWidget->addItems(list);


TreeWidget树控件

1.设置头 2.创建根节点 3.添加根节点到树控件上 4.添加子节点

//设置水平方向的头
ui->treeWidget->setHeaderLabels(QStringList()<< "英雄"<< "英雄介绍");//QStringList()里面QString对象,里面重载了<<QTreeWidgetItem * liItem = new QTreeWidgetItem(QStringList()<< "力量");
QTreeWidgetItem * minItem = new QTreeWidgetItem(QStringList()<< "敏捷");
QTreeWidgetItem * zhiItem = new QTreeWidgetItem(QStringList()<< "智力");//加载顶层的节点
ui->treeWidget->addTopLevelItem(liItem);
ui->treeWidget->addTopLevelItem(minItem);
ui->treeWidget->addTopLevelItem(zhiItem);//追加子节点
QStringList heroL1;
heroL1 << "刚被猪" << "前排坦克,能在吸收伤害的同时造成可观的范围输出";
QTreeWidgetItem * l1 = new QTreeWidgetItem(heroL1);
liItem->addChild(l1);


TableWidget 表格控件

设置列数=>设置水平表头=>设置行数=>设置正文

//设置列数
ui->tableWidget->setColumnCount(3);//设置水平方向表头
ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<"姓名"<< "性别"<< "年龄");//设置行数
ui->tableWidget->setRowCount(5);//设置正文
//ui->tableWidget->setItem(0,0, new QTableWidgetItem("亚瑟")); //行数 列数 QTableWidgetItem对象地址
QStringList nameList;
nameList<< "亚瑟"<< "赵云"<< "张飞"<< "关羽" << "花木兰";QList<QString> sexList;
sexList << "男"<< "男"<< "男"<< "男"<< "女";for(int i = 0 ; i < 5 ;i ++)	
{int col = 0;ui->tableWidget->setItem(i,col++, new QTableWidgetItem(nameList[i]));ui->tableWidget->setItem(i,col++, new QTableWidgetItem(sexList.at(i)));//int 转 QString  : QString::numberui->tableWidget->setItem(i,col++, new QTableWidgetItem( QString::number(i+18)));
}


其它控件介绍

下拉框

ui->comboBox->addItem("奔驰"); //0
ui->comboBox->addItem("宝马");//1
ui->comboBox->addItem("拖拉机");//2//点击按钮 选中拖拉机选项
connect(ui->btn_select,&QPushButton::clicked,[=](){//ui->comboBox->setCurrentIndex(2); //拖拉机是2号ui->comboBox->setCurrentText("拖拉机");
});


QLabel显示图片和动图

//利用QLabel显示图片
ui->image_lable->setPixmap(QPixmap(":/file/image/cat.png"));//利用QLabel显示 gif动态图片
QMovie * movie = new QMovie(":/file/gif/1.gif");
ui->move_lable->setMovie(movie);
//播放动图
movie->start();


自定义控件封装

目标:实现功能,改变数字,滑动条跟着移动 || 滑动条移动,数字变化

第一步:添加新文件 -Qt-设计师界面类 =>选择widget 会自动生成 (.h .cpp .ui)

第二步:在生成的ui文件当中设计 Q S p i n B o x QSpinBox QSpinBox和 Q S l i d e r QSlider QSlider两个控件

第三步:在mainWindow.ui文件当中,使用Widget当中使用自定义控件:拖拽一个Widget,点击提升为=>输入提升的类名称=>全局包含=>添加=>提升


smallwidget.h

提供两个函数:

//设置数字
void setNum(int num);
//获取数字
int getNum();

smallwidget.cpp

实现上述的两个函数:

//设置数字
void smallwidget::setNum(int num)
{ui->spinBox->setValue(num);
}//获取数字
int smallwidget::getNum()
{return ui->spinBox->value();
}

在构造函数当中:

//QSpinBox移动 QSlider跟着移动
void(QSpinBox:: * spSignal )(int) = &QSpinBox::valueChanged;
connect(ui->spinBox , spSignal , ui->horizontalSlider , &QSlider::setValue);//QSlider滑动  QSpinBox数字跟着改变
connect(ui->horizontalSlider, &QSlider::valueChanged,ui->spinBox,&QSpinBox::setValue);

widget.cpp的构造函数当中:

//点击获取  获取当控件当前的值
connect(ui->btn_get,&QPushButton::clicked , [=](){qDebug() << ui->widget->getNum(); 
});//设置到一半
connect(ui->btn_set,&QPushButton::clicked,[=](){ui->widget->setNum(50);
});

更多推荐

【Qt】常见控件

本文发布于:2023-12-07 10:33:19,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1671011.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:控件   常见   Qt

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!