[解決済み] QTextEditの内容を表示するQTextBrowserを持つにはどうしたらよいですか?
質問
を接続しようとしています。
QTextEdit
から
QTextBrowser
そのため、テキストブラウザウィジェットは、テキスト編集ウィジェットに入力された内容を出力します。シグナルとして
textChanged()
を使用し、スロットとして
setText(QString)
. そして、この2つは同じパラメータを持っていません。
QTextEditの代わりにQLineEditを使用した場合、その場合、以下のようになります。
textChanged(QString)
という関数がありますが、これはスロットと互換性があるため、QTextEditで動作させる必要があります。以下はそのコードです。
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtWidgets>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
QWidget * mainWidget=new QWidget(this);
ui->setupUi(this);
QTextEdit * mainTextEdit=new QTextEdit();
QTextBrowser * textDisplay=new QTextBrowser();
connect(mainTextEdit,SIGNAL( textChanged() ),
textDisplay,SLOT( setText(QString) ) );
QHBoxLayout * Alayout=new QHBoxLayout();
Alayout->addWidget(mainTextEdit);
Alayout->addWidget(textDisplay);
mainWidget->setLayout(Alayout);
setCentralWidget(mainWidget);
}
MainWindow::~MainWindow()
{
delete ui;
}
解決方法は?
ありがたいことに
QTextEdit
と
QTextBrowser
へのビューです。
QTextDocument
モデルを使用します。つまり、ブラウザ上でエディターのドキュメントを設定するだけでよいのです。
QTextBrowser::setDocument
とは意味的に同じです。
QAbstractItemView::setModel
:
textDisplay->setDocument(mainTextEdit->document());
Qtでは、本当に2つの基本的なモデルクラスがあります。
QAbstractItemModel
と
QTextDocument
. A
QTextDocument
は、それ自体がモデル-ビューのフレームワークにおけるモデルです。エディタが操作するドキュメントに、別のビューを設定するだけです。エディタはモデルの変更を許しますが、ブラウザは許しません。これは、2つのQListViewで同じモデルを使用すること等と変わりません。
A
QTextEditor
は、デフォルトのモデル(ドキュメント)を持つビューです。そのデフォルトモデルを他のビューのものに置き換えることもできますし、あなた自身が提供するものに置き換えることもできます。例えば
複数のエディタ
を表示させることができます。
QTextDocument
という文書があり、その編集を並行して行うことができます。また
マルチブラウザー
を行う。
完全な例です。
#include <QApplication>
#include <QTextEdit>
#include <QTextBrowser>
#include <QHBoxLayout>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget window;
QHBoxLayout layout(&window);
QTextEdit edit;
QTextBrowser browser;
layout.addWidget(&edit);
layout.addWidget(&browser);
browser.setDocument(edit.document());
window.show();
return a.exec();
}
関連
-
[解決済み] Qml タイマーが正しい間隔で起動しない
-
[解決済み] Qtのフォームレイアウト機構を理解する
-
[解決済み] qtnetwork4.dllという正しいファイルが見当たりません。
-
[解決済み] qmake: ''の Qt インストールが見つかりませんでした。
-
[解決済み] QTextEditの内容を表示するQTextBrowserを持つにはどうしたらよいですか?
-
Qt signal and slot usage error : error: no matching function for call to ...... Qt signal and slot usage error : error: no matching function for call to ...... Qt signal and slot usage error: error
-
Qt: (クラス名)::connect()への呼び出しに一致する関数がない エラー概要
-
CMakeラーニングサマリー
-
[解決済み】Qt-Designerでレイアウトが自動拡張される。
-
[解決済み] Qtプログラムを終了する正しい方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] QDateTime::fromStringの使い方は?
-
[解決済み] QVariant::UserType 型の QVariant が期待された型であることを確認するにはどうすればよいですか?
-
[解決済み] Qml タイマーが正しい間隔で起動しない
-
[解決済み] Qtのフォームレイアウト機構を理解する
-
[解決済み] qmake: ''の Qt インストールが見つかりませんでした。
-
[解決済み] QMLイメージの表示サイズを調整する
-
[解決済み] QTextEditの内容を表示するQTextBrowserを持つにはどうしたらよいですか?
-
不完全な型「クラスUi-Widge't」の無効な使用に対する解決策
-
CMakeラーニングサマリー
-
[解決済み】QLabel: テキストと背景の色を設定する