当前位置: 首页 > news >正文

咸阳建设局网站自己公司怎样弄个网站

咸阳建设局网站,自己公司怎样弄个网站,做直播网站,做一个网站推广Text Edit(多行输入框)QTextEdit 表示多行输入框,也是一个富文本 & markdown 编辑器,能在内容超出范围时自动提供滚动条。QTextEdit:不仅仅能表示纯文本,还可以表示 htnl 和 markdownQPlainTextEdit&am…

Text Edit(多行输入框)

QTextEdit 表示多行输入框,也是一个富文本 & markdown 编辑器,能在内容超出范围时自动提供滚动条。

QTextEdit:不仅仅能表示纯文本,还可以表示 htnl 和 markdown

QPlainTextEdit:只能表示纯文本

核心属性
属性说明
markdown支持 Markdown 格式并自动渲染为 HTML。
html支持大部分 HTML 标签(如 imgtable)。
placeHolderText输入框为空时的提示文本。
readOnly是否只读。
undoRedoEnable启用撤销/重做(Ctrl+Z 撤销,Ctrl+Y 重做)。
autoFormatting开启自动格式化。
tabStopWidth缩进占用的空格数。
overwriteMode是否开启覆盖写模式。(光标接下来是否插入或者覆盖?)
acceptRichText是否接收富文本内容 --- html 标签。
verticalScrollBarPolicy垂直滚动条策略:
• Qt::ScrollBarAsNeeded(默认)根据内容自动决定是否需要滚动条
• Qt::ScrollBarAlwaysOff 总是关闭滚动条
• Qt::ScrollBarAlwaysOn 总是显示滚动条
horizontalScrollBarPolicy水平滚动条策略:
• Qt::ScrollBarAsNeeded(默认)根据内容自动决定是否需要滚动条
• Qt::ScrollBarAlwaysOff 总是关闭滚动条
• Qt::ScrollBarAlwaysOn 总是显示滚动条
核心信号
  • textChanged():文本内容改变时触发。

  • selectionChanged():选中范围改变时触发。

  • cursorPositionChanged():光标移动时触发。

  • undoAvailable(bool):可撤销时触发。

  • redoAvailable(bool):可重做时触发。

  • copyAvailable(bool):文本选中/取消选中时触发。

代码示例:获取输入框内容

1.界面:创建一个多行输入框和一个 label

2.槽函数给多⾏输⼊框添加 slot 函数. 处理 textChanged 信号

  • 通过 toPlainText ⽅法获取到内部的⽂本。  
  • 类似的,QTextEdit 还提供了 toMarkdown 和 toHtml。根据需要我们调整不同的获取⽅式。
void Widget::on_textEdit_textChanged()
{// 获取到多行输入框中的内容const QString& text = ui->textEdit->toPlainText();// 和之前的Text()不太一样!ui->label->setText(text);
}

3.效果:输入框内容变化时,label 同步更新。

代码示例:验证信号

1.创建多行输入框

2.给输入框添加以下几个 slot 函数

QTextEdit 中包含了一个 QTextCursor 对象,通过这个对象可以获取到当前光标位置和选中的内容

void Widget::on_textEdit_textChanged()
{qDebug()<<"textChanged: "<<ui->textEdit->toPlainText();
}void Widget::on_textEdit_selectionChanged()
{QTextCursor cursor = ui->textEdit->textCursor();qDebug()<<"selectionChanged: "<<cursor.selectedText();
}void Widget::on_textEdit_cursorPositionChanged()
{QTextCursor cursor = ui->textEdit->textCursor();qDebug()<<"cursorPositionChanged: "<<cursor.position();
}void Widget::on_textEdit_undoAvailable(bool b)
{qDebug()<<"undoAvailable: "<<b;
}void Widget::on_textEdit_redoAvailable(bool b)
{qDebug()<<"redoAvailable: "<<b;
}void Widget::on_textEdit_copyAvailable(bool b)
{qDebug()<<"copyAvailable: "<<b;
}

3.执行程序,观察结果

可以看到:

  1. 编写内容时,textChanged 和 cursorPositionChanged 会触发

  2. 选中一段文本时,cursorPositionChangedselectionChangedcopyAvailable 会触发

  3. 按下 Ctrl + Z 时,textChangedundoAvailableredoAvailablecursorPositionChanged 会触发

  4. 按下 Ctrl + Y 时,textChangedundoAvailableredoAvailablecursorPositionChanged 会触发


Combo Box(组合框/下拉框)

QComboBox 表示下拉框。

