gpt4 book ai didi

c++ - Qt GUI -> 基于代码到基于设计器

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:47:03 25 4
gpt4 key购买 nike

我目前正在处理一些旧代码 [在某种程度上是遗留的]。最近,我们接到了更改显示尺寸的需求。至此,我意识到ui是由代码生成的。至少可以说,这使得对代码的更改非常烦人 [我们不仅希望扩展 ui 组件,而且还希望将一些功能从菜单栏移​​动到屏幕]。

因此,对于需求和 future 可能发生的变化,我更愿意将代码变形为基于设计器的用户界面,使 future 的代码更改更容易[而且我真的不想详述现有的复杂代码,我也不想希望下一个人像我诅咒我的前任一样诅咒我]。

我想知道是否有人遇到过类似的问题并设计了一些步骤来解决同样的问题。我在网上查了一下,没有找到任何合适的指南/推荐,所以我带着假想的 cookies 来到这里。

最佳答案

嗯,老实说,唯一的方法是“重绘”它们,但是,我建议中间的东西是(这是我多年来使用的东西)——因为我不喜欢 UI 编译器,

1) 在 .ui 文件中绘制界面2) 使用 uitools 加载 QWidget *(来自文档)

MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
QUiLoader loader;
QFile file(":/forms/myform.ui");
file.open(QFile::ReadOnly);
QWidget *myWidget = loader.load(&file, this);

QPushButton * pBtn = myWidget->findChild<QPushButton*>("myButton");

file.close();

QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(myWidget);
setLayout(layout);
}

这样您就可以非常安全地将所有 UI 移动到设计器中,同时保持您的代码与已声明的控件或多或少保持不变,只是您需要某种 resolveControls() 函数来查找和附加所需的控件。

关于c++ - Qt GUI -> 基于代码到基于设计器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36417222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com