[.NET6][C#] Sqlite3を使ってみる。
だいぶ前に試してみて記事も上げたような気がするんだけど、見当たらなかったのと.NET6でも試してみようと思って使ってみた。
- Visual Studio 2022を使って新規プロジェクトでC#コンソールアプリを作成する。
- NuGetを使ってMicrosoft.Data.Sqlite.CoreとSQLitePCLRaw.bundle_e_sqlite3をインストールする。
-->
だいぶ前に試してみて記事も上げたような気がするんだけど、見当たらなかったのと.NET6でも試してみようと思って使ってみた。
ファイルオープンダイアログを出してみる。
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では違いがないように見えるな~~。
別のプラットフォームだと違うのかもしれないです。(未確認)
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