凛(kagring)のUE4とUnityとQt勉強中ブログ

2016 年から UE4 を触り始めました。勉強したもののメモ用のブログです。C++ での Qt、Unity も少しあります。

| PAGE-SELECT | NEXT

≫ EDIT

C++ Qt Layout のスペースを均等割りしないようにする

Qt で QVBoxLayout などを使ってウィジェットを配置すると
そのままではウィジェットのサイズや位置が均等割りされて配置されてしまいます。

ウィンドウサイズによって勝手にサイズや位置が変わってくれるのは便利なのですが
見た目が美しくないと感じると思います(苦笑

というわけで、ウィジェットのサイズに応じてスペースを埋める方法です。


// 余分スペースを埋める
QVBoxLayout layout;
layout->addStretch();


QVBoxLayout::addWidget(); 関数と同じように上記関数をいれるだけというお手軽です。

これを使うと簡単にこんな感じにできます。
余分なスペース埋める

ちょうど右の再生オプションの補間フレームとカメラ解除のボタンの隙間に上記処理を入れてあります。
こうすることでいい感じのレイアウトを構築できるのではないでしょうか。
スポンサーサイト

| Qt | 02:13 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

C++ Qt Widget 上でのキーボード操作

QListBox などの Widget 上で、キーボードが推された場合の処理です。
簡単に考えるとコールバック系があるのかなと思ったのですが、
どうも Widget を継承したクラスで、関数をオーバーライドしてあげる必要があるみたいです。

・EmacsライクなWidgetを作ろう on Qt
http://blog.goo.ne.jp/hiroyuki_kiitos

ここを参考にこんな感じに。

// 継承したクラスでキーを受け取り
class CListWidget : public QListWidget {
protected:
//! キーイベント
virtual void keyPressEvent( QKeyEvent *event )
{
switch( event->key() ){
case Qt::Key_Delete:
break;
default:
break;
}
}
}


こんな感じでオーバーライドしてあげることで、
そのウィジェットでキーが押されたときの処理を実行することができます。
この他にもキーが離されたときや、マウス操作関係もあるようです。

Qt 自体、Widget を継承してカスタマイズして作っていくのが基本のようですね。

| Qt | 03:18 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

C++ Qt スタイルシート(CSS)を使う

ウィンドウの色などをスタイルシートによって設定する方法です。
詳しい方法は下記を参考にしていただければと…(他力本願

・スタイルいじり Lv.2
http://mf-atelier.sakura.ne.jp/mf-atelier/modules/tips/program/Qt/qt_style.html

簡単なファイルの読み込みでセットする方法だとこんな感じに。

// スタイルシートを読み込んでセット
QFile file( "main.css" );
file.open( QFile::ReadOnly );
QString strStyles = QLatin1String( file.readAll() );
QApplication *application;
application->setStyleSheet( strStyles );


とりあえずこれでこんな感じにセットすることができました。
CCS

| Qt | 02:09 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

C++ Qt Qt5 を EXE で実行するために必要なDLL

Qt4.8.5 を動かしている場合、だいたいは
「QtCore4.dll」「QtGui4.dll」の二つがあれば動くと思います。

Qt5 になるとちょっと違うようで、以下のファイルが必要になるようです。

// 必要なファイル
icudt51.dll
icuin51.dll
icuuc51.dll
libEGL.dll
libGLESv2.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Widgets.dll


結構増えましたね…。

詳しくはここに書いてあるようなのでみていただければと。

・Windows で Qt アプリケーションをデプロイする
http://daisukekobayashi.com/blog/deploying-an-qt-application-on-windows

2014/07/01 追加
配布するバイナリと同じ場所に platforms フォルダを作って
その中に qwindows.dll がないと駄目だったようです。

・Qt5で作成したプログラムの配布時
http://www11.atwiki.jp/slice/m/pages/46.html

| Qt | 22:09 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

C++ Qt QTreeWidget の横スクロールバー

QTreeWidget で項目を追加していくと横スクロールバーが機能しないということがありました。
調べてもあまりでてなくてなんだろうと思っていたのですが、以下の記事がヒットしました。

・Thread: resizing a QTreeWidget
http://www.qtcentre.org/threads/3846-resizing-a-QTreeWidget

これを見てみたところ、こんな感じで項目をリサイズしてあげるとよいみたいです。

// リサイズ
// 項目の数だけ実行するとよい?
treeWidget->resizeColumnToContents(0);


一応これで無事横スクロールバーが機能したのですが、
項目を追加するだけだと、Widget 全体のサイズが変わっていないので、
スクロールバーがいらないものと判断されているみたいです。
項目をリサイズすることで、Widget のサイズが変わるということみたいですね。

というわけでちょっと納得いかないですが無事解決しました(苦笑)

| Qt | 02:15 | comments:0 | trackbacks:0 | TOP↑

| PAGE-SELECT | NEXT