按钮组
一、工具按钮ToolButton
toolbutton:多用于工具栏,提供命令或选项,一般不会带文字在按钮上,用来显示图标
类似word种的这样的工具栏
pushbutton:是普通按钮,可以提供文字,图标都在按钮上。可以设置一定的界面风格等
toolButton的功能比pushbutton更多一些。
二、单选按钮Radio Button和分组框GroupBox
拖4个单选框,如下图
但是点击四个中任意一个,其他就会消失,应该要将男女为一组,已婚未婚为一组
使用GroupBox对它们进行两两分组,只需要把同一组的放入同一个GroupBox里面就行了
如果要设置默认值(通过程序实现,一般ui只进行布局)
先将 单选按钮“男” , 对象改名为rBtnMan
将 单选按钮“女”,对象改名为rBtnWoman
//设置单选按钮 “男”默认选中 ui->rBtnMan->setChecked(true); //选中单选按钮“女” 打印信息 connect(ui->rBtnWoman,&QRadioButton::clicked,[=](){ qDebug()<<"select woman!"; });
三、多选框CheckBox
用groupBox将几个CheckBox放在一起
设置其中一个多选框的对象名为cBox
//多选按钮 2是选中, 0是未选中 connect(ui->cBox,&QCheckBox::stateChanged,[=](int state){ qDebug()<<state; });
如果设置tristate,那么就是有3种状态
0:未选 1:半选 2:选中
总结
Item Widget
四 、List Widget 列表容器
//利用listWidget写诗 QListWidgetItem *item = new QListWidgetItem("锄禾日当午"); //将一行的诗放入listWidget控件中 ui->listWidget->addItem(item); //设置listWidgetitem的对齐格式 item->setTextAlignment(Qt::AlignHCenter);//(查阅文档) //在listWidget中利用addItems一次性加入多行。 QStringList list; list<<"锄禾日当午"<<"汗滴禾下土"<<"谁知盘中餐"<<"粒粒皆辛苦";//QStringList重载了<<运算符,每次都会自动换行 ui->listWidget->addItems(list);
五、Tree Widget 树控件
要实现这种效果
//treeWidget树控件使用 //设置水平头 ui->treeWidget->setHeaderLabels(QStringList()<<"英雄"<<"英雄介绍");//QStringList()是匿名对象 //加载顶层节点(根节点) 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); //追加子节点 QTreeWidgetItem *l1 = new QTreeWidgetItem(QStringList()<<"刚被猪"<<"前排坦克,能在吸收伤害的同时造成可观的范围输出"); liItem->addChild(l1);
六、Table Widget 表格控件
要实现这样的效果
//TableWidget控件 //设置列数 ui->tableWidget->setColumnCount(3); //设置水平表头 ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<"姓名"<<"性别"<<"年龄"); //设置行数 ui->tableWidget->setRowCount(5); //设置正文 QStringList nameList; nameList<<"亚瑟"<<"赵云"<<"张飞"<<"关羽"<<"花木兰"; QList<QString> sexList;//和上面QStringList是一样的 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[i])); ui->tableWidget->setItem(i,col++,new QTableWidgetItem(QString::number(18))); }