ファイルオープンダイアログを出してみる。

    QString filename = QFileDialog::getOpenFileName(this, tr("hoge"), "c:/",
                                                    tr("Text files(*.txt);;All Files(*.*)"));

ケッコー簡単。ファイルオープンダイアログでキャンセル押すとfilenameはNULL文字列になる。

getOpenFileName以外にもファイルやディレクトリ選択関係のダイアログが表示できる。

getOpenFileName ファイルを1つ選択できるダイアログが表示される。
getOpenFileNames ファイルを複数選択できるダイアログが表示される。
getOpenFileUrl ファイル(リモート)を1つ選択できるダイアログが表示される。
getOpenFileUrls ファイル(リモート)を複数選択できるダイアログが表示される。
getExistingDirectory ディレクトリを選択できるダイアログが表示される。
getExistingDirectoryUrl ディレクトリ(リモート)を選択できるダイアログが表示される。
getSaveFileName ファイル保存ダイアログが表示される。
getSaveFileUrl ファイル(リモート)保存ダイアログが表示される。

リモートとそうでないのはWindowsでは違いがないように見えるな~~。
別のプラットフォームだと違うのかもしれないです。(未確認)


このエントリーをはてなブックマークに追加 Clip to Evernote ブログランキング・にほんブログ村へ
にほんブログ村

Linux、macOSを試してみる。

[Qt] Zipファイルを扱う(Windows,VS2017)のときと同じようにQtからお手軽にZIPファイルを扱えるQuaZIPの紹介 - 理ろぐのページを参考に試してみた。

Linux

Linuxは、Ubuntu 18.04.2 LTSを使用した。

quazip-0.7.6フォルダがあるディレクトリで

mkdir build-quazip-linux-x64
cd build-quazip-linux-x64

を実行する。

そしてビルド&インストール。

qmake -r ../quazip-0.7.6/quazip/quazip.pro "PREFIX=../../quazip/linux-x64" LIBS+=-lz
make all
make install

macOS

ターミナルを起動して、Qtのqmakeのあるところにパス(うちは~/Qt/5.12.3/clang_64/bin)を通す。
quazip-0.7.6フォルダがあるディレクトリで

mkdir build-quazip-macos-x64
cd build-quazip-macos-x64

を実行する。

そしてビルド&インストール。

qmake -r ../quazip-0.7.6/quazip/quazip.pro "PREFIX=../../quazip/macos-x64" LIBS+=-lz
make all
make install

quazipフォルダができ、そこにシェアドライブラリやヘッダなんかがインストールされる。

次に参考にしたページにあった"quazip.pri"を見よう見まねでこんな感じにした。

# for quazip
QUAZIP_DIR = $${PWD}/../quazip
mingw:{
    equals(QT_ARCH, "x86_64"):{
        # 64bit
        QUAZIP_DIR = $$QUAZIP_DIR/mingw-x64
    }else{
        # 32bit
        QUAZIP_DIR = $$QUAZIP_DIR/mingw-x86
    }
} else: win32:{
    equals(QT_ARCH, "x86_64"):{
        # 64bit
        QUAZIP_DIR = $$QUAZIP_DIR/x64
    }else{
        # 32bit
        QUAZIP_DIR = $$QUAZIP_DIR/x86
    }
} else: macos: {
    QUAZIP_DIR = $$QUAZIP_DIR/macos-x64
} else: unix: {
    equals(QT_ARCH, "x86_64"):{
        # 64bit
        QUAZIP_DIR = $$QUAZIP_DIR/linux-x64
    }else{
        # 32bit
        QUAZIP_DIR = $$QUAZIP_DIR/linux-x86
    }
}

INCLUDEPATH += $$QUAZIP_DIR/include/quazip
CONFIG(debug,debug|release){
    mingw: {
        LIBS += -L$$QUAZIP_DIR/bin/ -lquazipd
    } else:win32:{
        LIBS += $$QUAZIP_DIR/bin/quazipd.lib
    }
}else{
    mingw: {
        LIBS += -L$$QUAZIP_DIR/bin/ -lquazip
    } else:win32: {
        LIBS += $$QUAZIP_DIR/bin/quazip.lib
    }
}
unix: LIBS += -L$$QUAZIP_DIR/lib/ -lquazip

# for zlib
win32: INCLUDEPATH += $$[QT_INSTALL_PREFIX]/include/QtZlib

