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 投稿