常用界面设计组件

常用界面设计组件

字符串与输入输出

如:QLabe,QLineEdit

QString text() const;
void setText(const QString&);

字符串与数值间转换

(1). 普通数值与字符串之间转换,QString::toX(...)
(2). 格式化字符串,QString::sprintf
(3). 进制转换,QString::toX(...)可指定进制,来指定对字符串内容的解释方式,得到的结果是十进制的setNum(...)对给定10进制值按指定进制进行解释.

QString常用功能

QString存储字符串采用Unicode码,每个字符是一个16QChar

方法:append/prepend/toUpper/toLower/count/size/length/trimmed/simplified/indexOf/lastIndexOf/isNull/isEmpty
对空字符串,不属于Null,但属于Empty
对未赋值字符串,属于Null,也属于Empty
方法:contains/left/right/section

SpinBox

用于整数的显示和输入.
一般显示十进制,可显示二进制,十六进制,也可在显示框增加前缀后缀.
QDoubleSpinBox用于浮点数显示和输入,可设置小数位数,可设置显示前缀和后缀.

QSpinBoxQDoubleSpinBox主要属性:

名字描述
prefix前缀
suffix后缀
minimum最小值
maximum最大值
singlestep单步改变值
value当前显示值
displayIntegerBase显示值基数
decimals显示数值小数位数

其他数值输入和显示组件

实例功能

(1). QSlider
(2). QScrolBar
(3). QProgressBar
(4). QDial
(5). QLCDNumber

各组件的主要功能和属性

QSlider

QAbstractSlider
(1). minimum, maximum
(2). singleStep
(3). pageStep
(4). value
(5). sliderPosition
(6). tracking
(7). orientation
(8). invertedAppearance
(9). invertedControls

QSlider专有属性
(1). tickPosition
(2). tickInterval

QScrollBar
QDial
QProgressBar

一般用于进度显示
(1). minimum, maximum
(2). value
(3). textVisible
(4). orientation
(5). format

QLCDNumber

实例功能的代码实现

时间日期与定时器

时间日期相关的类

类型描述
QTime如15:23:13
QDate如2017-4-5
QDateTime如2017-03-23 08:12:43

Qt中专门用于日期,时间编辑和显示的界面组件
(1). QTimeEdit
(2). QDateEdit
(3). QDateTimeEdit
(4). QCalendarWidget,一个日历形式选择日期的组件.

定时器用来处理周期性事件的一种对象.如QTimer,timeout()信号.

日期时间数据与字符串之间的转换

时间,日期编辑器属性设置

QDateTimeEdit类的主要属性:
(1). datetime:日期时间
(2). date:日期
(3). time:时间
(4). maximumDateTime, minimumDateTime:最大最小日期时间
(5). maximumDate,minimumDate
(6). maximumTime, minimumTime
(7). currentSection:当前输入光标所在的时间日期数据段,是枚举类型QDateTimeEdit::Section
(8). currentSectionIndex
(9). calendarPopup
(10). displayFormat

日期时间数据的获取与转换为字符串

如:QDateTime::currentDateTime()
如:QDateTime::toString()// hh:mm:ss/yyyy-MM-dd/yyyy-MM-dd hh:mm:ss

字符意义
d1-31
dd01-31
M1-12
MM01-12
yy00-99
yyyy
h0-23/1-12 [AM/PM]
hh
H0-23
HH
m0-59
mm
z毫秒,0-999
zzz
AP或A
ap或a
字符串转换为日期时间

如:QDateTime QDateTime::fromString(const QString& str, const QString& for);

QCalendarWidget

定时器

QTimer,主要属性是interval
timeout()信号,start/stop

QComboBox和QPlainTextEdit

实例功能概述

QComboBox提供下拉列表供用户选择,也可当QLineEdit作输入.
每个项可关联一个QVariant变量,QPlainText是一个多行文本编辑器

QComboBox

设计时属性设置
代码

如:addItem,addItems

添加具有用户数据的项

如:QComboBox::addItem,void addItem

QComboBox列表项访问

(1). int currentIndex()
(2). QString currentText()
(3). QVariant currentData(int role = Qt::UserRole)
(4). QString itemText(int index)
(5). QVariant itemData(int index, int role = Qt::Qt::UserRole)
(6). int count()
(7). void currentIndexChanged

QPlainTextEdit

QPlainTextEdit

appendPlainText添加一行字符串
访问方法:cut/copy/paste/undo/redo/clear/selectAll/...
右键菜单

逐行读取
QString QPlainTextEdit::toPlainText() const
QTextDocument document()
QTextDocument
int blockCount()
QTextBlock findBlockByNumber(int)
QTextBlock
QString text()

QPlainTextEdit自带菜单

QMenu* createStandardContextMenu()

菜单显示

QMenu
void exec(const QPoint&)	

QListWidget和QToolButton

实例功能简介

Qt中用于项处理的组件有两类,
(1). 一类是Item Views
基于模型/视图结构
(2). 一类是Item Widgets
直接将数据存储在项里
一个项存储了文字,文字的格式,自定义数据等

界面设计

混合式界面设计
QToolBox组件的设置

(1). currentIndex
(2). currentItemText
(3). currentItemName
(4). currentItemIcon

QTabWidget

(1). tabPosition
(2). currentIndex
(3). currentTabText
(4). currentTabName
(5). currentTabIcon

QSplitter
QListWidget
Action

QListWidget

初始化列表

