我似乎遇到了问题。目标:我想动态地将QTextEdit
添加到QMainWindow
,我希望在各种QTextEdit
对象之间分配大量数据。我一直在关注centralWidget
并对Qt Creator生成的ui->setupUi(this);
进行了一些挖掘,并发现感兴趣对象的父级是QMainWindow
的中心小部件。因此我尝试过这样的事情:
this->m_vecTextEdits.push_back( new QTextEdit(this->centralWidget()) );
其中“this
”是QMainWindow
。我只想将这些QTextEdit
添加到QMainWindow
,然后将其删除。我也试过new QTextEdit(this)
希望它出现在QMainWindow
上,对象几何定义的属性没有运气。
如果我setCentralWidget
是QTextEdit
而不是它的工作但我不希望该对象使用整个QMainWindow
并限制对现有小部件的访问。
所以我基本上需要建议如何将QTextEdit
小部件添加到centralWidget
的现有QMainWindow
并让它们出现在窗口中并删除。< / p>
答案 0 :(得分:1)
仅仅创建窗口小部件对象是不够的;您还需要将它们添加到布局对象。尝试类似:
QBoxLayout * bl = new QBoxLayout(centralWidget());
QTextEdit * t = new QTextEdit;
bl->addWidget(t);
答案 1 :(得分:1)
我想添加多个QTextEdit,这样我就可以使用驻留的QListWidget (index属性)在许多QTextEdit小部件之间切换
您可以使用QStackedWidget
代替QTextEdit
,并将所有QTextEdit
添加到其中。
只有一个短信总是可见,但您可以通过将currentRowChanged(int)
的信号QListWidget
连接到插槽setCurrentIndex(int)
来自动切换它们,以便QTextEdit
的索引与列表中所选项目的索引保持一致。
QStackedWidget
也会替换你的容器m_vecTextEdits。