読者です 読者をやめる 読者になる 読者になる

需要のないページ

プログラミングや趣味や。

Qtでソケット通信を試してみた(UDP)

能書き トランスポート層のプロトコルは主に二種類ある。 確実だけどめんどくさいTCP 不確実だけど楽チンなUDP 今回はQtのQUdpSocketを用いたUDPのソケット通信を試してみた。 ネットワーク通信については詳述できないしないが、次のページが参考になる。 ま…

マルチスレッドQtアプリケーション(まとめ)

能書き Qtでマルチスレッドを実現する方法にはいくつかある。 それらの方法や参考となるページをまとめる。 『マルチスレッドとは何か?』 これについては、検索すればいくらでも情報がヒットするので、特筆しない。 個人的には、『処理の流れが複数ある状態…

マルチスレッドQtアプリケーション(2)

能書き 前回の記事の続きとして見てもよいだろうし、そうでなくてもよいだろう。 マルチスレッドをQtで再現する方法はいくつかあるが、 その中で、QThreadにタスクを委譲するものを紹介する。 簡単な例 まず、特に簡単なコードを示す。 異なるスレッド間で直…

マルチスレッドQtアプリケーション(1)

能書き マルチスレッドをQtで再現する方法はいくつかあるが、 その中で、QThreadの継承を利用するものを紹介する。 コード:特にシンプルな例 まずはシンプルな例として、次のコードを書いてみた。 ヒープ領域を解放していなかったり、プログラムの終了条件…

既存のVisual StudioプロジェクトをQt用に変換する方法:オマージュ

前書き この記事は、次のページを尋常じゃなく参考にしている。 参考というより、実行環境が違うだけだ。 同時に、先日の私の記事の解決編でもある。 環境 Windows10 Visual Studio 2015 Community Qt 5.6.0 Add-in 2.0.0 for Qt5 アドインなどが正しくイン…

Visual Studio 2015でQt GUIプログラムを組んでみる(2)

前回の続き louis-needless.hatenablog.com このページの続き。 このGUIは、QPushButtonとQLineEditを使っている。 実際にはQHBoxLayoutも利用しているが、まあ無くても問題はない。 シグナルとスロット せっかくボタンを付けたのだから、なにか応答がないと…

Visual Studio 2015でQt GUIプログラムを組んでみる(1)

能書き 前にVS上でQtが動かないという記事を書いたが、結論から言うと動いた。 適当なこと言ってすみません。 環境 Windows10 Visual Studio 2015 Community Qt Designer 5.6.0 Add-in 2.0.0 for Qt5 アドインなどが正しくインストールされている前提。 プロ…

QLabelに画像を貼り付ける

クラスを選ぶ Qtにおいて、画像を表示できるウィジェットは、(たぶん)主に三種類ある。 QLabel QGraphicsView QPainter 単純に画像を表示するだけなら、QLabelが簡単そうだ。 画像行列自体を扱うクラスも、四種類ほどある。 QImage QPixmap QBitmap QPicture…

PickerModalLoopの前に屈服した話

QFileDialogクラスの静的メソッドに、getOpenFileNameというものがある。 これはたぶんWin32APIの同名関数のラッパであるが、 Qt Creator上で使用すると次のようなランタイムエラーがでる。 shell\comdlg32\fileopensave.cpp(14274)\comdlg32.dll!00007FFA27…

Qtのビルドディレクトリが鬱陶しい話

能書き デフォルト設定のままビルドすると、 ビルドディレクトリはプロジェクトのディレクトリと同一階層に生成される。 こんな感じ。 これは気持ち悪い。 しかも、DebugとReleaseとでディレクトリが分かれているにも関わらず、 ファイル内部はこんな感じだ…

Qtのプログラムをデバッグできない

Qt Creatorを使ってみたはいいけれど、実行はできてもデバッグできない。 『Unknown debugger type "No engine"』 いや、普通にデバッガが登録されてないって言ってよ... デバッガを入手したはよいが、それでもエラーは改善されない。 ちょっとオプションを…

qt_metacallのリンクエラーを解消した(い)

追記:2017/03/21 内容に誤りが多かったため、大幅に修正しました。 発生した問題 Visual studioにQtをアドインで入れてみた。 QtのQObjectクラスを継承したクラスを作るときは、 Q_OBJECTマクロをヘッダに記載しなければならない。 でも、いざコンパイルし…