目录
一、QLabel-显示文本或图像的控件:
1.1QLabel介绍:
- QLabel 是 Qt 框架中的一个控件类,用于显示文本或图像。
- 他继承自QWidget,所以可以使用QWidget的方法。
- 基础属性有:
1.2设置文本格式——textFormat属性:
- textFormat 属性用于设置标签中显示文本的格式。他是一个枚举类型。
- 默认的格式为AutoText:
Qt::AutoText 自动检测文本格式。 Qt::PlainText 将文本视为纯文本。 Qt::RichText 将文本视为富文本(HTML 格式)。 Qt::MarkDownText 将文本视为makedown格式。
- 获取label控件的文本格式:
Qt::TextFormat format=label->textFormat();
- 设置label控件的文本格式:
label->setTextFormat(Qt::AutoText/PlainText/RichText/MarkDownText);
1.3设置图片——pixmap属性:
- pixmap 属性用于显示图像。使用 pixmap 属性将一个 QPixmap 对象设置为label的内容,从而在label中显示图像。
- 建议使用QRC机制管理的图片,来设置为label的内容。
label->setPixmap(QPixmap(": + 后缀 + 相对路径"));
1.4自动缩放——scaledContents属性:
scaledContents 是 QLabel 类中的一个布尔属性,用于控制标签中显示的图像或文本是否自动缩放以适应标签的大小。
当 scaledContents 设置为 true 时,QLabel 会自动调整显示的内容(图像或文本)的大小,使其完全适应标签的大小。
默认情况下,scaledContents 的值为 false,这意味着标签中的内容将以其原始尺寸显示。
ui->label->setScaledContents(true);
拓展:resizeEvent方法:
- resizeEvent 是 QWidget 类中的一个虚方法。使用要包含头文件<QResizeEvent>。
- 当窗口小部件的大小发生变化时,该方法会被自动调用。通过重写这个方法,可以自定义控件在调整大小时的行为。
void Widget::resizeEvent(QResizeEvent* event) { ui->label->setGeometry(0,0,event->size().width(),event->size().height()); } //上述代码,设置了一个label控件,可以让该控件的宽和高随着窗口的改变而改变
- 这个函数被自动调用后,可以通过event->size()来获取控件新的大小。
- event->size()->width() 和 event->size()->height()可以获取新的宽度和高度。
1.5内容对齐方式——alignment属性:
- alignment 属性用于设置标签中文本或内容的对齐方式。这个属性接受枚举类型的值,可以控制内容在标签中的水平和垂直对齐。
- 设置对齐方式:
label->setAlignment(Qt::AlignCenter);
- 可以设置的属性有:
- 以下是一个例子:
1.6 自动换行——wordWrap属性:
- wordWrap属性,用于控制标签中的文本是否自动换行。
- 当文本的长度超过标签的宽度时,如果 wordWrap 属性设置为 true,文本会自动换行显示;如果设置为 false,文本会截断或溢出标签的边界。
- 设置自动换行:
label->setWordWrap(true);
- 获取 wordWrap 属性:
bool isWordWrapEnabled = label->wordWrap();
- 汉字可以自动换行。
- 长串的数字或字母有时不会自动换行,这是由于系统会尝试在不破坏单词的前提下进行换行。
- 文本中的空格和标点符号(如句号、逗号、冒号等)是常见的换行点。当文本遇到这些字符时,系统会优先在这些位置进行换行。
1.7 文本缩进——indent 属性:
- indent 属性用于控制控件中的文本缩进,缩进的单位是像素。
- 默认情况下,indent 属性为 -1,表示没有缩进。
- 这样设置的缩进,并非只有首行缩进,当和自动换行联合使用时,每一行都会被缩进指定像素数量。
- 设置文本缩进格式:
label2->setIndent(20); //20像素的缩进
1.8 设置控件边距或留白区域——margin属性:
- margin用于指定控件的边框与文本内容之间的空白区域的大小。,默认值为0。
- 需要注意的是,设置留白区域之后,剩余的区域如果不够所有文本的显示,多余的文本会被截断。
- 设置 margin 属性:
label2->setMargin(20);
二、QLCDNumber -显示数字的特殊控件:
2.1QLCDNumber介绍:
- QLCDNumber 控件是 Qt 中用于显示数字的特殊控件。
- 通常用于显示需要精确控制格式和显示方式的数字。它提供了一种类似数字显示器或LCD屏幕的视觉效果,适合显示整数或浮点数。
smallDecimalPoint 控制小数点的显示大小。如果设置为 true,小数点将以较小的尺寸显示。 digitCount 设置显示数字的位数。这包括整数位和小数位的总数。 mode 控制显示数字的模式,可以是十进制(Dec)、十六进制(Hex)、八进制(Oct)或二进制(Bin)。 segmentStyle 设置显示数字的样式。 value 获取或设置 QLCDNumber 显示的当前值。可以是浮点数。 intValue 获取 QLCDNumber 显示的当前整数值。如果当前显示的是浮点数,将返回其整数部分。
2.2实例——倒计时小程序:
- 拉一个QLcdNumber组件到ui界面。
Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); //设置初始显示的数值 ui->lcdNumber->display(6); //创建一个定时器,并将它挂到对象树上 timer=new QTimer(this); //将定时器和处理函数绑定 connect(timer,&QTimer::timeout,this,&Widget::handle); //设置定时器的启动间隔 timer->start(1000); } void Widget::handle() { //获取当前显示的数值 int val=ui->lcdNumber->intValue(); //如果数值不大于0,就停止计时器 if(val<=0) { timer->stop(); return; } //重新设置显示的数值 ui->lcdNumber->display(val-1); }
- 定时器QTimer使用需要包含头文件<QTimer>
三、QProgressBar-进度条:
3.1QProgressBar介绍:
- QProgressBar 是 Qt 库中用于显示进度的控件。它可以用来表示任务的进度。
- 通常以填充条的形式显示,表示从 0 到 100 的百分比。
3.2属性介绍:
minimum
- 进度条的最小值。
- setMinimum(int min) 设置最小值
- minimum() 获取当前最小值。
maximum
- 进度条的最大值。
- setMaximum(int max) 设置最大值
- maximum() 获取当前最大值。
value
- 进度条的当前值。
- setValue(int value) 设置当前值
- value() 获取当前值。
alignment
- 进度条文本的对齐方式。
- setAlignment(Qt::Alignment alignment) 设置对齐方式
- alignment() 获取当前对齐方式。
- 常见对齐方式有 Qt::AlignLeft、Qt::AlignRight 和 Qt::AlignCenter。
textVisible
- 进度条上是否显示文本。
- setTextVisible(bool visible) 设置文本显示状态.
- isTextVisible() 获取当前文本显示状态。
orientation
- 进度条的方向(水平或垂直)。
- setOrientation(Qt::Orientation orientation) 设置方向。
- orientation() 获取当前方向。常用方向有 Qt::Horizontal 和 Qt::Vertical。
invertedAppearance
- 进度条的外观是否反转。如果为 true,则进度条从右到左或从下到上填充。
- setInvertedAppearance(bool invert) 设置外观是否反转。
- invertedAppearance() 获取当前外观是否反转。
textDirection
- 进度条文本的方向(从左到右或从右到左)。
- setTextDirection(QProgressBar::Direction textDirection) 设置文本方向。
- textDirection() 获取当前文本方向。常用方向有 QProgressBar::TopToBottom 和 QProgressBar::BottomToTop。
format
- 进度条上显示的文本格式。可以使用
%p
代表百分比。- setFormat(const QString &format) 设置文本格式。
- format() 获取当前文本格式。
3.3实例——简单的进度条:
Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); //创建定时器 timer=new QTimer(this); //连接到槽函数 connect(timer,&QTimer::timeout,this,&Widget::handle); //设置启动间隔 timer->start(100); } void Widget::handle() { //获取当前进度条数值 int val=ui->progressBar->value(); //大于等于100,停止定时器 if(val>=100) { timer->stop(); return; } //更新进度条 ui->progressBar->setValue(val+2); }
四、QCalendarWidget-日历:
4.1QCalendarWidget介绍:
- QCalendarWidget 是 Qt 库中的一个日期选择控件。
- 允许用户在一个日历界面中选择日期。
4.2属性介绍:
selectedDate
- 当前选中的日期。
- setSelectedDate(const QDate &date) 设置选中的日期
- selectedDate() 获取当前选中的日期。
minimumDate
- 日历控件允许选择的最小日期。
- setMinimumDate(const QDate &date) 设置最小日期
- minimumDate() 获取最小日期。
maximumDate
- 日历控件允许选择的最大日期。
- setMaximumDate(const QDate &date) 设置最大日期
- maximumDate() 获取最大日期。
firstDayOfWeek
- 一周的第一天
- setFirstDayOfWeek(Qt::DayOfWeek day) 设置一周的第一天
- firstDayOfWeek() 获取当前一周的第一天。
gridVisible
- 是否显示网格线。
- setGridVisible(bool show) 设置网格线显示状态
- isGridVisible() 获取网格线显示状态。
selectionMode
- 日历控件的选择模式。
- setSelectionMode(QCalendarWidget::SelectionMode mode) 设置选择模式.
- selectionMode() 获取当前选择模式。选择模式可以是 QCalendarWidget::NoSelection QCalendarWidget::SingleSelection。
horizontalHeaderFormat
- 水平标题的显示格式
- setHorizontalHeaderFormat(QCalendarWidget::HorizontalHeaderFormat format) 设置水平标题格式。
- horizontalHeaderFormat() 获取当前水平标题格式。格式可以是 QCalendarWidget::NoHorizontalHeader、QCalendarWidget::SingleLetterDayNames 或 QCalendarWidget::ShortDayNames。
verticalHeaderFormat
- 垂直标题的显示格式
- setVerticalHeaderFormat(QCalendarWidget::VerticalHeaderFormat format) 设置垂直标题格式。
- verticalHeaderFormat() 获取当前垂直标题格式。格式可以是 QCalendarWidget::NoVerticalHeader 或 QCalendarWidget::ISOWeekNumbers。
navigationBarVisible
- 是否显示导航栏。
- setNavigationBarVisible(bool visible) 设置导航栏显示状态。
- isNavigationBarVisible() 获取导航栏显示状态。
dateEditEnabled
- 是否启用日期编辑。
- setDateEditEnabled(bool enable) 设置日期编辑状态。
- isDateEditEnabled() 获取日期编辑状态。
dateEditAcceptDelay
- 日期编辑接受的延迟时间
- setDateEditAcceptDelay(int delay) 设置日期编辑接受的延迟时间
- dateEditAcceptDelay() 获取当前延迟时间。
4.3信号介绍:
selectionChanged() 当用户更改日历中的选定日期时发射此信号。 activated(const QDate &date) 当用户双击某个日期或按下 Enter 键时发射此信号。 clicked(const QDate &date) 当用户单击某个日期时发射此信号。 currentPageChanged(int year, int month) 当用户通过导航栏更改当前显示的月份时发射此信号。 selectionChanged() 当用户选择的日期发生变化时发射此信号。