QComboBox下拉框继承自 QWidget,用于有多个选项的下拉框。
A、name:该控件对应源代码中的名称
B、font:设置显示的字体
C、editable:用来获取或设置一个值,以确定ComboBox的编辑框是否可编辑,值为true是为可编辑,值为false时只读
D、currentIndex:当前选项的索引
E、maxVisibleItems:ComboBox可见的最大项目数
F、maxCount:ComboBox的最大项目数
QComboBox::QComboBox(QWidget *parent = 0,const char *name = 0)
构造一个名称为name,父对象为parent的ComboBox
QComboBox::QComboBox(bool rw,QWidget *parent = 0,const char * name = 0)
构造一个名称为name,父对象为parent的ComboBox,如果rw是true,则编辑栏可编辑,否则只能选择ComboBox项目之一
void QComboBox::clear()const
删除ComboBox中的所有项目
int QComboBox::count()const
返回ComboBox中的项目数
int QComboBox::currentItem()const
返回ComboBox中当前项目的索引
QString QComboBox::currentText()const
返回组合框的当前项目文本
void QComboBox::insertItem(const QString &t,int index = -1)
在索引index处插入一个文本为t的项目,如果index是负数,该项目将被追加到末尾
void QComboBox;:insertItem(const QPixmap &pixmap,int index = -1)
在索引index处插入一个图标为pixmap的项目,如果index为负数,该项目将被追加到末尾
void QComboBox::insertItem(const QPixmap &pixmap,const QString &text,int index = -1)
在索引index处,插入一个文本为text和图标为pixmap的项目,如果index为负数,该项目将被追加到末尾
QString QComboBox::currentText()const
返回组合框当前项目文本
void QComboBox::removeItem(int index)
删除索引为index处项目
void QComboBox::setCurrentItem(int index)[virtual]
把索引index处的项目设为当前项目
void addItem(const QString & text, const QVariant & userData = QVariant())
void addItem(const QIcon & icon, const QString & text, const QVariant & userData = QVariant())
在下拉框最后添加一项
void addItems(const QStringList & texts)
在下拉框最后添加多项
void insertSeparator ( int index )
在序号为index的项前插入分隔线
void setItemText ( int index, const QString & text )
改变序号为index项的文本。
QWidget w;
QComboBox* combox = new QComboBox(&w);
combox->addItem("哈哈哈");
combox->addItem("你干嘛");
combox->addItem("哎呦喂");
QLineEdit* edit = new QLineEdit(combox);
combox->setLineEdit(edit);
combox->setEditable(true);
combox->insertItem(3,QIcon("D:/图片/X.png"), "图片");
w.show();
return a.exec();
QFontComboBox字体组合框继承于QComboBox,QFontComboBox字体组合框分为两部分显示:顶部是一个允许输入文本的文本框,下面的列表框则显示字体列表项,但不能选择多项,只能选择其中一项,专门用于字体选择。
A、name:同上
B、font:同上
C、editable:用来获取或设置一个值,以确定ComboBox的编辑框是否可编辑,值为true时为可编辑,值为false时为只读
D、currentIndex:当前选项的索引
E、currentFont:当前字体
F、maxVisibleItems:ComboBox可见的最大项目数
G、maxCOunt:ComboBox的最大项目数
QFontComboBox::QFontComboBox(QWidget *parent = 0)
构造一个父对象为parent的Font ComboBox
QFont currentFont() const
返回当前选择的字体
#include "mainwindow.h"
#include
#include
#include
#include
#include
int main(int argc, char* argv[])
{
QApplication a(argc, argv);
QWidget w;
w.resize(200, 200);
w.move(300, 300);
QHBoxLayout lay(&w);
QFontComboBox* fontcom = new QFontComboBox(&w);
lay.addWidget(fontcom);
QFont font = fontcom->currentFont();
qDebug() << "当前字体:" << font;
w.show();
return a.exec();
}
QLineEdit组件行编辑是一种常用且比较容易掌握的控件,应用程序主要用它来接收输入文字信息。
A、name:同上
B、text:同上
C、font:同上
D、ReadOnly:用来获取或设置一个值,该值指示文本框中的文本是否为只读,值为true时为只读,值为false为可读写
QLineEidt::QLineEdit(QWidget *parent,const char *name = 0)
构造一个名称为name,父对象为parent的LineEdit
QLineEdit::QLineEdit(const QString &contents,QWidget *parent,const char *name = 0)
构造一个名称为name,父对象为parent和内容为contents的LineEdit
void QLineEdit::clear()[virtual slot]
清除行编辑的内容
bool QLineEdit::isReadOnly()const
如果行编辑室只读则返回true,否则返回false
void QLineEdit::setReadOnly(bool)[virtual slot]
设置行编辑的读写属性
void QLineEdit::setText(const QString &)[virtual slot]
设置行编辑的文本
QString QLineEdit::text()const
返回行编辑的文本
/*行编辑框*/
//模拟登录场景
QWidget w;
w.resize(200, 200);
w.move(300, 300);
QHBoxLayout hlay1;
QHBoxLayout hlay2;
QHBoxLayout hlay3;
QVBoxLayout vlay;
QLineEdit edit1, edit2;
QLabel label1("用户名:"), label2("密码:");
QPushButton button1("登录"), button2("重置");
QString truename = "pp", truepassword = "123456";
hlay1.addWidget(&label1);
hlay1.addWidget(&edit1);
hlay2.addWidget(&label2);
hlay2.addWidget(&edit2);
hlay3.addWidget(&button1);
hlay3.addWidget(&button2);
vlay.addItem(&hlay1);
vlay.addItem(&hlay2);
vlay.addItem(&hlay3);
w.setLayout(&vlay);
//关联登陆按钮的点击消息和响应槽 这里的槽函数用的是Lambda表达式的形式
QObject::connect(&button1, &QPushButton::clicked, [&]() {
//获取两个编辑框的文本
QString username = edit1.text();
QString password = edit2.text();
//校验登录结果 如果成功就弹出一个消息框提示登录成功 反之弹出一个消息框提示失败
if (username == truename && password == truepassword) {
QMessageBox::information(&w, "登录结果", "登录成功");
}
else {
QMessageBox::warning(&w, "登录结果", "用户名或密码错误");
}
});
//关联重置按钮的点击消息和槽函数 当点击之后将两个编辑框中的内容清空
QObject::connect(&button2, &QPushButton::clicked, [&]() {
//清空两个编辑框中的内容
edit1.clear();
edit2.clear();
});
w.show();
return a.exec();
QTextEdit文本编辑组件主要用于输入文本信息或显示文本信息,QTextEdit支持富文本,在文本处理软件如wps等这是非常重要的一个组件
1、文本设置函数
void setText(const QString & text) 根据内容区分显示网页或普通文本
void setHtml(const QString & text) 显示丰富的 HTML 网页文本
void setPlainText(const QString & text) 显示普通的无格式文本
void QTextEdit::insertHtml(const QString &text) void 在光标插入 HTML
void QTextEdit::insertPlainText(const QString &text) 在光标处插入文本
QTextEdit::paste() 将剪贴板的数据粘贴到光标处
2、文本自动换行
LineWrapMode lineWrapMode() const
void setLineWrapMode(LineWrapMode mode)
LineWrapMode 属性保存着自动换行模式。
LineWrapMode 有以下 4 个枚举值:
常量 数值 描述
QTextEdit::NoWrap 0 不自动换行
QTextEdit::WidgetWidth 1 根据控件大小自动换行
QTextEdit::FixedPixelWidth 2 根据设置的固定值换行,以像素为单位
QTextEdit::FixedColumnWidth 3 根据设置的固定值换行,以列为单位
文本显示默认是根据控件的宽度自动换行的,超出控件显示范围,会自动调用滚动条显示,可以通过拖动滚
动条查看文本。如果不想自动换行,可以设置 QTextEdit::NoWrap 属性。
3、设置自动换行的位置
int lineWrapColumnOrWidth() const //获取当前设置的换行位置
void setLineWrapColumnOrWidth(int w) //设置换行位置
4、获取显示的文本
QString QTextEdit::toPlainText() const //返回普通无格式文本
QString toHtml() const
5、文本所搜功能
bool QTextEdit::find(const QString & exp, QTextDocument::FindFlags options = 0)
bool QTextEdit::find(const QRegExp & exp, QTextDocument::FindFlags options = 0)
这是一个重载函数,第一个函数用于查找字符串,查找成功返回真,并且高亮查找到的字符串,查找失败返
回假。第二个函数用于匹配正则表达式,查找成功返回真,并且高亮查找到的文本字符串,查找失败返回假。
QTextDocument::FindFlags 是一个枚举常量,使用时需要加载#include 头文件:
常量 数值 描述
QTextDocument::FindBackward 向后搜索单词
QTextDocument::FindCaseSensitively 默认情况下搜索不区分大小写。指定这个选项可以更改支持区分大小写。
QTextDocument::FindWholeWords 只匹配完整的单词。
6、便捷的打印函数,可以将文本直接输出到打印机或者打印为PDF格式
void QTextEdit::print(QPagedPaintDevice *printer) const
7、设置QText插入的文本格式
bool acceptRichText() const
void setAcceptRichText(bool accept)
该属性默认为 true 表示支持插入富文本数据。比如:从粘贴等。当该属性设置为 false 的时候表示 QText 只
支持插入纯文本数据。
8、只读属性
bool isReadOnly() const
void setReadOnly(bool ro)
该属性默认为 false,设置为 true 表示 QText 文本只能读不能编辑。
9、设置Tab键宽度
int tabStopWidth() const;
void setTabStopWidth(int width);
默认宽度为 80 像素。相当于 8 个空格的宽度。
10、设置QText支持重做功能(Ctrl+z功能)
bool isUndoRedoEnabled() const
void setUndoRedoEnabled(bool enable)
11、设置用户与 QText 交互的属性
Qt::TextInteractionFlags textInteractionFlags() const
void setTextInteractionFlags(Qt::TextInteractionFlags flags)
Qt::TextInteractionFlag 枚举值:
常量 描述
Qt::NoTextInteraction 不支持输入
Qt::TextSelectableByMouse 文本可以用鼠标选择并复制到剪贴板,使用上下文菜单或标准的键盘快捷键。
Qt::TextSelectableByKeyboard 显示文本光标。
Qt::LinksAccessibleByMouse 超链接可以突出显示并激活鼠标复制链接功能。
Qt::TextEditable 支持编辑
Qt::TextEditorInteraction 默认为一个文本编辑器。
Qt::TextBrowserInteraction 默认为一个文本查看器
12、设置文本光标的宽度
int cursorWidth() const;
void setCursorWidth(int width);
光标默认宽度为 1。
13、获取当前的行位置和列数量
QTextCursor QTextEdit::textCursor() const //获取当前光标的位置信息
void QTextEdit::setTextCursor(const QTextCursor &cursor) //设置光标的位置信息
获取当前行和列的位置示例:
QTextCursor cur=ui->textEdit->textCursor(); //获取当前光标位置
int colnum=cur.blockNumber();
int rownum=cur.columnNumber();
头文件:
#pragma once
#pragma execution_character_set("utf-8")
#include
class MyTextEdit :public QTextEdit
{//自定义文本编辑控件
public:
MyTextEdit();
//文本查找功能,返回查找的文本所在的行数
int findText(QString text);
//统计字符数量
int getCharNum();
//获取总页数
int pagenum();
//对文本分页,同时返回当前的所处的页码,这个函数作为滚动消息的槽函数
int currentPage(int value);
};
-----------------------------------------------------------------
#pragma once
#pragma execution_character_set("utf-8")
#include
#include "ui_EditTest1.h"
#include"MyTextEdit.h"
#include
#include
#include
#include
#include
#include
class EditTest1 : public QWidget
{
Q_OBJECT
public:
EditTest1(QWidget *parent = nullptr);
~EditTest1();
private:
Ui::EditTest1Class ui;
MyTextEdit* centralEdit;
QLabel*pagenumLabel;//显示为 页面:当前页码/总页数
QLabel*charnumLabel;//显示为 字数:xxxx
QVBoxLayout* mainlay;//主布局
QHBoxLayout* buttomlay;//底部水平布局
QWidget* topwidget;//顶部窗口
QWidget* buttomwidget;//底部窗口
QLineEdit* findedit;//查找输入框
QPushButton* findbutton;//查找按钮
};
源文件:
#include"MyTextEdit.h"
#include
MyTextEdit::MyTextEdit()
{
//换行模式设置为根据控件大小自动换行
this->setLineWrapMode(QTextEdit::WidgetWidth);
}
int MyTextEdit::findText(QString targetText)
{
QTextCursor cursor = this->textCursor();
int lineNumber = -1; // 初始化行号为-1,表示未找到
// 保存当前光标位置
QTextCursor originalCursor = cursor;
// 在整个文档中查找指定文本
QTextCursor foundCursor = cursor.document()->find(targetText);
if (!foundCursor.isNull()) {
// 获取找到文本所在的行号
lineNumber = foundCursor.blockNumber();
}
else {
return -1;
}
// 恢复光标到原来的位置
this->setTextCursor(originalCursor);
return lineNumber;
}
int MyTextEdit::getCharNum()
{//获取当前文本编辑器中的字符数量
QString text = this->toPlainText(); // 获取文本内容
text = text.trimmed(); // 去除开头和结尾的空格
int charCount = text.length(); // 获取字符数量
return charCount;
}
int MyTextEdit::pagenum()
{
int pageHeight = this->viewport()->height(); // 文本框可见区域的高度
int contentHeight = this->document()->size().height(); // 文本内容的总高度
int totalPages = contentHeight / pageHeight; // 总页数
return totalPages;
}
int MyTextEdit::currentPage(int value)
{
int currentPage = 0; // 当前页码
int pageHeight = this->viewport()->height(); // 文本框可见区域的高度
int totalPages = pagenum(); // 总页数
if (value == 0) {
currentPage = 1;
}
else {
currentPage = value / pageHeight + 1; // 计算当前页码
}
return currentPage;
}
--------------------------------------------------------------------------------------------
#include "EditTest1.h"
#include
#include
EditTest1::EditTest1(QWidget* parent)
: QWidget(parent)
{
topwidget = new QWidget;
buttomwidget = new QWidget;
//将底部窗口的高度固定为37px
buttomwidget->setFixedHeight(37);
mainlay = new QVBoxLayout(this);
pagenumLabel = new QLabel("页面:1/1");
charnumLabel = new QLabel("字数:0");
buttomlay = new QHBoxLayout(buttomwidget);
findedit = new QLineEdit;
findbutton = new QPushButton("查找");
findedit->setFixedHeight(25);
findbutton->setFixedHeight(25);
buttomlay->addWidget(pagenumLabel);
buttomlay->addWidget(charnumLabel);
buttomlay->addWidget(findedit);
buttomlay->addWidget(findbutton);
buttomlay->setStretchFactor(pagenumLabel, 1);
buttomlay->setStretchFactor(charnumLabel, 1);
buttomlay->setStretchFactor(findedit, 1);
buttomlay->setStretchFactor(findbutton, 1);
centralEdit = new MyTextEdit;
mainlay->addWidget(centralEdit);
mainlay->addWidget(buttomwidget);
connect(centralEdit->verticalScrollBar(), &QScrollBar::valueChanged, pagenumLabel, [this](int value)
{
pagenumLabel->setText("页面:"+QString::number(centralEdit->currentPage(value))+"/"
+QString::number(centralEdit->pagenum()));
});
connect(centralEdit, &QTextEdit::textChanged, charnumLabel, [this]() {
charnumLabel->setText("字数:"+QString::number(centralEdit->getCharNum()));
}
);
connect(findbutton, &QPushButton::clicked, centralEdit, [this]() {
QString message="查找内容第一次出现的位置在第:" + QString::number(
centralEdit->findText(findedit->text())) + "行";
QMessageBox::information(this,"提示:",message);
});
}
EditTest1::~EditTest1()
{
if (centralEdit != nullptr)
delete centralEdit;
}
------------------------------------------------------------------------------------------------------------
#include "EditTest1.h"
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
EditTest1 editTest;
editTest.resize(800, 800);
editTest.move(500, 80);
editTest.show();
return a.exec();
}
QPlainTextEdit控件中文称作“文本编辑“,PlainTextEdit和TextEdit控件只是样式不同,可以通过设置属性来改变样式。
QPlainTextEdit::QPlainTextEdit(QWidget *parent = 0)
QPlainTextEdit::QPlainTextEdit(const QString &text,QWidget *parent = 0)
这个我没怎么用过就不给示例代码了
QSpinBox整数旋转框继承自QAbstractSpinBox,允许用户通过单击向上/向下按钮来增加/减少当前显示的值,也可以直接输入旋转框的值,如果值是直接输入选择框,一般需要按Enter键确认新值。
QSpinBox组件属性设置选项
A、name:同上
B、font:同上
C、value:SpinBox默认值
D、lineStep;使用箭头来改变选择框的值的递增/递减量
E、minValue:SpinBox的最小值
F、maxValue:SpinBox的最大值
G、prefix:SpinBox的前缀字符串
H、Suffix:SpinBox的后缀字符串
QSpinBox::QSpinBox(QWidget *parent = 0,const char *name = 0)
构造一个名称为name,父对象为parent的SpinBox
QSpinBox::QSpinBox(int intValue,int maxValue,int step = 1,QWidget *parent = 0,const char *name = 0)
构造一个名称为name,父对象为parent,最小值为minValue,最大值为maxValue和增/减量为step的SpinBox
void QSpinBox::stepDown()[virtural slot]
把旋转框的值减少一个lineStep,等同于单击向下按钮
void QSpinBox::stepUp()[virtual slot]
把旋转框的值增加一个lineStep,等于单击向上按钮
QString QSpinBox::text()const
返回旋转框的文本,包括前缀和后缀
int QSpinBox::value()const
返回旋转框的值
void QSpinBox::setValue(int value)[virtual slot]
设置旋转框的值
void QSpinBox::setLineStep(int)
设置旋转框的增/减量
void QSpinBox::setMaxValue(int)
设置旋转框的最大值
void QSpinBox::setMinValue(int)
设置旋转框的最小值
void QSpinBox::setPrefix(const QString &text)[virtual slot]
设置旋转框的前缀字符
void QSpinBox::setSuffix(const QString &text)[virtual slot]
设置旋转框的后缀字符
void valueChanged(int i)
void valueChanged(const QString & text)
信号
#include "editTest2.h"
#include
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w;
QSpinBox* spinbox = new QSpinBox(&w);
spinbox->setSingleStep(2);
spinbox->setRange(0, 100); //设置变化范围
spinbox->setSuffix("km"); //设置输出显示后缀
spinbox->setPrefix("distance:"); //设置输出显示前缀
spinbox->resize(200, 40); //设置大小
spinbox->setValue(50); //设置初始值
w.show();
return a.exec();
}
QDoubleSpinBox小数旋转框,继承自QSpinBox,可以表示小数,其他与QSpinBox功能相同
QDoubleSpinBox组件属性设置选项
A、name:同上
B、font:同上
C、value:SpinBox默认值
D、lineStep:同上
E、minValue:同上
F、maxValue:同上
G、prefix:SpinBox的前缀字符
H、Suffix:SpinBox的后缀字符
I、decimals:SpinBox的小数位数
QDoubleSpinBox::QDoubleSpinBox(QWidget *parent = 0)
构造一个父对象为parent的Double SpinBox
#include "editTest2.h"
#include
#include
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w;
/*整数旋转框*/
//QSpinBox* spinbox = new QSpinBox(&w);
//spinbox->setSingleStep(2);
//spinbox->setRange(0, 100); //设置变化范围
//spinbox->setSuffix("km"); //设置输出显示后缀
//spinbox->setPrefix("distance:"); //设置输出显示前缀
//spinbox->resize(200, 40); //设置大小
//spinbox->setValue(50); //设置初始值
/*小数旋转框*/
QDoubleSpinBox box(&w);
box.setSingleStep(0.01);
box.setRange(0, 100);
box.setSuffix("kg");
box.setPrefix("质量:");
box.setValue(50);
box.setAccelerated(true);//已知按着变化速度会加快
w.show();
return a.exec();
}
QTimeEdit时间编辑框组件继承自 QDateTimeEdit,用来编辑和显示时间的组件。
QTimeEdit组件属性设置选项:
A、name:同上
B、font:设置文本框的字体
C、time:显示的日期
D、minValue:时间的最小值
E、maxValue:时间的最大值
F、display:设置时间显示格式
3、QTimeEdit组件常用成员函数
QTimeEdit::QTimeEdit(QWidget *parent = 0,const char *name = 0)
构造一个名称为name,父对象为parent的TimeEdit
QTimeEdit::QTimeEdit(const QTime &time,QWidget *parent = 0,const char *name = 0)
构造一个名称为name,父对象为parent,当前显示时间为time的TimeEdit
QTime QTimeEdit::time()const
返回TimeEdit控件Time的值
void QTimeEdit::setTime(const QTime &time)[virtural]
设置TimeEdit控件为Time的值time
void QTimeEdit::setHour(int h)[virtural protected]
设置TimeEdit控件Time的Hour为h,必须确保h为有效值
void QTimeEdit::setMinute(int m)[virtual protected]
设置TimeEdit控件Time的Minute为m,必须确保m为有效值
void QTimeEdit::setSecond(int s)[virtual protected]
设置TimeEdit控件Time的Second为s,必须确保s为有效值
#include "editTest2.h"
#include
#include
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w;
QTimeEdit timeEdit(&w);
// 设置时间显示格式,包括小时、分钟和秒
timeEdit.setDisplayFormat("hh:mm:ss");
//将值设置为当前时间
timeEdit.setTime(QTime::currentTime());
//定义一个计时器
QTimer timer;
//时间间隔为1毫秒 每过一毫秒就会发出QTimer::timeout信号
timer.start(1);
//关联信号和槽 使得每过一毫秒就更新一下
QObject::connect(&timer, &QTimer::timeout, &timeEdit, [&]() {
timeEdit.setTime(QTime::currentTime());
});
w.resize(200, 200);
w.move(400, 400);
w.show();
return a.exec();
}
QDateEdit日期编辑框继承自 QDateTimeEdit,用于编辑和显示日期的组件
QDateEdit组件属性设置选项:
A、name:同上
B、font:同上
C、date:显示的日期
D、minValue:日期的最小值
E、maxValue:日期的最大字画
F、order:设置日期显示格式,Qt提供的格式有YMD、YDM、DMY
QDateEdit::QDateEdit(QWidget *parent = 0,const char *name = 0)
构造一个名称为name,父对象为parent的DateEdit
QDateEdit::QDateEdit(const QDate &date,QWidget *parent = 0,const char *name = 0)
构造一个名字为name,父对象为parent,当前显示日期为date的DateEdit,
QDate QDateEdit::date()const
返回DateEdit控件的Date值
void QDateEdit::setDate(const QDate &date)[virtual]
设置DateEdit控件Date的值为date
void QDateEdit::setDay(int day)[virtual protected]
设置DateEdit控件Date的Day为day,必须确保day为有效值
void QDateEdit::setMonth(int month)[virtual protected]
设置DateEdit控件Date的Month为month,必须确保month为有效值
void QDateEdit::setYear(int year)[virtual protected]
设置DateEdit控件Date的Year为year,必须确保year为有效值
示例代码:
#include "editTest2.h"
#include
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w;
/*日期编辑框*/
QDateEdit dateEdit(&w);
dateEdit.setDate(QDate::currentDate());
w.resize(200, 200);
w.move(400, 400);
w.show();
return a.exec();
}
QDial表盘组件继承自 QAbstractSlider,可用来描述各式各样的仪表盘样式。
QDial组件属性设置选项
A、name:同上
B、font:同上
C、lineStep:表盘值的最小跨度
D、value:表盘的值
E、minValue:表盘的最小值
F、maxValue:表盘的最大值
G、notchTarget:表盘的刻度
H、notchesVisible:是否显示表盘刻度,值为true时显示,否则不显示
QDial::QDial(QWidget *parent = 0,cosnt char *name = 0,WFlags f = 0)
构造一个名称为name,父对象为parent的Dial
QDial::QDial(int minValue,int maxValue,int pageStep,int value,QWidget *parent = 0,cosnt char *name = 0
构造一个名称为name,父对象为parent,最大值为maxValue,最小值为minValue,步长为pageStep,值为value的Dial
void QDial::setValue(int v)[virtual slot]
设置仪表盘的值为v
int QDial::value()const
返回表盘的值
void QDial:: setNotchesVisible(bool visible)
设置表盘刻度是否可见
#include "editTest2.h"
#include
#include
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
/*表盘*/
QWidget w;
QVBoxLayout* layout = new QVBoxLayout(&w);
QDial* dial = new QDial(&w);
// 设置控件样式
dial->setStyleSheet("QDial { background-color: #f0f0f0; border-width: 2px; border-style: solid; border-radius: 6px; }"
"QDial::handle { background-color: #00aaff; border-radius: 10px; }"
"QDial::sub-page { background-color: #00aaff; }"
"QDial::groove { background-color: none; }"
"QDial::notch { width: 2px; height: 6px; background-color: #00aaff; margin-left: 1px; margin-right: 1px; }");
// 设置范围和初始值
dial->setRange(0, 100);
dial->setValue(50);
//设置刻度
dial->setNotchTarget(10);
//设置刻度可见
dial->setNotchesVisible(true);
// 将 QDial 控件居中对齐
layout->addWidget(dial);
layout->setAlignment(Qt::AlignCenter);
w.show();
return a.exec();
}
# 日期编辑款
QDateTimeEdit日期时间编辑框是一个用来编辑和显示日期和时间的组件,继承自 QAbstractSpinBox。
QDateTimeEdit组件属性设置选项:
A、name:同上
B、font:设置文本框的字体
C、datetime:显示的日期和时间
QDateTimeEdit(QWidget * parent = 0)
QDateTimeEdit(const QDateTime & datetime, QWidget * parent = 0)
QDateTimeEdit(const QDate & date, QWidget * parent = 0)
QDateTimeEdit(const QTime & time, QWidget * parent = 0)
构造函数
void dateChanged(const QDate & date) [signal]
void dateTimeChanged(const QDateTime & datetime) [signal]
void timeChanged(const QTime & time) [signal]
信号
Void s etDate(const QDate & date) [slot]
Void setDateTime(const QDateTime & dateTime) [slot]
Void setTime(const QTime & time) [slot]
设置值
void setDisplayFormat(const QString & format)
设置日期时间的显示格式
QDate date() const
QDateTime dateTime() const
QTime time() const
#include "editTest2.h"
#include
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w;
QDateTimeEdit datetimeEdit(&w);
datetimeEdit.setDateTime(QDateTime::currentDateTime());
w.resize(200, 200);
w.move(400, 400);
w.show();
return a.exec();
}
QScrollBar滚动条继承自 QAbstractSlider,提供垂直和水平的布局样式,滚动条可以使用户能够查看比窗口组件能显示较多的内容。
QScrollBar组件属性设置选项
A、name:同上
B、font:设置滑动条上的字体
C、lineStep:滑动条的最小跨度
D、value:滑动条的值
E、minValue:滑动条的最小值
F、maxValue:滑动条的最大值
G、orientation:滑动条的布局方向,Qt提供Horizontal/Vertical两种
QScrollBar::QScrollBar(QWidget *parent,const char *name = 0)
构造一个名称为name,父对象为parent的ScrollBar
QScrollBar::QScrollBar(Orientation orientation,QWidget *parent,const char *name = 0)
构造一个名称为name,父对象为parent,布局为orientation的ScrollBar
void QAbstractSlider::setValue(int v)[slot]
设置该滚动条的值为v
int QAbstractSlider::value()const
返回滚动条的值
void QAbstractSlider:: setOrientation(Qt::Orientation)
设置滚动条的布局样式
#include "editTest2.h"
#include
#include
#include
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w;
QScrollBar scrollbar(&w);
QVBoxLayout* layout = new QVBoxLayout(&w);
QTextEdit* textEdit = new QTextEdit(&w);
// 创建垂直滚动条
QScrollBar* scrollBar = new QScrollBar(Qt::Vertical, &w);
// 设置范围和初始值
scrollBar->setRange(0, 100);
scrollBar->setValue(50);
// 绑定滚动条和文本编辑框的信号槽
QObject::connect(scrollBar, &QScrollBar::valueChanged, [textEdit](int value) {
QFont font = textEdit->font();
font.setPointSize(value);
textEdit->setFont(font);
});
layout->addWidget(textEdit);
layout->addWidget(scrollBar);
w.show();
return a.exec();
}
QSlider滑动条继承自 QAbstractSlider,有Horizontal/Vertical Slider两种布局方式,两种滑动条布局样式之间可以相互转换,只需改变orientation属性即可。
QSlider组件属性设置选项
A、name:同上
B、font:同上
C、lineStep:滑动条值的最小跨度
D、value:滑动条的值
E、minValue;滑动条的最小值
F、maxValue:滑动条的最大值
G、orientation:滑动条的布局方向,Qt提供Horizontal/Vertical Slider两种选择
QSlider::QSlider(QWidget *parent,const char *name =0)
构造一个名称为name,父对象为parent的Slider
QSlider::QSlider(Qrientation orientation,QWidget *parent,const char *name = 0)
构造一个名称为name,父对象为parent,布局方向为orientation的Slider
QSlider::QSlider(int minValue,int maxValue,int pageStep,int value,Orientation orientation,QWidget *parent,const char *name = 0)
构造一个名称为name,父对象为parent,布局方向为orientation,最大值为maxValue,最小值为minValue,页步长为pageStep和值为value的Slider
void QSlider::setValue(int v)[virtual slot]
设置该滑动条的值为v
int QSlider::value()const
返回滑动条的值
/*滑动条*/
QWidget w;
QSlider* slider = new QSlider(Qt::Horizontal, &w);
slider->setMaximum(100);
slider->setMinimum(0);
slider->setValue(50);
w.show();