常用界面设计组件
字符串与输入输出
如:QLabe,QLineEdit
QString text() const;
void setText(const QString&);
字符串与数值间转换
(1). 普通数值与字符串之间转换,QString::toX(...)
.
(2). 格式化字符串,QString::sprintf
.
(3). 进制转换,QString::toX(...)
可指定进制,来指定对字符串内容的解释方式,得到的结果是十进制的setNum(...)
对给定10
进制值按指定进制进行解释.
QString常用功能
QString
存储字符串采用Unicode
码,每个字符是一个16
位QChar
.
方法:append/prepend/toUpper/toLower/count/size/length/trimmed/simplified/indexOf/lastIndexOf/isNull/isEmpty
.
对空字符串,不属于Null
,但属于Empty
.
对未赋值字符串,属于Null
,也属于Empty
.
方法:contains/left/right/section
.
SpinBox
用于整数的显示和输入.
一般显示十进制,可显示二进制,十六进制,也可在显示框增加前缀后缀.
QDoubleSpinBox
用于浮点数显示和输入,可设置小数位数,可设置显示前缀和后缀.
QSpinBox
和QDoubleSpinBox
主要属性:
名字 | 描述 |
---|---|
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
字符 | 意义 |
---|---|
d | 1-31 |
dd | 01-31 |
M | 1-12 |
MM | 01-12 |
yy | 00-99 |
yyyy | |
h | 0-23/1-12 [AM/PM] |
hh | |
H | 0-23 |
HH | |
m | 0-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
QToolButton
:void 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). 设置表格内容是否可编辑:
QTableWidget
的EditTriggers
属性表示是否可编辑,及进入编辑状态的方式
对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()