03. 基本控件-下

基本控件-下

一、DisplayWidgets显示控件

  1. lable

    • 作用就是用来显示一些文字的,或者用来贴图

    • lable通过setText设置文字内容

      ui->label->setText("内容");
      
    • lable通过setPixmap设置图片

      QPixmap mImage=QPixmap(":/image/C:/Users/yxd/Desktop/image/png/chudai.png");//这个是图片从资源中设置的路径
      ui->label->setScaledContents(true);//设置可以缩放
      ui->label->setPixmap(mImage);
      
    • lable通过setMovie设置gif图片

      QMovie *pMovie=new QMovie(":/image/C:/Users/yxd/Desktop/image/gif/C++.gif");
      ui->label->setFixedSize(300,168);//动图设置一下大小
      ui->label->setMovie(pMovie);
      pMovie->start();
      
    • 可以在属性里的pixmap中直接选资源中的图片

  2. textbrowser

    • 提供了一个带有超文本导航的富文本浏览器
  3. LCD number

    • 显示液晶字体的数字

    • 可以在属性中的digitCount中设置大小

    • //设置时间
      ui->lcdNumber->display(QTime::currentTime().toString("hh:mm:ss"));
      
      ui->lcdNumber->display(QTime::currentTime().toString("hh:mm:ss:zzz"));
      
  4. progressBar

    • 通过F4模式,关联滚动条,根据progressBar来进行移动的

    • 属性

      • alignment:对齐方式
      • textVisble:是否显示文字
      • orentation:文字显示方向
    • setMaximum(int)//设置最大值
      setValue(int)//设置值
      setMinimum(int)//设置最小值
      

二、Containers控件(容器)

  1. QGroupBox

    • QGroupBox为构建分组提供了支持,通常包含一个边框和一个标题栏,作为容器部件来使用,在其中可 以布置各种窗口部件。
    • 属性
      • alignment:对齐方式
      • flat:是否有平行线
  2. scrollArea

    • QScrollArea 提供了一个滚动视图到另外一个部件,滚动区域用于显示一个画面中的子部件的内容。如 果部件超过画面的大小,视图可以提供滚动条,这样就都可以看到部件的整个区域。

    • 开始是不会显示出来得要自己设置这两个垂直滚动条和水平滚动条

      • 在属性-QAbstractScrollArea中设置水平和垂直的滚动条
    • QLabel *pImageLable = new QLabel(this);
      pImageLable->setPixmap(QPixmap(":/png/chudai.png"));
      ui->scrollArea->setWidget(pImageLable);
      
  3. toolBox

    • QToolBox类提供了一个选项卡式的条目。QToolBox可以在一个tab列上显示多个Item,并且当前的 item显示在当前的tab下面。每个tab都在tab列中有一个索引位置。tab的item是一个QWidget,类似QQ 好友栏得显示

    • QPushButton*pushButton=new QPushButton(this);
      ui->toolBox->insertItem(3,pushButton,"顶顶顶顶");
      //在第三个位子插入一个页名字位 顶顶顶顶 里面有一个pushbutton
      
  4. tabWidget

    • QTabWidget类提供了一系列的Tab选项卡的切换,每个选项卡下有自己的控件;原理和toolBox一样, 类似任务管理器
    • 属性:
      • tabPosition:方向
      • tabShape:倒角
      • elideMode:省略方式
      • usesScrollButtons:缩小时是否需要切换
      • tabsClosable:是否需要关闭按钮
      • moveable:页与页之间是否可移动
      • tabBarAutoHide:缩小时是否需要隐藏
    • 可以直接往上面拖控件,不需要像mfc那样创建窗,口然后一个一个的加
  5. stackedWidget

    • QStackedWidget理解为层叠窗口(堆栈窗口),提供了多页面切换的布局,每个选项卡下有自己的控 件, StackedWidget类提供了多页面切换的布局,一次只能看到一个界面。
    • 在写代码的时候点控件左右两边的翻页小箭头也能切换,控件还是直接拖动上面去就好
    • 需要添加页的时候直接右键插入页
    • ui->stackedWidget->setCurrentIndex(0); //从0开始数,要第几页就是几
  6. qFrame

    • QFrame类是带有边框的部件的基类。它的子类有我们最为常用的标签部件QLabel,另外还有 QLCDNumber、QSplitter、QStackedWidget、QToolBox和QAbstractScrollArea类。带边框部件最主 要的特点就是可以有一个明显的边界框架。Frame类的主要功能也就是用来实现不同的边框效果,这主 要是由边框形状(Shape)和边框阴影(Shadow)组合来形成的。
  7. qWidget

    • QWidget类是所有用户界面对象的基类被称为基础窗口部件它可以作为其他部件 的容器QWidget继承自 QObject类和QPaintDevice类其中QObject类是所有支持Qt 对象模型(Qt Object Model)的Qt对象的 的基类,QPaintDevice类是所有可以绘制的 对象的基类。
  8. mdiArea

    • QMdiArea一般使用于主窗口中,用于容纳多个子窗口
    • 添加完之后直接往添加出来的窗口上添加控件就能用了
    • 如果在子窗口上有一个控件,那么访问这个控件还是通过ui去访问
  9. dockwidget

    • QDockWidget类;理解为悬浮(停靠)窗口,提供了一个特殊的窗口部件,它可以是被锁在 QMainWindow窗口内部或者是作为顶级窗口悬浮在桌面上。只能使用minwindow类才有,详细示例可查看官方示例
  10. axwidget

    • Qt的windows商业版本提供了ActiveQt这个framework,使用这个组件我们可以在Qt中使用ActiveX控 件,并且也开发基于Qt的ActiveX控件。
    • QAxContainer不包含在QtCore里面,所以要使用QAxContainer的话还必须要在.pro文件中添加 CONFIG+=qaxcontainer
    • 不能跨平台,谨慎使用!
    • 如何通过axWidget 做一个pdf浏览器,前提是要装adobe Pdf浏览器;