核心属性
属性说明
currentText当前选中文本。
currentIndex当前选中下标(从 0 开始,未选中时为 -1)。
editable是否允许编辑(设为 true 时行为类似 QLineEdit)。
iconSize下拉图标大小。(下拉点击的图标(倒三角))
maxCount最大条目数。
核心方法
方法说明
addlitem(const QString&)添加一个条目
currentindex()获取当前条目的下标,从0开始计算;如果当前没有条目被选中,值为-1
currentText()获取当前条目的文本内容
核心信号
  • activated(int):用户选择选项时触发(这时候相当于用户点开下拉框,并且鼠标滑过某个选项,此时还没有确认做出选择)。

  • currentIndexChanged(int)/currentIndexChanged(const QString& text):选项改变时触发(此时用户已经明确的选择一个选项,用户操作或者通过程序操作都会出发这个信号)。

  • editTextChanged(const QString&):可编辑时文本变化触发(editable 为 true 时有效)。

代码示例:麦当劳点餐
  1. 界面:三个下拉框(汉堡、小食、饮料)和一个按钮。

  2. 初始化

    Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
    {ui->setupUi(this);ui->comboBox->addItem("麦辣鸡腿堡");ui->comboBox->addItem("巨无霸");ui->comboBox->addItem("培根蔬菜双层牛堡");ui->comboBox_2->addItem("中薯条");ui->comboBox_2->addItem("麦乐鸡块");ui->comboBox_2->addItem("麦辣鸡翅");ui->comboBox_3->addItem("可乐");ui->comboBox_3->addItem("雪碧");
    }
  3. 按钮槽函数

    void Widget::on_pushButton_clicked()
    {qDebug()<<ui->comboBox->currentText()<<", "<<ui->comboBox_2->currentText()<<", "<<ui->comboBox_3->currentText();
    }
  4. 执⾏程序, 可以看到, 在点击确定按钮时, 就能获取到当前下拉框中选中的内容:

我们也可以通过ui界面进行编辑:

代码示例:从文件加载下拉框的选项

很多时候下拉框的选项并非是固定的,而是通过读取文件/读取网络获取得到的!(选课的时候,加载出所可选的选项!每年都不同)

1.在界面上创建一个下拉框

2.创建文件 d:/for_test/config.txt,编写选项,每个选项占一行

火灵儿 - 出自《完美世界》。
李慕婉 - 出自《仙逆》。
陆雪琪 - 出自《诛仙》。
焰灵姬 - 出自《天行九歌》。
赤练 - 出自《秦时明月》。
少司命 - 出自《秦时明月》。
仙清儿 - 出自动漫《牧神记》。
灵毓秀 - 出自《牧神记》动画。
云霄 - 出自动漫《师兄啊师兄》。
唐雅 - 出自动漫《斗罗大陆2绝世唐门》。

3.修改 widget.cpp,读取文件

  • 使⽤ ifstream 打开⽂件
  • 使⽤ getline 读取每⼀⾏
  • 使⽤ QString::fromStdString 把 std::string 转成 QString
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 需要读取文件内容,把文件中的每一行读取出来,作为一个 Combobox 的选项// 读写IO --- I: 读(输入) --- 参考点是CPU!!!std::ifstream file("D:/for_test/config.txt");if(!file.is_open()){qDebug()<<"文件打开失败";return;}// 按行读取文本内容 --- getline 函数来完成!!!std::string line;while(std::getline(file, line)){// 取到每一行内容, 设置到下拉框中ui->comboBox->addItem(QString::fromStdString(line));}file.close();;// 关闭文件是很关键的,否则会造成文件资源泄漏!
}

4.执⾏程序, 可以看到⽂件内容已经被加载到下拉框中:


🎉 Qt 中也提供了 QFile 实现读写⽂件的功能。当然使⽤ C++ 标准库的 std::fstream 也是完全可以的。之所以存在两套,是因为 Qt 诞⽣较早 (1991 年左右),此时 C++ 还没有完成 "标准化" 的工作,C++ 标准库这样的概念⾃然也没有诞⽣。因此 Qt 就⾃⼰打造了⼀套库,实现了字符串,容器,⽂件操作,多线程,⽹络操作,定时器,正则表达式等内容。

(由于 C++ 标准委员会的不作为, ⾄今仍然有些 Qt 提供的功能, 是标准库不具备的)

Spin Box(微调框)

使用 QSpinBox 或者 QDoubleSpinBox 来创建“微调框”,它是带有按钮的输入框,可以用来输入整数/浮点数。通过点击按钮来修改数值大小。 由于 SpinBox 和 QDoubleSpinBox 用法基本相同,就只介绍 SpinBox 的使用了。

Spin 英文原意为“旋转”,此处引申成“微调”。 事实上很多术语在翻译的时候,不一定非要按照原始的翻译来表示,更追求的是“信达雅”。 举个例子,地铁上的 “Priority Seat” 会翻译成 “爱心专座”,而不是 “优先座位”。

