是否可以将ui对象(按钮,文本框等)添加到可见的qt窗口,即我有一个具有QTextEdit的窗口,用户可以在其中添加数字,然后有一个按钮可以为另一个数字添加另一个QTetEdit一个删除它的按钮.这意味着我可以添加任意数量的字段,稍后我可以对所有元素执行某种计算,因为我需要能够添加任意数量的额外对象,因此显示和隐藏元素可能效率低下.这是一个组成的例子,但它证明了我所追求的目的.
有没有人做过类似的事情?
- 更新 -
下面是我尝试的一些代码对我不起作用,代码运行时窗口已经可见:
void MainWindow::addArgument()
{
QPushButton button;
ui->addArgRowHorizontalLayout->addWidget(&button);
button.show();
this->show();
}
Run Code Online (Sandbox Code Playgroud)
任何人都知道我做错了什么,一切都在qtcreator中自动完成并编译没有错误所以我不知道下一步该去哪里.
Ĵ
我指的是更新的内容.你是否从C#/ Java转向C++?
QPushButton button;
Run Code Online (Sandbox Code Playgroud)
该指令在堆栈上创建QPushButton对象,堆栈上的对象在其作用域结束时被销毁,在本例中是函数的结束括号.要使对象持久化,您应该在堆上分配它:
QPushButton* button = new QPushButton();
Run Code Online (Sandbox Code Playgroud)
当然,从现在开始你必须使用指针语义.
通常在C++中,当应用程序的逻辑不再需要它时,您必须手动从堆中删除对象.值得庆幸的是,Qt会跟踪QObject,因此您很少需要自己处理它们.启动C++的一个好地方是C++ FAQ.此外,您应该阅读Qt手册,它非常容易阅读并获得Qt的概念.