1

我好像有问题。目标:我想动态添加QTextEdit到一个QMainWindow,我有很多数据希望在各种QTextEdit对象之间进行拆分。我一直在查看centralWidget并深入ui->setupUi(this);研究 Qt Creator 生成的内容,发现感兴趣对象的父对象是QMainWindow. 因此,我尝试了这样的事情:

this->m_vecTextEdits.push_back( new QTextEdit(this->centralWidget()) );

' this' 是QMainWindow. 我只想将这些添加QTextEdit到,QMainWindow然后删除它们。我还尝试new QTextEdit(this)希望它会出现在QMainWindow对象几何定义的属性上,但运气不好。

如果我setCentralWidget要成为那个,QTextEdit它会起作用,但我不希望对象消耗整个对象QMainWindow并限制对现有小部件的访问。

所以我基本上需要关于如何将QTextEdit小部件添加到现有centralWidget的小部件QMainWindow并让它们出现在窗口中并删除的建议。

4

2 回答 2

1

我想添加多个 QTextEdit 以便我可以使用驻留的 QListWidget (索引属性)在许多 QTextEdit 小部件之间切换

您可以将 aQStackedWidget代替您的QTextEdit,并将所有QTextEdits 添加到其中。
始终只有一个文本编辑可见,但您可以通过将currentRowChanged(int)您的信号连接QListWidget到插槽来自动在它们之间切换,以setCurrentIndex(int)使QTextEdit列表中的选定项目的索引保持相同。

也将QStackedWidget替换您的容器 m_vecTextEdits。

于 2011-09-04T18:39:13.447 回答
1

仅仅创建小部件对象是不够的;您还需要将它们添加到布局对象中。尝试类似:

QBoxLayout * bl = new QBoxLayout(centralWidget());
QTextEdit * t = new QTextEdit;
bl->addWidget(t);
于 2011-09-04T15:41:29.880 回答