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

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

时间:2023-03-31 20:44:59浏览次数:37  
标签:控件 Widget Qt QTableWidget tableWidget ui Widgets Input

  • 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

相关文章

  • Qt调用摄像头二,Pro版
    本示例,为纯Qt调用摄像头,功能会比版本一要多一点:打开摄像头,设置参数,完整拍照,框选拍照,切换分辨率,旋转,水平镜像,垂直镜像,放大,缩小上一个版本,使用的显示窗口直接显示出摄像头画面,所以可操作性有限,没关系,这个版本使用的另一种方法:打开设备,获取视频帧,自己把视频帧画上去,这样就操作的东......
  • Qt音视频开发32-qmedia内核回调拿图片数据
    一、前言使用qmediaplayer来打开视频并播放,默认首选会采用QVideoWidget控件来展示,优点是不用自己来绘制,一切交给了QVideoWidget控件,这样可以做到极低的CPU占用,缺点也明显,就是无法拿到每一帧的图片,很多时候我们还需要主动拿到每一帧的图片来运算做人工智能,通过不断的截图虽然也能......
  • qt窗体的移动
    /// <summary>    /// 获得鼠标按下事件    /// </summary>    /// <param name=""></param>    void  mousePressEvent(QMouseEvent*) override; /// <summary> /// 获得鼠标移动事件 /// </summary> /// <param name=""......
  • 时钟小程序 所用类qwidget QTime Qpalette
    DigiClock::DigiClock(QWidget&nbsp;*parent) :&nbsp;QLCDNumber(parent){ //设置时钟背景 QPalette&nbsp;p&nbsp;=&nbsp;palette();<br/>//设置调色板颜色QPalette::Window设置背景色 p.setColor(QPalette::Window,&nbsp;Qt::blue);<br/>......
  • c# mqtt高性能服务器端源代码 开源框架包括服务器和客户端,支持mqtt3.0及5.0
    c#mqtt高性能服务器端源代码。你还在使用第三方服务软件吗?不如试试这个开发框架,助你一臂之力,无限制,无全开源,无版权约束,全是自主开发。开源框架包括服务器和客户端,支持mqtt3.0及5.0。可嵌入到自己的服务系统及软件客户端中,不受第三方约束。你要问我稳定性如何?我能回答的是已经......
  • Qt读串口数据耗时测试
        QTimer*timer=newQTimer();   connect(timer,SIGNAL(timeout()),this,SLOT(OnTimeoutSendDataToRadio1()));   timer->start(1000);   qDebug()<<"StartTimer...";   m_pSerialPortWK3=newQSerialPort();   connect(m_pSerialPortWK......
  • 使用UI Automation实现自动化测试 --微软提供的控件Pattern
    微软提供的控件PatternSystem.Windows.Automation命名空间System.Windows.Automation.BasePattern为控件模式类提供基实现System.Windows.Automation.DockPattern表示在某个停靠容器内公开其停靠属性的控件System.Windows.Automation.ExpandCollapsePatte......
  • Android中在控件上显示倒计时
    Android中在控件上显示倒计时Android中在控件上显示倒计时publicclassCountdownTimerActivityextendsActivity{privateTimeCounttime;privateButtonchecking;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){//TODOAuto-generatedmethodst......
  • ASEMI代理NXP汽车芯片FS32K146HAT0MLQT
    编辑-ZFS32K146HAT0MLQT电源管理:–低功耗ArmCortex-M4F/M0+内核,能效卓越–具有多种电源模式的电源管理控制器(PMC):HSRUN、RUN、STOP、VLPR和VLPS。注意:CSEc(安全)或EEPROM写入/擦除将在HSRUN模式(112MHz)下触发错误标志,因为不允许同时执行此用例。该设备需要切换到RUN(运行)模式(80兆赫......
  • 直播平台源码,qt绘画事件-设置背景图片
    直播平台源码,qt绘画事件-设置背景图片头文件 voidpaintEvent(QPaintEvent*);​cpp文件: voidMainWindow::paintEvent(QPaintEvent*){    //创建画家,指......