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;
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;
immodule for Qt:BCパッチ - part6 More ログイン