核心属性
属性说明
value存储的数值。
singleStep每次调整的“步长”。按下一次按钮数据变化多少。
displayInteger数字的进制。例如 displayInteger 设为 10, 则是按照 10 进制表示。设为 2 进制表示。
minimum最小值
maximum最大值
suffix后缀
prefix前缀
wrapping是否允许换行
frame是否带边框
alignment文字对齐方式
readOnly是否允许修改
buttonSymbol按钮上的图标。
- UpDownArrows 上下箭头形式
- PlusMinus 加减号形式
- NoButtons 没有按钮
accelerated (加速的)按下按钮时是否为快速调整模式。
correctionMode输入有误时如何修正。
- QAbstractSpinBox::CorrectToPreviousValue : 如果用户输入了一个无效的值(例如,在只能显示正整数的SpinBox中输入了负数),那么SpinBox会恢复为上一个有效值。例如,如果SpinBox的初始值是1,用户输入了-1(无效),然后SpinBox会恢复为1。
- QAbstractSpinBox::CorrectToNearestValue : 如果用户输入了一个无效的值,SpinBox会恢复为最接近的有效值。例如,如果SpinBox的初始值是1,用户输入了-1(无效),那么SpinBox会恢复为0。
keyboardTracking是否开启键盘跟踪。
设为 true, 每次在输入框输入一个数字, 都会触发 valueChanged() 和 textChanged() 信号。
设为 false, 只有在最终按下 enter 或 者输入框失去焦点, 才会触发 valueChanged() 和 textChanged() 信号。
核心信号
信号说明
textChanged(QString)微调框的文本发生改变时会触发。参数 QString 带有前缀和后缀。
valueChanged(int)微调框的文本发生改变时会触发。参数 int, 表示当前的数值。
代码示例:调整麦当劳购物车中的份数。

在界面上创建下列内容

  • 三个下拉框:objectName 为 comboBox 到 spinBox_3

  • 三个微调框:objectName 为 spinBox 到 spinBox_3

  • 一个按钮:objectName 为 pushButton

编写代码,修改 widget.cpp, 给下拉框设置初始值。

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 初始化下拉框菜单ui->comboBox->addItem("麦辣鸡腿堡");ui->comboBox->addItem("巨无霸");ui->comboBox->addItem("培根蔬菜双层牛堡");ui->comboBox_2->addItem("中薯条");ui->comboBox_2->addItem("麦乐鸡块");ui->comboBox_2->addItem("麦辣鸡翅");ui->comboBox_3->addItem("可乐");ui->comboBox_3->addItem("雪碧");// 初始化微调框// 默认一份ui->spinBox->setValue(1);// 针对 QSpinBox 的范围进行约束ui->spinBox->setRange(1, 5);ui->spinBox_2->setValue(1);ui->spinBox_2->setRange(1, 5);ui->spinBox_3->setValue(1);ui->spinBox_3->setRange(1, 5);
}

编写代码,给按钮添加 slot 函数

void Widget::on_pushButton_clicked()
{qDebug() << "当前下单的内容:"<< ui->comboBox->currentText() << ":" << ui->spinBox->value()<< ui->comboBox_2->currentText() << ":" << ui->spinBox_2->value()<< ui->comboBox_3->currentText() << ":" << ui->spinBox_3->value();
}

执行程序, 可以看到当用户选择不同的内容时, 点击按钮就能获取到对应的结果. 同时我们也无法输入一些超出范围的非法值。

http://www.dtcms.com/a/504071.html

相关文章:

  • 网站做推广需要什么条件免费制作招聘的app
  • 临沂市建设安全管理网站nginx 搭建wordpress
  • 管理有限公司网站设计中文企业网站html模板
  • 网站的搜索功能怎么做网站建设实训报告模板
  • Redis集群架构详解:从单机到分布式的扩展之路
  • Csrf4
  • mysql数据库、iptables、Ivs服务和keepalived服务
  • html全屏网站东莞网站推广的公司
  • 人才共享网站的建设方案怎么写做网站要固定ip
  • 网站建设的软件介绍谷歌推广优化
  • 解锁7倍生成式AI性能:NVIDIA Jetson AGX Thor上的更快、更智能的边缘模型
  • 重生做门户网站的小说千灯做网站
  • 沧浪设计网站公司化工企业网站jsp
  • 做超市dm的网站百度网盟推广怎么做
  • 网站开发工作经验怎么写wordpress注册文件
  • Vue2与Vue3:核心差异精简对比
  • 做网站国家大学科技园郑州沈阳网站建设公司哪个好
  • 网站做线wordpress指定分类文章详情页模板
  • 【测试】123456789
  • 东莞建站模板网络服务通知
  • 开发区网站建设在哪模板之家官网
  • python学习之路(五)
  • 申请一个网站需要多少钱广州 建设 招聘信息网站
  • wordpress做网站优点网站平台建设属于固定资产吗
  • 忽略Lombok构建警告
  • K8s 平滑升级
  • 哪个网站可以查到个人名下公司虾皮跨境电商注册多少钱
  • [C++面向对象语言第三大特性] :多态
  • 网站建设流程要多少钱新开传奇网站999
  • 优化网站推广网站广东网站建设找哪家