ラベル Qt6 の投稿を表示しています。 すべての投稿を表示
ラベル Qt6 の投稿を表示しています。 すべての投稿を表示

土曜日, 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 が設定されていないセルではメニューを表示しない設定もできます。

木曜日, 10月 12, 2023

Qt6: アイコンを設定する(Windows)

Qt はまってます。Mac でも書いたアプリがコンパイルできて、しっかり動くのを確認しました。このあいだ Chitubox が Qt 使ってるのを知ってうれしかったです。

Mac でもそのまま動くんですが、アプリのアイコンの設定はプラットフォーム依存です。

公式マニュアルでも設定が分かりにくかったのでここでは Windows でのアイコンの設定を説明します。

アイコンの設定方法

1.ICO ファイルを作成します。https://realfavicongenerator.net/ などで作成できます。

2.プロジェクトからアクセスできる場所を選んで保存します。/images 下など。

3.Qt Creator でリソースファイル resource.qrc を作成します。プロジェクト名で右クリックメニューから Add New ... で作成できます。




4.メインウィンドウの初期化時などで、ウィンドウのアイコンを設定します。

setWindowIcon(QIcon("://images/phrases.ico"));

これでコンパイルすればウィンドウのアイコンが設定できているのが確認できます。



5.アプリの実行ファイルのアイコンは、icon.rc ファイルを作成することで設定できます。

右クリックメニューから Add New ... をクリック、Empty File を作成し、icon.rc など名付けます。


6.icon.rc へ以下の内容を書き込みます。

IDI_ICON1   ICON    "images/phrases.ico"

これで設定は完了です。コンパイルすれば出来上がった実行ファイルのアイコンが設定されているのが確認できます。

windeployqt コマンドでデプロイが終了です。

ViFlash のソースコードはこちらです。参考まで。

https://github.com/easai/ViFlash


Flask の Blueprint のテンプレート問題

  Flask の Blueprint は、ルート、静的ファイル、テンプレートをまとめて管理できます。しかし、テンプレートが指定できません。 ここでは、Blueprint の template_folder の問題点と回避策を説明します。 Blueprint のテンプレート問題...