Qt 4.8

QTableView の行の幅(高さ)を変更する

setModel の後に setRowHeight() を使う。 QAbstractTableModel *model = new <モデルクラス>; QTableView *tableView = new QTableView; tableView->setModel(model); for (int row = 0; row < model->rowCount(); ++row) { tableView->setRowHeight(row, 1…

QTableView の列の幅を変更する

setModel() の後に setColumnWidth() を使う。 QAbstractTableModel *model = new <モデルクラス>; QTableView *tableView = new QTableView; tableView->setModel(model); for (int column = 0; column < model->columnCount(); ++column) { tableView->set…

QTableView のスクロールバーを非表示にする

setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff) を使う。 QTableView *tableView = new QTableView; tableView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); tableView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

QTableWidget でウィンドウ枠を固定する方法

結論 無理ぽい。QTableView なら可。 参考文献 Fixed (Freeze) column in QTableWidget https://doc.qt.io/qt-5/qtwidgets-itemviews-frozencolumn-example.html

QmlApplicationViewer の背景を透明にする方法

できないらしい。 forum.qt.io

TypeError: Result of expression 'name.invokeMethod' [undefined] is not a function.

事象 Q_INVOKABLE メソッドが実行されず、次のエラーが表示される。 エラーメッセージ TypeError: Result of expression 'name.invokeMethod' [undefined] is not a function. 環境 Qt 4.8.6 Ubuntu 14.04 原因 A. クラスの定義に Q_OBJECT キーワードが含ま…

undefined reference to `<クラス名>::<シグナル名>'

問題 シグナルを定義してビルドすると下記のエラーが発生する。 undefined reference to `<クラス名>::<シグナル名>' 原因 クラス定義に Q_OBJECT キーワードを記述していないため。 対策 クラス定義に Q_OBJECT キーワードを記述する。 class MyClass { Q_O…

FolderListModel を更新する

nameFilters プロパティーを更新する。 FolderListModel は、nameFilters プロパティーが更新されると再読み込みを行うぽい。これを利用する。 ListView { anchors.fill: parent model: FolderListModel { id: folderListModel folder: "file:///C:" } deleg…

Cannot anchor to an item that isn't a parent or sibling.

メッセージ Cannot anchor to an item that isn't a parent or sibling. 翻訳 親や兄弟ではない項目には固定できません。 原因 アンカー先が直接の親または兄弟でないため。 anchors.right: parent.parent.right 対処 アンカー先を直接の親または兄弟に変更…

conversion from 'QByteArray' to 'char*' is ambiguous

コード QByteArray byteArray; QDataStream dataStream; dataStream.readRawData(byteArray, byteArray.capacity()); エラー conversion from 'QByteArray' to 'char*' is ambiguous 解決策 readRawData の第1引数に QByteArray::data() を渡す。 dataStrea…

QDataStream & QDataStream::readBytes(char *& s, uint & l)

ストリームからバッファー s へ読み込み、ストリームへの参照を返します。 バッファー s は、new を使ってアロケートされます。破棄には、delete[] オペレーターを付けてください。 l パラメーターには、バッファーの長さをセットしてください。文字列が空の…

スロットが呼ばれない

原因 connect 関数のシグナル名とスロット名に括弧を付けてなかったため。 × connect(this, SIGNAL( mySignal ), this, SLOT( mySlot )); ○ connect(this, SIGNAL( mySignal() ), this, SLOT( mySlot() ));

QMessageBox のフォントサイズを変更する

方法1 QApplication::setFont() を使う。 QApplication a(argc, argv); QFont f = a.font(); f.setPointSize(f.pointSize() * 2); a.setFont(f);

デプロイ先のリモートディレクトリーを設定する

プロジェクトファイル (.pro) に次の行を記述する。 target.path = /home/user INSTALLS = target

QMetaObject::connectSlotsByName: No matching signal for ...

問題 Qt アプリケーション実行時に次のメッセージが表示される。 QMetaObject::connectSlotsByName: No matching signal for (スロット名) 原因 スロット関数の名前が命名規則に適合していないため。 on_event() 解決策 スロット関数の名前を修正する。 on…