Я нахожусь в процессе изучения Qt и вообще C ++, и я застрял в этой проблеме. Надеюсь, будет просто ответить.
у меня есть QTextEdit
созданный этим кодом:
void MainWindow::on_actionNewtab_triggered()
{
ui->tabWidget->addTab(new QTextEdit, "Untitled Document");
}
Теперь, если я сделаю три вкладки, я не уверен, как редактировать QTextBox
текущей вкладки, которая выбрана. Я посмотрел в документации (что очень хорошо), и я думаю, что мне нужно этот, но я не уверен как. Я также нашел этот на этом сайте, но, кажется, редактировать все QTextEdits
?
Ответ, вероятно, очень прост, и я просто что-то упускаю :). Пожалуйста, дайте мне знать, если вам нужно больше деталей.
Вы можете перейти к редактированию текста напрямую с помощью этого:
qobject_cast<QTextEdit*>(ui->tabWidget->currentWidget())->SetText("my text");
Сохранить указатель на желаемый QTextBox
и отредактируйте его как хотите.
QTextEdit *myTextEdit;
void MainWindow::on_actionNewtab_triggered()
{
myTextEdit = new QTextEdit;
ui->tabWidget->addTab(myTextEdit, "Untitled Document");
}
Вы также можете использовать QTabWidget::widget()
а также QTabWidget::currentWidget()
чтобы получить указатель на ваш виджет после создания, но вы должны сначала привести результат к фактическому типу.