スキップしてメイン コンテンツに移動

Qt Creatorを使ってみる4 テキストエディターを作る

前回までは、「ハローワールド」を表示させるプログラムでしたが、今回は、QPlainTextEditを使って、テキストエディターを作ってみようと思います。
ウィンドウはメインウィンドウを使用。クラスQMainWindow、QMenu、QManuBar、QPlainTextEditを実装します。
最後にQHBoxLayoutで整えてやります。
これで実行すると形は様になります。
次にメニューバーに作りたいメニューを追加し、追加したメニューに実行したい項目を追加していきます。例えば、新規・保存・名前を付けて保存といった具合です。
追加した項目をconnectで継いでいけば、それらしいプログラムが出来上がります。
一番苦労したのは、入力内容の保存と開くです。
保存するには、QFileDialog::getFileNameを使う方法がありますが、初心者なので、子の方法を使わずに基本に忠実に別ウィンドウを開くようにしました。
最初にSaveAsDialog=new QFileDialog()に始まります。
ウィンドウタイトルはsetWindowTitle、保存するディレクトリーの指定するのにはsetDirectoryを使用、この時ディレクトリーを指定する際、QDirを使用し、QDir::homepath()を呼び出すようにします。
フィルター名の選択項目はsetNameFilter(QString)【任意のフィルター名を入れる】を使用。既にファイルが存在していたら確認ウィンドウを出すようにsetNameFilterDetailsVisibleをtrueに設定。
これだけではAccept時どのような操作するか指定していないので、setAcceptMode(SaveAsDialog->AcceptSave)とするとAccept時「保存」ボタンが表示される。
SaveAsDialog->exec()が実行されるとどのように処理するかをif文を使って入力していく。
QStringList StrList=SaveAsDialog->selectedFilters()で選択内容を呼び出す。
配列なのでこのままでは使えないため、StrList.at(0)で抽出する。
例えば、QFile SaveFile(StrList.at(0))と入力する。
ファイルを開いて書き込みのみにする。よってSaveFile.open(QIODevice::WriteOnly)と入力。
入力テキストはテキストストリームなのでQTextStreamを使用。
QTextStream TextStream(&SaveFile)この時、ポインターを使用して保存ファイル名を指定。
保存するには(例)TextStream<<PlainTextEdit->toPlainText()と入力する。
保存したらメモリー内に残さないように、TextStream.flush()とすると消える。
ファイルを閉じるには、SaveFile.close()とすればいい。
実行すると以下のようになるはずです。

テキストファイルを開くには、Dialog作成までは保存用のDialogと同じである。
Accept時の設定は、AcceptSaveからAcceptOpenにする。
実行時同処理するかはif文を使って指定していく。
ファイルしていまでは、保存と同じである。
ファイルを開いてどう処理するかが違うだけである。
ファイルを開いたら読み込みのみにする。
よって、OpenFile.open(QIODevice::ReadOnly)とする。
QPlainTextEditによって挿入させればよいので、
PlainTextEdit->insertPlainText(OpenFile.readAll())とすれば、読み込み完了である。
ファイルを閉じておしまいである。
実行すると、
ファイルを選択して開くとテキストが挿入される。
 色々未完成なところがあるが、フォンとの種類を選択したり、フォントサイズを変えられるようにしたり機能を付け加えていきたいと思います。

コメント

このブログの人気の投稿

特定化学物質及び四アルキル鉛等作業主任者の資格を取得しました!

5・6日に特定化学物質及び四アルキル鉛等作業主任者の技能講習に行きました。16日に修了証が郵送されてきて、とりあえず良かったです。 実をいうと、修了試験に合格しているかは不安だったんです。 法関連の講義が、前回受講した有機溶剤作業主任者の講義をしていた人だったので、内容も類似点が多く、正直ほとんど寝ていました。 そういうこともあり、最初の問題は、すごく焦りました。 4問正しい答えであれば万々歳といった感じだったんです! まあ、とりあえず取得できて本当に良かったです。

有機溶剤作業主任者の技能講習に合格!

10日に有機溶剤作業主任者技能講習修了証が郵送されてきました。とりあえず、合格してよかったです。 講義中、どういった問題がでるかを言っていたので、修了試験は、めっちゃ簡単でした。 合格率95%以上はうなずけます。

サイクリング記 2017/05/04 狭山湖外周道路編

今回は、閉道時間の早い道から順に走行することにしました。 まず、狭山湖外周道路です。閉道時間は午後4時です。 なので、多摩湖堰堤から狭山湖堰堤まで、まず向かいました。 狭山湖堰堤に到着。ここを起点にして右回りしようと思います。 狭山湖堰堤南口の様子。なかなかの交通量で、少し危険かもしれませんが、ちゃんと歩道が整備されているので、安全です。 都道55号線に合流します。向かい側に多摩湖外周道路がありますが、自転車道を使わず、このまま、歩道を走行します。 南側ゲートに到着。立ち入り禁止になっているので不通かと思いきや、ちゃんと自転車が通れるぐらいのスペースが開けられています。この道を通ります。 心臓破りな坂を上り、ダートな道を進むとまず、六地蔵に到着します。 そして再びダートな道が続き、休憩地点の猿久保便所を通り過ぎます。  猿久保便所 猿久保便所を500m進むと六道山公園に到着します。3月22まで、外壁補修工事で立ち入り禁止になっていた、展望台があります。  六道山公園 展望台 近くで展望台を見ると外壁がきれいになっているのがわかります。 さっそく上がってみることにします。  西側 南側  東南側 デジカメで撮影したはいいが、遠方の景色が真っ白で、わからない景色になってしまいました。 西側は富士山がきれいに見えたのですが、真っ白で写っていませんでした。 なので、携帯電話のカメラで撮影してみることにしました。 まあまあ、きれいに映ってくれています。よかったです。 一応満足したので、先を急ぎます。 出会いの辻に到着しました。ここから、ダートな道になります。     ダートな道の入り口。看板があるので、一応遊歩道です。なので、歩行者優先で安全走行しないといけません。 新緑に囲まれている外周道路。しばらく晴れていたので、路面がぬかるんでいるということはありませんでした。走行しやすかったです。 北側ゲートに到着。ここから、一般道のような道になります。舗装されていませんけどね。対向車がたびたび遭遇するので、生活道路になっていると思います。 狭山湖堰堤北口に到着。さっそく堰堤に向かいます。 狭山湖堰...