備忘録

備忘録

Qt でスタイルシートを適応する方法

Ⅰ. はじめに

タイトルの通り「Qt でスタイルシートを適応する方法」です。

この記事では例として ColinDuquesnoy/QDarkStyleSheet を適応する方法をまとめます。

Ⅱ. やり方

1. git clone する
git clone https://github.com/ColinDuquesnoy/QDarkStyleSheet
2. 必要なファイルをプロジェクトディレクトリに移動する
QDarkStyleSheet/qdarkstyle/style.qss
QDarkStyleSheet/qdarkstyle/style.qrc
QDarkStyleSheet/qdarkstyle/rc/*
3. style.qrc を追加する

f:id:kagasu:20191112153510p:plain

4. プログラムを修正する
#include <qfile.h>
#include <qtextstream.h>

int main(int argc, char *argv[])
{
  QFile f(":/qdarkstyle/style.qss");
  f.open(QFile::ReadOnly | QFile::Text);
  QTextStream ts(&f);
  qApp->setStyleSheet(ts.readAll());
}

Ⅲ. 実行結果

f:id:kagasu:20191112153446p:plain

Qt + VisualStudio2019 + C++ で HelloWorldする方法

Ⅰ. はじめに

タイトルの通り「Qt + VisualStudio2019 + C++で HelloWorldする方法」です。

※2019/11/12時点で Qt 公式は 「Visual Studio 2019 (MSVC v142) 用のビルド済み Qt バイナリ」を配布していません。
代わりに、以下2点をインストールする必要があります。

Ⅱ. やり方

1. Qt5 のインストーラをダウンロードする

https://www.qt.io/

2. Qt5 をインストールする

f:id:kagasu:20191112142909p:plain

3. 「MSVC v141 VS 2017 C++ x64/x86 ビルドツール」をインストールする

Visual Studio Installer からインストールする。

4. Qt Visual Studio Tools をインストールする

f:id:kagasu:20191112143442p:plain
f:id:kagasu:20191112143323p:plain

5. Qt Options から、Qtのディレクトリを指定する

f:id:kagasu:20191112145116p:plain
f:id:kagasu:20191112145108p:plain

6. 新規プロジェクトを作成する

f:id:kagasu:20191112143750p:plain
f:id:kagasu:20191112143853p:plain

7. QtGuiApplication.ui を編集する

f:id:kagasu:20191112144135p:plain

Ⅲ. 実行結果

f:id:kagasu:20191112144335p:plain

adb shell で root 権限でコマンドを実行する方法

Ⅰ. はじめに

タイトルの通り「adb shell で root 権限でコマンドを実行する方法」です。

Ⅱ. やり方

root 権限で hoge.xml を削除する例
adb shell "su -c 'rm -rf /data/data/jp.co.domain/shared_prefs/hoge.xml'"

C# で CA1063 が出ないように IDisposable を実装する方法

Ⅰ. はじめに

タイトルの通り「C# で CA1063 が出ないように IDisposable を実装する方法」です。

Ⅱ. サンプルプログラム

public class MyClass : IDisposable
{
  public void Dispose()
  {
    Dispose(true);
    GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing)
  {
    if (disposing)
    {
      // マネージドリソースを開放する
    }

    // アンマネージドリソースを開放する
  }

  ~MyClass()
  {
    Dispose(false);
  }
}

React で Bootstrap の Navbar と react-router-dom を同時に使う方法

Ⅰ. はじめに

タイトルの通り「React で Bootstrap の Navbar と react-router-dom を同時に使う方法」です。

Ⅱ. やり方

1. 必要なライブラリをインストールする
npm i -D react-bootstrap bootstrap react-router-dom
npm i -D react-router-bootstrap
2. ファイルを編集する

src/App.js

import React from 'react'
import { BrowserRouter, Route, Switch } from 'react-router-dom'
import MyNavbar from './MyNavbar'
import { Container } from 'react-bootstrap'

const Page001 = () => <p>Page001</p>
const Page002 = () => <p>Page002</p>

const App = () => {
  return (
    <BrowserRouter>
      <MyNavbar />
      <Container>
        <Switch>
          <Route exact path='/page001' component={Page001} />
          <Route exact path='/page002' component={Page002} />
        </Switch>
      </Container>
    </BrowserRouter>
  )
}

export default App

src/MyNavbar.js

import React from 'react'
import { LinkContainer } from 'react-router-bootstrap'
import { Navbar, Nav } from 'react-bootstrap'

const MyNavbar = () => {
  return (
    <Navbar bg='dark' variant='dark'>
      <LinkContainer to='/'>
        <Navbar.Brand>Navbar</Navbar.Brand>
      </LinkContainer>
      <Nav className='mr-auto'>
        <LinkContainer to='/page001'>
          <Nav.Link>Page001</Nav.Link>
        </LinkContainer>
        <LinkContainer to='/page002'>
          <Nav.Link>Page002</Nav.Link>
        </LinkContainer>
      </Nav>
    </Navbar>
  )
}

export default MyNavbar

実行結果

f:id:kagasu:20191019144402g:plain