土曜日, 11月 11, 2023

Qt: 外部プログラムを起動する

 

Qt/C++ のアプリは、外部へ直接アクセスできます。これはネットアプリでは不可能な Qt のメリットです。

外部プログラムを起動することもできます。QProcess::startDetached() を使うと独立したプロセスを立ち上げることができます。

この QProcess::startDetached が Qt5.10 から使用方法がアップデートされたようなので、ご報告まで。引数は外部プログラムへのパスではなく、プロセスIDをとります。

外部プログラムは QProcess::setProgram() で設定します。

金曜日, 11月 10, 2023

QTreeWidget アイテムの追加・削除

 

QTreeWidget はそのまま使えるツリー構造用のコンポーネントです。そのまま、というのは QTreeView 派生クラスなど作らなくても備え付けのデータクラスが使えるという意味です。

QTreeWidget へアイテムを追加するコードはヘルプにもありますが、ここではルート要素へも追加できるコードを置いておきます。



アイテムを削除する方法はこちらです。ルート要素の削除もできます。

水曜日, 11月 08, 2023

QTableWidget: ヘッダーのフォントをボールド化する

 

QTableWidget のヘッダーを設定し、フォントをボールド化する方法です。

QTableWidget のヘッダーは setHorizontalHeaderLabels() を呼び出し QStringList を渡すことで設定できます。

設定後、フォントを取得し、setBold() でボールドを設定します。


QTableWidget で右クリックメニュー(コンテキストメニュー)

 

QTableWidget で右クリックメニューを出す方法です。

まずQTableWidget でコンテキストメニューを有効化する必要があります。


呼び出したメソッドでメニューを作り、popup() メソッドで表示します。


アクションを設定し、実行したいメソッドを connect() で設定します。

セルの位置はマウスクリックの位置から itemAt() で計算します。

位置情報はクラス変数で保存すると使いやすいかもしれません。

あと、QTableWidgetItem が設定されていないセルではメニューを表示しない設定もできます。

Laravel サイトのアップグレード

 Laravel のサイトをアップグレードする機会がありましたので、その方法をここで書いておきたいと思います。かなり構成というか書き方が変わってきているので注意が必要です。 1. 新しいLaravelプロジェクトの作成 まずはクリーンなLaravel環境を作成します。 compo...