使QTextEdit资本化
Making a QTextEdit capital
我正在尝试将所有文本转换为QTextEdit大写字母,但目前失败了。这是我的代码,它什么也不做。
void MainWindow::on_actionCapital_triggered()
{
QTextCharFormat capital2;
capital2.setFontCapitalization(QFont::AllUppercase);
ui->textEdit->setCurrentCharFormat(capital2);
}
我是一名Java程序员,所以c ++不是我的强项
我也尝试了以下代码,但没有成功:
QFont font = ui->textEdit->font();
font.setCapitalization(QFont::AllUppercase);
ui->textEdit->setFont(font);
有人可以指出我正确的方向吗?
我认为这不是最优雅的解决方案,但它会完成它的工作:
void MainWindow::on_actionCapital_triggered()
{
QTextCursor c = ui->textEdit->textCursor();
int current = c.position();
if(capital)
{
QTextCharFormat capital2;
capital2.setFontCapitalization(QFont::MixedCase);
ui->textEdit->selectAll();
ui->textEdit->setCurrentCharFormat(capital2);
capital = false;
}
else
{
QTextCharFormat capital2;
capital2.setFontCapitalization(QFont::AllUppercase);
ui->textEdit->selectAll();
ui->textEdit->setCurrentCharFormat(capital2);
capital = true;
}
c = ui->textEdit->textCursor();
c.setPosition(current);
c.setPosition(current, QTextCursor::KeepAnchor);
ui->textEdit->setTextCursor(c);
}
使用此代码,您可以在所有大写和混合大小写之间切换。由于某种原因,setCurrentCharFormat 仅在选择文本时才有效。所以我必须获取当前的光标位置,然后选择全部应用字体大写,然后将光标设置回原来的位置。
相关文章:
- 从C++实例化QML
- .cpp和.h文件中的模板专用化声明
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 是否可以初始化不可复制类型的成员变量(或基类)
- C++使用整数的压缩数组初始化对象
- 模板化建造师专业化
- C++初始化基类
- 多成员Constexpr结构初始化
- 设计一个只能由特定类实例化的类(如果可能的话,通过make_unique)
- 复制列表初始化的隐式转换的等级是多少
- 内联映射初始化的动态atexit析构函数崩溃
- 如何在C++中初始化嵌套类中的2个memeber
- 如何在C++中序列化结构数据
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- 没有用于初始化C++中的变量模板的匹配构造函数
- 如何为模板化对象创建模板向量?VS正在投掷C3203
- 在未初始化映射的情况下,将值插入到映射的映射中
- 如何创建一个空的全局类并在启动时实例化它
- 可视C 资本化功能因多个输入而失败
- 使QTextEdit资本化