如:clear,addItem

插入项

如:QIcon,QListWidgetItem,insertItem,currentRow

删除当前项和清空列表

QListWidgetItem* takeItem() 移除,如不使用,需delete返回的指针.clear

遍历并选择项

如:QListWidgetItem item(int)

QListWidget常用信号

(1). currentRowChanged(int)
(2). currentItemChanged(..)
(3). currentTextChanged(...)

QToolButton与下拉式菜单

QToolButton关联QAction

QToolButtonvoid setDefaultAction(QAction*);

为QToolButton设计下拉菜单
QMenu
	void addAction(..)
QToolButton
	void setPopupMode(..)
	void setToolButtonStyle(...)
	void setDefaultAction(...)
	void setMenu(...)
QToolBar
	void addWidget(...)
	void addSeparator()
	void addAction(...)

创建右键快捷菜单

每个从QWidget继承的类有信号customContextMenuRequested()
这个信号在鼠标右击时发射

QTreeWidget和QDockWidget

QLabel,QTreeWidget,QDockWidget 停靠,QLabel,QPixmap

界面设计

界面布局设计

如:QDockWidget,QScrollArea

QDockWidget组件属性设置

(1). allowedAreas,设置允许停靠区域
QDockWidget,有void setAllowedAreas(...)
(2). features
QDockWidget,有void setFeatures(...)

QTreeWidget组件设置
Action设计

QTreeWidget操作

本实例的目录树节点操作规则

如:QPixmap

目录树初始化添加顶层节点

QTreeWidgetItem,自定义节点类型值必须大于1000
支持setIcon,setText,setFlags,setData

QTreeWidget,支持void addTopLevelItem()

添加目录节点
添加图片文件节点
当前节点变化后的响应

QTreeWidget,有currentItemChanged()

删除节点

QTreeWidgetItem,有void removeChild(...)

QTreeWidget::takeTopLevelItem(int index),被从多叉树上移除的QTreeWidgetItem需要显式释放

节点的遍历

QTreeWidgetItem支持QString text(..),void setText(..),void childCount()
QTreeWidget支持int topLevelItemCount(),QTreeWidgetItem* topLevelItem(..)
QTreeWidget按责任链模式维护一个多叉树集合构成的森林,森林的遍历

QLabel和QPixmap

显示节点关联的图片

QTreeWidgetItem支持QVariant data(....)
QPixmap支持void load(..)

图片缩放与显示

QPixmap支持QPixmap scaledToHeight(..),QPixmap scaledToWidth(..),QPixmap scaled(...),int width(),int height()
QLabel支持void setPixmap(...)

QDockWidget

单击DockWidget组件标题栏关闭按钮时,会隐藏停靠区,并发射信号visibilityChanged(..)
拖动DockWidget组件,使其浮动或停靠时,会发射信号topLevelChanged(...)

QTableWidget

QTableWidget

QTableWidget表格中,每个单元格是一个QTableWidgetItem对象
每个单元格还可存储一个QVariant

界面设计与初始化

如:QGroupBox

QTableWidget

设置表头

QTableWidgetItem支持QFont font(),void setTextColor(..),void setFont(...)
QFont支持void setBold(..),void setPointSize(...)
QTableWidget支持void setColumnCount(...),int columuCount(),void setHorizontalHeaderItem(...),void setHorizontalHeaderLabels(...)
如需更具体设置,需为行表头的每个单元格创建一个QTableWidgetItem
在一个表格中,不管是表头还是工作区,每个单元格都是一个QTableWidgetItem
QTableWidgetItem存储了单元格的所有内容,包括字标题,格式设置,关联的数据

初始化表格数据

QDate支持QString toString(...)
QTableWidget支持void clearContents(),int rowCount()
QString,支持QString asprintf(...)

QTableWidgetItem支持void setTextAlignment(...),void setData(...),void setIcon(...),void setCheckState(...),void setBackgroundColor(..),void setBackground(...),void setForeground(...),void setIcon(...),void setFont(...),void setFlags(...)

QTableWidget支持void setItem(...)

获得当前单元格数据

QTabWidget支持int currentColumn(),int currentRow(),QTabWidgetItem* item(...)
对信号,currentCellChanged(),currentItemChanged()

QTabWidgetItem支持int type().. data(..)

插入,添加,删除行

QTableWidget处理行操作:insertRow(..),removeRow(...)

自动调整行高和列宽

QTableWidget有几个函数自动调整表格的行高和列宽
(1). resizeColumnsToContents() 自动调整所有列宽度,以适应其内容
(2). resizeColumnToContents(..)
(3). resizeRowsToContents()
(4). resizeRowToContents(...)

其他属性控制

(1). 设置表格内容是否可编辑:
QTableWidgetEditTriggers属性表示是否可编辑,及进入编辑状态的方式
QTableWidget支持void setEditTriggers(..)

QAbstractItemView支持DoubleClicked/SelectedClicked/NoEditTriggers
(2). 设置行表头,列表头是否显示
QTabWidget,支持horizontalHeader()/verticalHeader()获取列表头,然后设置其可见性
(3). 间隔行底色
QTableWidget支持void setAlternatingRowColors(..)
(4). 选择模式
单元格选择还是行选择
QTableWidget支持void setSelectionBehavior(...)

QAbstractItemView支持SelectItems,SelectRows

遍历表格读取数据

QTabeWidgetItem,支持QString text()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

raindayinrain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值