パスワードを忘れた? アカウント作成
620889 journal

kzkの日記: immodule for Qt:BCパッチ - part6

日記 by kzk
Daisukeさんのアドバイスを参考にパッチを作った。
Qt::WidgetFlagsをWType_PopupからQType_TopLevelにしてみた。
問題はfixされたのだが、これだとcandidate window上にマウスが来た時に問題が発生する。
うーん。setFocusPolicy(Qt::NoFocus)してるんだがなぁ。
未コミットです。

なんかちょっとパラメータをいぢれば出来そうな気がするんだが。。。
どうにも上手くいかん。
GUIプログラミングで一番やなパターンだな(@_@;

Index: candidatewindow.cpp
===================================================================
--- candidatewindow.cpp (revision 867)
+++ candidatewindow.cpp (working copy)
@@ -5,20 +5,22 @@

#include <qapplication.h>
#include <qvbox.h>
#include <qlabel.h>
#include <qsize.h>
#include <qheader.h>
#include <qfontmetrics.h>

#include "quiminputcontext.h"

const int NR_CANDIDATES = 20;
+const Qt::WFlags candidateFlag = (Qt::WType_TopLevel | Qt::WStyle_Customize | Qt::WStyle_StaysOnTop | Qt::WStyle_NoBorder);

CandidateWindow::CandidateWindow(QWidget *parent, const char * name)
-    : QVBox( parent, name, WType_Popup|WStyle_Customize|WStyle_NoBorder )
+    : QVBox( parent, name, candidateFlag )
{
     setFrameStyle(Raised|NoFrame);
+    setFocusPolicy(QWidget::NoFocus);

     ic = NULL;

@@ -32,11 +34,13 @@
     cList->header()->hide();
     cList->setVScrollBarMode(QScrollView::AlwaysOff);
     cList->setHScrollBarMode(QScrollView::AlwaysOff);
+    cList->setFocusPolicy(QWidget::NoFocus);
     QObject::connect(cList, SIGNAL(selectionChanged(QListViewItem *)),
                       this , SLOT(slotCandidateSelected(QListViewItem *)));

     //setup NumberLabel
     numLabel = new QLabel(this, "candidateLabel");
+    numLabel->setFocusPolicy(QWidget::NoFocus);

     candidateIndex = 0;
     nrCandidates = 0;
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

ハッカーとクラッカーの違い。大してないと思います -- あるアレゲ

読み込み中...