Windows環境下でのC++におけるSEH例外のC++ catchによる捕捉

Structured Exception HandlingをC++例外に変換する手法 Windowsプラットフォームでは、メモリアクセス違反(Access Violation)やゼロ除算など、Win32の構造化例外(SEH: Structured Exception Handling)が発生することがあります。しかし、標準C++のtry-catch文はこれらの例外を直接捕捉できません。これを可能にするには、SEHをC++例外へ変換する仕組みを導入する必要 ...

6月18日 00:24 投稿

Qtにおける角度・弧度変換と三角関数の実装

Qtアプリケーション開発において、幾何計算やグラフィックス処理を行う際には角度(degree)と弧度(radian)の相互変換が頻繁に必要となる。C++標準ライブラリおよびQtフレームワークは、三角関数の計算をサポートしているが、注意すべき点がある。 角度と弧度の変換 C++の<cmath>ヘッダで提供される三角関数(sin, cos, tanなど)は、引数として弧度法(radian) ...

6月17日 18:39 投稿

Qtにおける時間処理とタイマー機能

Qtにおける時間処理とタイマー機能 参照資料: 1.Qtにおける時間処理とタイマー機能 2.QThreadとQTimerを用いた定時タスクの実現方法 —— 2023-11-09 夜 一.Qtの日時データ型 1.1.QTime:現在時刻の取得 実行結果 現在時刻: "14:30:45" 1.2.QDate:現在日付の取得 実行結果 現在日付: "2023-11-09" 1.3.1.QDateTime:現在日時の取得 実行結果 現在日時: ...

6月9日 22:28 投稿

Qtでシリアル通信と非同期データ処理を実装する

シリアル通信の基本実装 QtのQSerialPortクラスを用いて、ハードウェアとの直列通信を制御します。このクラスは、ポートのオープン・クローズ、ボーレート・データビット・ストップビット・パリティ・フローコントロールの設定を簡易に実現します。通信は非同期で行われるため、UIスレッドの応答性を保つために受信データの処理を別スレッドに委譲します。 // シリアルポ ...

6月8日 17:41 投稿

QtでQLineEditの右クリックメニューをカスタマイズする方法

一、QLineEditの基本機能 QLineEditは単一行テキスト編集ウィジェットで、QTextEditとは異なり一行のテキストのみを表示できます。一般的にユーザー名入力、パスワード入力、検索ボックスなどとして使用されます。また、一連のシグナルとスロットを提供しており、これらは便利な機能です。詳細な情報が必要な場合はQtの公式ドキュメントを参照してください。しかし、ここで ...

6月7日 18:11 投稿

仮想継承とQ_OBJECTマクロが衝突する際のQtコンパイルエラー解決

Qtフレームワークでクラス階層を設計する際、仮想継承とQ_OBJECTマクロを併用することで、特定のコンパイルエラーが発生するケースがあります。本記事では、その問題の再現方法と対処法を解説します。 1. コンソールプロジェクトの作成 まず、以下の.proファイルを使用してQtコンソールアプリケーションを作成します。 QT -= gui CONFIG += c++11 console CONFIG -= app_ ...

6月6日 18:00 投稿

QListWidgetの基本的な使い方と実装例

QListWidgetとQListWidgetItemについて Qtフレームワークにおいて、リスト形式でデータを表示するためのウィジェットがQListWidgetです。各リストアイテムはQListWidgetItemクラスで表現されます。 QListWidgetのクラス階層 QListWidgetの継承関係は以下の通りです: QListWidget → QListView → QAbstractItemView → QAbstractScrollArea → QFrame → QWidget コンストラ ...

6月6日 16:05 投稿

Qtフローティングメニューの実装手法

概要 Qtのアニメーションシステムとステートマシンを活用した視覚効果に優れたフローティングメニューの実装方法について解説します。QtCreatorのサンプルプログラムである「2D Painting」と「Animated Tiles」を参考に、メニューの展開アニメーションを実現します。 実装例 以下の2種類のフローティングメニューを実装しました: 基本円形メニュー - シンプルな円形配置 ...

6月5日 16:57 投稿

QT開発環境の構築とQWTライブラリの導入、DLLエラー対策、UIコンポーネント連携及びExcel操作テクニック

QT環境変数の設定方法 Windows環境でQTを利用するには、以下の手順で環境変数を設定する必要があります。 「設定」→「システム」→「詳細情報」→「システムの詳細設定」を選択 「環境変数」ボタンをクリック 「システム環境変数」セクションの「Path」を選択し「編集」をクリック 以下のQT関連パスを追加: C:\Qt\5.15\mingw81_32\bin C:\Qt\Too ...

6月3日 20:18 投稿

C++におけるスマートポインタの活用と実装

スマートポインタの概要 スマートポインタの重要性 スマートポインタは、現代のC++アプリケーション開発において不可欠なメモリ管理メカニズムです。従来の生ポインタでは、開発者が明示的にメモリ確保と解放を管理しなければならず、メモリリークやダングリングポインタ、ダブルフリーなどの問題が発生しやすかったのです。スマートポインタを活用することで、オブジェ ...

5月31日 19:40 投稿