1,ListWidget
大概可以理解为,写成链表的widget
①麻烦的可以细化属性的填入方法
QListWidgetItem *item = new QListWidgetItem("相见争如不见");
//把item放进控件
ui -> listWidget->addItem(item);
//设置item在框里的位置
item->setTextAlignment(Qt::AlignHCenter);//枚举如果找不到可以查帮助文档
效果如下
②快捷的没法设置位置的填入方法
QStringList list;
list << "故人西辞黄鹤楼" << "烟花三月下扬州" << "楼船夜雪瓜洲渡" << "铁马秋风大散关";
ui->listWidget->addItems(list);
效果如下!
2,TreeWidget
设置代码如下
//设置水平头
ui -> treeWidget -> setHeaderLabels(QStringList() << "神话体系" << "代表人物");
//添加顶层的节点
QTreeWidgetItem *firstitem = new QTreeWidgetItem(QStringList() << "希腊");
ui -> treeWidget -> addTopLevelItem(firstitem);
QTreeWidgetItem *seconditem = new QTreeWidgetItem(QStringList() << "西欧");
ui -> treeWidget -> addTopLevelItem(seconditem);
QTreeWidgetItem *thirditem = new QTreeWidgetItem(QStringList() << "中国");
ui -> treeWidget -> addTopLevelItem(thirditem);
//追加子节点
QStringList zhous;
zhous << "宙斯" << "诸神之父";
QTreeWidgetItem *zhou = new QTreeWidgetItem(zhous);
firstitem -> addChild(zhou);
其实,就是一层一层的往下写
效果如图
3,TableWidget
图表的写法不同于树,要提前设定好行数和列数
为了方便录入数据,我们要用一个for循环
值得注意的是,如果要录入int类型,可以用QString :: number();
相当于c++里面的tostring()
示例代码如下
//先设置列数
ui->tableWidget->setColumnCount(3);
//设置水平表头
ui -> tableWidget -> setHorizontalHeaderLabels(QStringList() << "姓名" << "性别" << "年龄");
//设置行数
ui -> tableWidget -> setRowCount(5);
QStringList name;
name << "亚瑟" << "鲁班" << "甄姬" << "妲己" << "咕咕";
//设置正文
// ui -> tableWidget -> setItem(0,0,new QTableWidgetItem("亚瑟"));
//上面是单个设置的代码
for(int i = 0; i < 5 ; i++)
{
int col = 0;
ui -> tableWidget -> setItem(i,col,new QTableWidgetItem(name[i]));
col = col + 2;
ui -> tableWidget -> setItem(i,col,new QTableWidgetItem(QString::number(i + 19)));
}
效果如图
4,其他控件
①scroll area
固定大小,默认滚动的盒子
②Tool Box
功能类似于qq好友的分类功能,基础界面如下
在属性里可以修改上下两个页码的名字
右键名称可以添加页码
③Tab Widget
这个好像比较常见,有点像网页的形式
修改和添加与②类似
④stacked widget
单页面切换的控件,可以把其他控件放进去
值得注意的是,如果只是普通的放进去,不做其他操作,页面是无法显示切换的
这里我们添加两个摁钮进行界面的切换,取名为stackone和stacktwo
connect(ui->stackone,&QPushButton::clicked,[=]
{
ui->stackedWidget->setCurrentIndex(1);//这个如果放在外面可以用于设置默认界面
});
connect(ui->stacktwo,&QPushButton::clicked,[=]
{
ui->stackedWidget->setCurrentIndex(0);
});
其中的currentindex翻译为目前索引,在stackwight属性里可以查找到对应的属性
⑤combo box(下拉框)
可以添加下拉框的文本
ui->comboBox->addItem("喜欢");
ui->comboBox->addItem("讨厌");
⑥三个文本框
Line edit 单行输入
Text edit 多行输入
Plain text edit 跟上一个很像,但它不支持加粗倾斜下划线等元素,只是单纯的文本。
⑦lable
前面使用过,用于显示文本,其实它还可以用于显示图片
ui->label->setPixmap(QPixmap(":/xin.jpg"));
把Pixmap改成movie还可以用于显示动图,不过需要添加头文件,还要写start()