大宇私人领地伊甸园丨宁愿做了后悔,也不要错过后悔[www.mrdayu.com]
注册

24小时联系邮箱:[email protected]

所有文章
大宇私人伊甸园: 首页 > 所有文章 > 编程人生 > 系统架构 > QT > 《大宇:Qt入门到精通》 > [003.07]内置的窗口部件和对话框类的介绍

[003.07]内置的窗口部件和对话框类的介绍

发布时间:2017/12/27 《大宇:Qt入门到精通》 所有文章 标签qt阅读:606

引:今天学习的主要内容是Qt内置窗口部件和对话框类的介绍

四种常见类型按钮:

按钮简介:按钮为常见点击某个按钮触发一定的事件的触发器。如下一共6总,常用到的为详细图形介绍的4种。

QPushbutton

QToolButton

RadioButton

QCheckButton

QPushButton:最常见按钮

QToolButton:提供了用于命令或者选项的可以快速访问的按钮,通常可以用在QToolBar里面。

QRadioButton:提供了一个带有文本标签的单选框(单选按钮),在一组单选框中,一次只能选中一个单选框。

QCheckBox:它继承了 QAbstractButton 类,因此也有其全部的属性、信号和槽,在一组复选框中,一次能选中多个组选框。

Qt容器窗口部件:

 


QGroupBox:

 

 

  • QGroupBox窗口部件提供了一个有标题的组合框。
  • 组合框提供一个框架、一个标题和一个键盘快捷键
  • 并且显示在它里面地其它不同窗口部件。
  • 标题在上面,键盘快捷键移动键盘焦点到组合框的一个子窗口部件
  • 并且子窗口部件将会排列在这个框架中地一个数组中。

QFrame:

 

  • qframe  其他基类的一个小窗口
  • 有一个框架,像菜单可以在屏幕周围
  • 像滚动条有一个凹陷
  • 像label一样有一个浮动
  • QFrame类是有框架的窗口部件的基类。

QTabWidget

 

  • QTabWidget类提供了一堆选项卡式窗口部件
  • 一个选项卡部件提供了一个标签栏(见QTabBar)和一个“页面区”,用于显示与每个选项卡页面。
  • 默认情况下,标签栏显示在页面区上方,但是可以使用配置改变这种默认方式(见TabPosition)。
  • 每个选项卡都是关联到一个不同的窗口小部件(页面)。
  • 只有当前页显示在页面区域;所有其他页面都是隐藏的。

QToolBox

 

 

  • QToolBox可以在一个tab列上显示另外一个
  • 并且当前的item显示在当前的tab下面
  • 每个tab都在tab列中有一个索引位置
  • tab的item是一个QWidget 。

 


Qt的多页容器窗口部件:

多页容器可分为View和Widget类型,两种部件都是实现同一种效果,不同的是:

**View是基于Model,而**Widget是基于Item。这是它们的本质区别。

拿一个简单的QListView和QListWidget做比较:

 

后面会有专题介绍,所以这里只是提到一句,以便有个笼统的了解。

 


由于:
QListView使用UI拖出来的界面点击显示会是空白
所以我在form.cpp的构造函数里面添加了一些代码,使得List里面有值。

QStringList user;
user += "first";
user +="second";
user +="three";
user+="大宇";
QStringListModel *model = new QStringListModel(user);
ui->userList->setModel(model); //useList是个QListView
user += "third";
model->setStringList(user);
QListView

QTreeView:

QTableView:

QColumnView:

 在cpp文件添加如下代码:
    QStandardItemModel model;

       for (int groupnum = 0; groupnum < 3 ; ++groupnum)
       {
           /* Create the phone groups as QStandardItems */
           QStandardItem *group = new QStandardItem(QString("Group %1").arg(groupnum));

           /* Append to each group 5 person as children */
           for (int personnum = 0; personnum < 5 ; ++personnum)
           {
               QStandardItem *child = new QStandardItem(QString("Person %1 (group %2)").arg(personnum).arg(groupnum));
               /* the appendRow function appends the child as new row */
               group->appendRow(child);
           }
           /* append group as new row to the model. model takes the ownership of the item */
           model.appendRow(group);
       }

       ui->cview->setModel(&model);

Qt项的视图窗口部件:

QLable:可显示文字,可显示图片

QLCDNumber:

QProgressBar:

QTextBrowser:继承QTextEdit的,它提供了更多的功能,主要是增加了导航功能,如超链接功能等。

数据输入的窗体部件:

QSpinBox:

QDoubleSpinBox:与SpinBox区别在于步进每次增加整数还是小数。

 

QComboBox:相信之前的案例已经使用过很多次,如果还有不清楚的同学可以翻看之前的小demo例子。这里只是介绍Qt类型的实现效果,所以不进行太多的描述。

QDateEdit和QTimeEdit:

 

QDateTimeEdit:就如上图将两个时间放到一个栏中。

QScrollBar:

QSlider:

QTextEdit:文本输入,如记事本
QLineEdit:输入框,只有一行
QDial:

当然,还有一些其他的弹出对话框,以及一些反映对话框,由于非设计师界面类的部件,在后面还会有更详细的介绍,我这里就先讲到这里吧。

 

The bottom line, for me, is simple.

Let’s hope it doesn’t take 500 years for a discipline of testing to becomes the standard for software developers.

From:dayu

您好!请登录

合作网站快捷登录:
点击取消回复

已有0评论

    大宇博客

    点击这里给我发消息 点击这里给我发消息 点击这里给我发消息 点击这里给我发消息