前へ 次へ
技術文章qvi

前稿で画面表示は一段落ってことにして、本稿では Ctrl を押しながらのマウスホイール操作によりフォントサイズ変更機能を実装してみる。

フォントサイズ指定メソッド

まずはフォントサイズ指定メソッドを実装する。

 1: void ViEditView::setFontPointSize(int sz)
 2: {
 3:     QFont ft = font();
 4:     ft.setPointSize(sz);
 5:     setFont(ft);
 6:     onFontChanged();
 7: }
 8: void ViEditView::onFontChanged()
 9: {
10:     setTabStopWidth(fontMetrics().width(' ') * 4);      //  tab 4
11:     m_lineNumberWidth = fontMetrics().width('8') * 6;
12:     m_lineNumberAreaWidth = fontMetrics().width('8') * 8;
13:     setViewportMargins(m_lineNumberAreaWidth, 0, 0, 0);
14:     updateLineNumberAreaSize();
15: }
 1: void ViEditView::makeFontBigger(bool bigger)
 2: {
 3:     int sz = font().pointSize();
 4:     if( bigger )
 5:         ++sz;
 6:     else if( !--sz ) return;
 7:     setFontPointSize(sz);
 8: }

wheelEvent()

 1: void ViEditView::wheelEvent ( QWheelEvent * event )
 2: {
 3:     Qt::KeyboardModifiers mod = event->modifiers ();
 4:     if( (mod & Qt::ControlModifier) != 0 )
 5:         makeFontBigger(event->delta() > 0);
 6:     else
 7:         QPlainTextEdit::wheelEvent(event);
 8: }

Tweet


前へ 次へ
技術文章qvi