mainWindow.ui中一些常用部件解释
一、按钮组
Buttons:按钮
QPush Button:常用按钮
Tool Button:工具按钮,用于显示图片和文字(通过修改风格去设置)
Radio Button:单选按钮(可以用Group Box分组)
Check Button:多选按钮
&QCheckBox::stateChanged:返回一个int类型的状态,包括2和0。2是选中,0是未选中,1是半选状态。
二、Item widgets
List Widgets:列表容器。
可以在代码中写内容。
方式一:一行一行加,可以设置字体居中
QListWidgetItem * item1 = new QListWidgetItem("text"); //创建一个QListWidgetItem对象指针 item1->setTextAlignment(int state); // 设置内容居中格式 ui->listWidget->addItem(item1); // 把item1加入列表中
方式二:利用C++ STL提供的List<String>去一次性添加多条,但是不能设置文字属性。在QT中是QStringList,代码如下:
QStringList list; list << "锄禾日当午" << "汗滴禾下土"; ui->listWidget->addItems(list);
TreeWidget:树控件
1. ui文件:
2. 设置根节点
ui->treeWidget->setHeaderLabels(QStringList() << "英雄" << "技能" << "介绍");
3. 设置二级节点
// 先创建节点对象 QTreeWidgetItem * item1 = new QTreeWidgetItem(QStringList() << "力量"); QTreeWidgetItem * item2 = new QTreeWidgetItem(QStringList() << "敏捷"); QTreeWidgetItem * item3 = new QTreeWidgetItem(QStringList() << "智力"); // 在根节点下加载二级节点 ui->treeWidget->addTopLevelItem(item1); ui->treeWidget->addTopLevelItem(item2); ui->treeWidget->addTopLevelItem(item3);
4. 在二级节点下设置三级节点
// 创建三级节点 QTreeWidgetItem * l1 = new QTreeWidgetItem(QStringList() << "钢背猪" << "被刺" << "很强"); QTreeWidgetItem * l2 = new QTreeWidgetItem(QStringList() << "影魔" << "冰眼" << "很强"); // 加载三级节点 item1->addChild(l1); item1->addChild(l2);
三、TableWidgets
1. ui文件:
2. 代码:
// 1. 设置表格有几列 ui->tableWidget->setColumnCount(4); // 2. 设置表格有几行 ui->tableWidget->setRowCount(5); // 3. 设置表格的表头 ui->tableWidget->setHorizontalHeaderLabels(QStringList() << "英雄" << "技能" << "等级" << "学历"); // 4. 设置数组元素 ui->tableWidget->setItem(0,0,new QTableWidgetItem("亚瑟")); // params:行,列,QTableWidgetItem对象
四、OtherWidget
1. Scroll Area: 滚动区域
2. Tool Box:在属性页可以加页,也可以改文字
3. Tab Box:在属性页改文字,在控件处加页
4. Stacked Widget:相当于翻页效果。在控件处加页
如何使用?
// 1. 先设置当前页面
ui->stackedWidget->setCurrentIndex(0);
int i = 0;
// 2. 点击按钮"下一页",转到下一页
connect(ui->pushButton1, &QPushButton::clicked, [&](){
if(i > 2) {
i = 0;
}
ui->stackedWidget->setCurrentIndex(i++);
});
// 3. 点击"上一页", 转到上一页
connect(ui->stackedWidget, &QPushButton::clicked, [&](){
if(i < 0) {
i = 2;
}
ui->stackedWidget->setCurrentIndex(i--);
});
5. Combo Box:下拉框
1. ui文件:
2. 使用:
// 增加下拉框item ui->combobox->addItem("宫保鸡丁"); ui->combobox->addItem("鱼香肉丝"); // 点击按钮,下拉框选中"鱼香肉丝" connect(ui->btn1, &QPushButton::clicked, [=](){ ui->combobox->setCurrentText("鱼香肉丝"); });
6. 文本框:
7. QLabel:标签,可以显示文字、图片和动态图。
五、自定义组合控件
1. 添加自定义的ui 、.h、.cpp等文件。点击Add New。
2. 提升之后,main.ui中新加的widget类别变成了My_ui类别。点击运行,main.ui中出现了自定义的控件。
3. 设置spinbox 和 slider的联动。因为这俩组件都是在my_ui.ui中,所以这里要在my_ui.cpp中写connect。
4. 设置两个函数:获取当前值和设置值。要在my_ui.h中声明,在my_ui.cpp中定义,在main.cpp中调用。
5. connect用lamda表达式写也可以