如何自学qt(7)——其他控件

    科技2026-01-30  4

    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()

    Processed: 0.014, SQL: 9