# copy library file
win32:{
    CONFIG(debug,debug|release){
        QUAZIP_LIB_PATH=$$QUAZIP_DIR/bin/quazipd.dll
        APP_BUILD_DIR=$$shadowed($${PWD})/debug
    }else{
        win32:QUAZIP_LIB_PATH=$$QUAZIP_DIR/bin/quazip.dll
        APP_BUILD_DIR=$$shadowed($${PWD})/release
    }
    QUAZIP_LIB_PATH ~= s|/|\|gi
    APP_BUILD_DIR ~= s|/|\|gi
}else:macos:{
    QUAZIP_LIB_PATH=$$QUAZIP_DIR/lib/libquazip.*
    APP_BUILD_DIR=$$shadowed($${PWD})
}else{
    QUAZIP_LIB_PATH=$$QUAZIP_DIR/lib/libquazip.so.*
    APP_BUILD_DIR=$$shadowed($${PWD})
}
copyquazip.commands = $(COPY_DIR) $$QUAZIP_LIB_PATH $$APP_BUILD_DIR
QMAKE_EXTRA_TARGETS += copyquazip

このエントリーをはてなブックマークに追加 Clip to Evernote ブログランキング・にほんブログ村へ
にほんブログ村

MinGWを試してみる。
ただ、QuaZIP: QuaZIP - Qt/C++ wrapper for MinizipによるとMinGWはテストされていないようだけど。

[Qt] Zipファイルを扱う(Windows,VS2017)のときと同じようにQtからお手軽にZIPファイルを扱えるQuaZIPの紹介 - 理ろぐのページを参考に試してみた。

スタートメニューから"Qt 5.12.3(MinGW 7.3.0 64-bit)"(コマンドプロンプト)を起動する。

quazip-0.7.6フォルダがあるディレクトリで

mkdir build-quazip-MinGW-x64
cd build-quazip-MinGW-x64

を実行する。

そしてビルド&インストール。

qmake -r ..\quazip-0.7.6\quazip\quazip.pro "PREFIX=..\..\quazip\mingw-x64" LIBS+=-lz
mingw32-make all
mingw32-make release-install debug-install

quazipフォルダができ、そこにdllやヘッダなんかがインストールされる。

次に参考にしたページにあった"quazip.pri"を見よう見まねでこんな感じにした。

# for quazip
message($$QT_ARCH)
QUAZIP_DIR = $${PWD}/../quazip
mingw:{
    equals(QT_ARCH, "x86_64"):{
        # 64bit
        QUAZIP_DIR = $$QUAZIP_DIR/mingw-x64
    }else{
        # 32bit
        QUAZIP_DIR = $$QUAZIP_DIR/mingw-x86
    }
} else: win32:{
    equals(QT_ARCH, "x86_64"):{
        # 64bit
        QUAZIP_DIR = $$QUAZIP_DIR/x64
    }else{
        # 32bit
        QUAZIP_DIR = $$QUAZIP_DIR/x86
    }
}
INCLUDEPATH += $$QUAZIP_DIR/include/quazip
CONFIG(debug,debug|release){
    mingw: {
        LIBS += -L$$QUAZIP_DIR/bin/ -lquazipd
    } else:win32:{
        LIBS += $$QUAZIP_DIR/bin/quazipd.lib
    }
}else{
    mingw: {
        LIBS += -L$$QUAZIP_DIR/bin/ -lquazip
    } else:win32: {
        LIBS += $$QUAZIP_DIR/bin/quazip.lib
    }
}
unix: LIBS += -L$$QUAZIP_DIR/lib/ -lquazip

# for zlib
win32: INCLUDEPATH += $$[QT_INSTALL_PREFIX]/include/QtZlib

# copy library file
win32:{
    CONFIG(debug,debug|release){
        QUAZIP_LIB_PATH=$$QUAZIP_DIR/bin/quazipd.dll
        APP_BUILD_DIR=$$shadowed($${PWD})/debug
    }else{
        win32:QUAZIP_LIB_PATH=$$QUAZIP_DIR/bin/quazip.dll
        APP_BUILD_DIR=$$shadowed($${PWD})/release
    }
    QUAZIP_LIB_PATH ~= s|/|\|gi
    APP_BUILD_DIR ~= s|/|\|gi
}else{
    QUAZIP_LIB_PATH=$$QUAZIP_DIR/lib/libquazip.so.*
    APP_BUILD_DIR=$$shadowed($${PWD})
}
copyquazip.commands = $(COPY_DIR) $$QUAZIP_LIB_PATH $$APP_BUILD_DIR
QMAKE_EXTRA_TARGETS += copyquazip

このエントリーをはてなブックマークに追加 Clip to Evernote ブログランキング・にほんブログ村へ
にほんブログ村

↑このページのトップヘ