Qt学习笔记8——P26-28. ui中的一些控件(QTreeWidget, QTableWidget, 其他)

  • P26. QTreeWidget树控件
  • P27. QTableWidget控件
  • P28. 其他常用控件介绍
  • P26. QTreeWidget树控件(创建了新项目)
  •  (ui界面)Item Widgets (Item-Based) -> Tree Widget

把"Tree Widget"拖进界面后,如果想把此Tree Widget居中,选中最大的窗口(Widget),然后选工具栏中的"水平居中"或"垂直居中"都可以。

 1     //treeWidget(变量名)树控件使用
 2     //设置头部
 3     ui->treeWidget->setHeaderLabels(QStringList()<<"英雄"<<"英雄介绍");   //后面括号里的部分是匿名对象;treeWidget是ui中添加的树控件的变量名
 4     //创建(根)节点
 5     QTreeWidgetItem * liItem = new QTreeWidgetItem(QStringList()<<"力量");
 6     QTreeWidgetItem * minItem = new QTreeWidgetItem(QStringList()<<"敏捷");
 7     QTreeWidgetItem * zhiItem = new QTreeWidgetItem(QStringList()<<"智力");
 8     //添加到顶层节点(根)
 9     ui->treeWidget->addTopLevelItem(liItem);
10     ui->treeWidget->addTopLevelItem(minItem);
11     ui->treeWidget->addTopLevelItem(zhiItem);
12     //创建(子)节点
13     QStringList heroL1;
14     heroL1<<"刚被猪"<<"刚被猪简介...";
15     QTreeWidgetItem * l1 = new QTreeWidgetItem(heroL1);
16     //添加到树控件
17     liItem->addChild(l1);

运行结果:

  

 

  • P27. QTableWidget控件(创建了新项目)
  • (ui界面)Item Widgets (Item-Based) -> Table Widget
 1     //TableWidget控件
 2     //设置列数
 3     ui->tableWidget->setColumnCount(3); //设置3列  tableWidget是ui中树控件的变量名
 4     //设置水平表头
 5     ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<"姓名"<<"性别"<<"年龄");
 6     //设置行数
 7     ui->tableWidget->setRowCount(5);    //设置5行
 8     //设置正文
 9     //ui->tableWidget->setItem(0,0,new QTableWidgetItem("亚瑟"));  //括号里第三个位置的匿名函数为什么+new? 因为第三个位置要求是QTableWidgetItem*
10     QStringList nameList;
11     nameList<<"亚瑟"<<"赵云"<<"张飞"<<"关羽"<<"花木兰";
12     QList<QString> sexList; //QStringList 等价于 QList<QString>
13     sexList<<""<<""<<""<<""<<"";
14     for(int i=0;i<5;i++)    //i代表行数
15     {
16         int col = 0;    //col代表列数
17         ui->tableWidget->setItem(i,col++,new QTableWidgetItem(nameList[i]));
18         ui->tableWidget->setItem(i,col++,new QTableWidgetItem(sexList.at(i)));   //.at(i)和[i]的作用差不多,区别就是数组越界的时候的处理
19         ui->tableWidget->setItem(i,col++,new QTableWidgetItem(QString::number(i+18)));    //int转QString
20     }

运行结果:

  

 

  • P28. 其他常用控件介绍
  • Containers -> Scroll Area:滚动区域;如果往这个区域的东西放多了就会出现滚动条

  

  • Containers -> Tool Box:类似于QQ分组那样的控件

  如何修改控件里的名字:选中控件 -> 右下角"currentItemText"中修改

  

  如何往Tool Box中添加新的分组:右上角右键此Tool Box控件 -> 选“插入页”(插入到之前和之后都可以,之前之后是基于你选择的分组)

  

  • Containers -> Tab Widget:类似于网页窗口的控件

  如何修改控件里的名字:选中控件 -> 右下角"currentTabText"中修改

  • Containers -> Stacked Widget:可以实现页面切换的控件

测试案例:往界面中拖一个"Stacked Widget",把刚才的"Scroll Area""Tool Box""Tab Widget"分别拖到"Stacked Widget"里面的三个不同的界面中;然后"Stacked Widget"旁边放三个按钮,实现点指定按钮切换到指定页面

界面预览:

  

代码:

 1     //栈控件使用
 2     //设置默认定位到scrollArea
 3     ui->stackedWidget->setCurrentIndex(1);  //"stackedWidget"是控件的变量名;"setCurrentIndex"是设置页面的索引值:stackedWidget中的每个不同的页面都有自己的索引值,索引值具体为多少可以看(ui界面切换到你要查看的页面)ui编辑界面右下角的"currentIndex"
 4     //scrollArea按钮
 5     connect(ui->btn_scrollArea,&QPushButton::clicked,this,[=](){
 6        ui->stackedWidget->setCurrentIndex(1);
 7     });
 8     //toolBox按钮
 9     connect(ui->btn_toolBox,&QPushButton::clicked,this,[=](){
10         ui->stackedWidget->setCurrentIndex(2);
11     });
12     //tabWidget按钮
13     connect(ui->btn_tabWodget,&QPushButton::clicked,this,[=](){
14         ui->stackedWidget->setCurrentIndex(0);
15     });
  • Containers -> Dock Widget:浮动窗口
  • Input Widgets -> Combo Box:下拉框
 1     //下拉框
 2     ui->comboBox->addItem("奔驰");  //"comboBox"是添加的下拉框的变量名
 3     ui->comboBox->addItem("宝马");
 4     ui->comboBox->addItem("拖拉机");
 5 
 6     //点击按钮 选中拖拉机选项
 7     connect(ui->btn_selecttlj,&QPushButton::clicked,this,[=](){
 8         //第一种方法
 9         //ui->comboBox->setCurrentIndex(2);
10         //第二种方法
11         ui->comboBox->setCurrentText("拖拉机");    //但是这里面的文字是要在上面设置过的,没有addItem过的文字 点击按钮之后不会显示
12     });
  • Input Widgets -> Line Edit:单行输入框;"echoMode"可以改变输入模式(密码,正常...)
  • Input Widgets -> Text Edit:可输入多行文本(可以加粗 倾斜 下划线等)
  • Input Widgets -> Plain Text Edit:纯文本
  • Input Widgets -> Spin Box:数字的加减
  • Input Widgets -> Time Edit, Date Edit, Date/Time Edit
  • Input Widgets -> Horizontal Scroll Bar, Vertical Scroll Bar, Horizontal Slider, Vertical Slider:水平或竖直的滚动条
  • Display Widgets -> Label
 //利用QLabel显示图片
    ui->label->setPixmap(QPixmap(":/QtRes/03.jpeg"));  //"label"是添加的Label的变量名

 

如果图片没有在label中显示全,可以在ui编辑界面中把"scaledContents"勾选上

1     //利用QLabel显示gif动图
2     QMovie * movie = new QMovie(":/QtRes/06.gif");
3     ui->lbl_movie->setMovie(movie);  //lbl_movie是变量名
4     //此时运行还不会显示
5     //播放动图
6     movie->start();  

(〃>_<;〃)(〃>_<;〃)(〃>_<;〃)

posted @ 2023-03-31 20:39  我会变强的  阅读(284)  评论(0编辑  收藏  举报