QtのQToolButtonにおいてチェックは出来ても解除は出来ないようにする

前提 QToolButton* button = new QToolButton; button->setCheckable(true); QToolButtonでチェック可能にする 1. OFFにされそうになったら即戻す connect(button, &QToolButton::toggled, this, [button](bool checked) { if (!checked) { // ユーザー操作による解除を拒否 button->setChecked(true); } }); ...

2026年1月7日

QtのQListWidgetにおいてアイテムのない部分をクリックしても選択が解除されないようにする

mousePressEvent をオーバーライド class NoClearListWidget : public QListWidget { Q_OBJECT public: using QListWidget::QListWidget; protected: void mousePressEvent(QMouseEvent* event) override { QModelIndex index = indexAt(event->pos()); // アイテムがない場所をクリックしたら無視 if (!index.isValid()) { event->ignore(); return; } QListWidget::mousePressEvent(event); } };

2026年1月7日

BashでYes Or No

read -p "続行しますか? (y/n): " ans if [[ "$ans" != "y" && "$ans" != "Y" ]]; then echo "中止しました" exit 1 fi echo "処理を続行します" Yes以外の場合は即刻スクリプトを終了

2026年1月6日

QtでQIconからQPixmapに変換するには?

1.一般的 QPixmap pixmap = icon.pixmap(32, 32); 2. デバイスピクセル比(HiDPI対応) QPixmap pixmap = icon.pixmap(QSize(32, 32), QIcon::Normal, QIcon::Off); ...

2026年1月6日

C#のCS0104 oooは、xxxとyyy間のあいまいな参照です。

原因 これは、oooが、xxxとyyyの両方で存在していて、PCがどっちのoooを選べばいいかを悩むと発生するエラーです。 共存させつつ簡潔 エイリアスを使うことで、共存させつつ、スマートに解決することが可能です。 エイリアスとは、 using 名前 = 名前空間; という形でusing文を使うことで、名前空間の部分を名前で代用することが可能です。 例でいうと以下のような感じです。 //例 using X = xxx; using Y = yyy; var X1 = new X.ooo(); var Y1 = new Y.ooo(); ...

2026年1月5日

WPFのColorDialogのCustomColorsへの変換式

public static int DrawingToInt(System.Drawing.Color color) { return color.B * 256 * 256 + color.G * 256 + color.R; } ...

2026年1月5日

JS/TSでRGBをPIXI JSのColorの数値型に変換するには?

Javascript版 export function ToHex(R,G,B) { return R << 16 | G << 8 | B; } Typescript版 export function ToHex(R:number,G:number,B:number) { return R << 16 | G << 8 | B; }

2026年1月5日

Qtでステータスバーにウィジェットを追加するには?

1. 基本例(QMainWindow, 左端に固定) #include <QMainWindow> #include <QStatusBar> #include <QLabel> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { QLabel *statusLabel = new QLabel("準備完了"); statusBar()->addWidget(statusLabel); } 2. 右端に固定 QLabel *permanentLabel = new QLabel("v1.0.0"); statusBar()->addPermanentWidget(permanentLabel); 一時メッセージを表示 statusBar()->showMessage("保存しました", 3000); //3000ミリ秒 ステータスバーの作成 setStatusBar(new QStatusBar(this));

2026年1月3日