- 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();
(〃>_<;〃)(〃>_<;〃)(〃>_<;〃)
标签:控件,Widget,Qt,QTableWidget,tableWidget,ui,Widgets,Input From: https://www.cnblogs.com/wjjgame/p/17274057.html