三、Item Widget控件(列表)

  1. listWIdget

    • QListWidget类列表框控件用来加载并显示多个列表项。QListWidgetItem类就是列表项类

    • 双击可以直接修改,添加多少行,也有属性可以修改字体颜色大小等等

    • additem//添加一行尾部添加
      insertItem//在某个位子添加一行
      removeItemWidget//移除行
      //信号:
      currentRowChanged(int currentRow)//选中的行有改变
      itemSelectionChanged()//选中的项有改变
      
  2. treewidget

    • 树,直接双击就能添加,要加图标就在属性里面

    • 得到选中的内容

      //消息:
      itemClicked(QTreeWidgetItem *item, int column)
      //实现:
      qDebug()<<item->text(column);
      
  3. tableWidget

    • 类似电子表格

    • ui->tableWidget_stuInfo->horizontalHeader()->setStyleSheet("border-bottom-width:
      0.5px;border-style: outset;border-color: rgb(229,229,229);");
      //表头下面的那根线
      ui->tableWidget_stuInfo->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); //自动适应列宽
      ui->tableWidget_stuInfo->verticalHeader()->setHidden(true);
      //隐藏默认行头
      ui->tableWidget_stuInfo->setEditTriggers(QAbstractItemView::NoEditTriggers);
      //整个表不能被编辑
      //表头到第0行的线
      ui->tableWidget_stuInfo->horizontalHeader()->setStyleSheet("border-bottomwidth: 0.5px;border-style: outset;border-color: rgb(229,229,229);");
      
    • for(int i=0;i<ui->tableWidget->rowCount()+1;i++)//行
      {
          for(int j=0;j<ui->tableWidget->columnCount();j++)//列
          {
              if(ui->tableWidget->item(i,j)!=nullptr)
              {
              	qDebug()<<ui->tableWidget->item(i,j)->text();
              }
          }
      }
      
posted @ 2022-07-28 18:40  Quirkygbl  阅读(72)  评论(0编辑  收藏  举报