如何重置QCustom3DLabel上的文本
How to reset text on QCustom3DLabel?
在以下内容中,我试图更改QCustom3DLabel
的文本,但它没有更改。那么,关于如何处理这个问题,有什么建议吗?
MainWidget::MainWidget(QWidget *parent) : QWidget(parent)
{
resize(800,600);
auto vLayout = new QVBoxLayout(this);
auto graph = new Q3DBars;
vLayout->addWidget(QWidget::createWindowContainer(graph));
auto camera = graph->scene()->activeCamera();
camera->setCameraPreset(Q3DCamera::CameraPresetIsometricLeft);
graph->axes()[0]->setRange(0,5);
graph->axes()[1]->setRange(0,5);
graph->axes()[2]->setRange(0,5);
label = new QCustom3DLabel;
label->setText("123");
label->setScaling({5,5,5});
label->setPosition({1,1,1});
graph->addCustomItem(label);
auto timer = new QTimer;
connect(timer, &QTimer::timeout, this, &MainWidget::setText);
timer->start(2000);
}
void MainWidget::setText()
{
qDebug() << "settext";
label->setText("1234567890");
}
我重新生成了代码,更改其他属性的问题也是一样的(例如背景颜色也没有更改(。
无论如何,我在这里写了一个不太干净的代码,用于更改标签文本:
void MainWidget::setText()
{
graph->releaseCustomItem(label);
QCustom3DLabel* newlabel = new QCustom3DLabel(nullptr);
newlabel->setScaling(label->scaling());
newlabel->setPosition(label->position());
newlabel->setText("1234567890");
label = newlabel;
graph->addCustomItem(label);
}
我不知道为什么,但setText
单独可以改变文本属性的值,但并没有图形效果。
然而,当我创建了一个新的QCustom3DLabel
实例并为此调用setText
时,它运行得很好。我只需要从图表中释放以前的标签。
相关文章:
- 文本文件中的单词链表
- 从命令行c++发送文本文件名
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- 如何将内容数组写入文本文件?
- 无法通过空白将文本文件行分隔为矢量
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- C++将文本文件中的数据读取到结构数组中
- 在指针的帮助下,文本文件中单词的频率
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 将值从二维数组输出到文本文件
- 如何在c++中从文本文件中逐行读取整数
- 如何创建一个QTableWidgetItem,用长文本右对齐,左边有省略号
- 从文本文件中读取时钟时间和事件时间并进行处理
- 如何从文本文件中读取值和数组
- 如何在C++中确定文本文件中的元素是字符还是数字
- 如何根据单词在文本中出现的概率输出单词
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- C++试图读取一个文件并输出到另一个文本文件
- 如何通过套接字将文本文件的内容从服务器发送到客户端