2010-02-09 65 views
2

我有一個QCompleter強制用戶在彈出窗口可見但不用於選擇項目時敲擊輸入兩次。與完成相關聯的QComboBox模型用作完成者的模型。QCompleter雙重輸入

QCompleter *completer = new QCompleter(this); 
completer->setCaseSensitivity(Qt::CaseInsensitive); 
completer->setCompletionMode(QCompleter::PopupCompletion); 
completer->setModel(this->ui->comboBox->model()); 
this->ui->comboBox->setCompleter(completer); 

隨着用戶輸入項目,可能的完成列表將增加。如果他們開始輸入短完成(例如「dir」),那裏有更長的完成可用,並且他們在沒有從彈出窗口中選擇任何東西的情況下擊中(即,不激活,高亮顯示或indexchanged被觸發),然後他們再次擊中處理他們輸入的文字。有沒有簡單的方法呢?

謝謝

+0

我寫了一個快速測試程序,但我無法複製您的問題。當我輸入一次後,即使完成者彈出窗口可見,激活的(const QString&)信號也會被觸發。你使用的是什麼版本的Qt?你在使用什麼操作系統? – 2010-02-10 16:39:39

回答

0

我試過它與Qt 4.6.2和Visual 2008和你描述的情況並沒有發生。 project available如果你想嘗試。

編譯,啓動類型「東西」,那麼在組合框中returb:它的註冊,輸入「一些」,並返回:您的組合框現在有「一些」和「地方」