コンボボックスの横幅について



  • はじめまして。
    Shihoと言います。

    現在、Qt Creator 2.4.1 でGUI 開発を行っています。

    QCombobox で、以下のようにしたいと考えて
    いるのですが、実現方法がわからず困っています。

    コンボボックスで▼をクリックしたときに、選択できる項目の
    一覧がドロップダウンリストとして表示されます。

    このコンボボックスの幅よりも、長い文字列を追加したとき、
    ドロップダウンリストでは、コンボボックス以上の文字は
    隠れてしまいます。
    ▼をクリックしたときに表示されるドロップダウンリストの幅を
    変えるにはどうしたらよいのでしょうか?

    コンボボックスを貼り付けるダイアログサイズの制約で、
    コンボボックスの幅を広げられません。

    .Net の DropDownWidth プロパティのようなプロパティは
    ありますか?

    以上、よろしくお願いします。



  • プロパティでの設定方法はありませんが、
    http://qt-project.org/faq/answer/how_can_i_change_the_width_of_the_popup_list_in_my_combobox
    を参考に QComboBox を継承して showPopup() を実装しなおしてみてください。
    Qt 4.8 (Windows 7)で確認しました。



  • shihoです。

    早速の回答ありがとうございます。

    初心者の質問で大変申し訳ありませんが、再度2つ質問があります。

    質問 1
    QCombobox は、GUI デザイナで作成しています。
    ISCombo というオブジェクト名の QCombobox を継承するには
    どのようにすれば良いのでしょうか?

    質問 2
    showPopup() は、ISCombo の highlighted シグナル発生時に接続する
    スロット処理内でコールすれば良いのでしょうか?

    以上、よろしくお願いします。



  • A1
    デザイナで独自のWidgetを使う場合、右クリックメニューの「格上げ先を指定...」を使用します。
    詳細な手順については「 "Qt をはじめよう! 第19回: 独自ウィジェットを作成しデザイナで使用しよう":http://labs.qt.nokia.co.jp/2011/07/21/widget-propmotion.html 」を参照してください。

    A2
    showPopup() を明示して呼び出したりする必要はありません。ポップアップウィンドウの表示が必要なときに自動的に呼ばれるメソッドなので、実装だけしてください。

    サンプルを https://dl.dropbox.com/u/28055943/customwidthcombobox.zip に置いておきます。



  • shihoです。

    頂いたサンプルを基に作成したら、思い通りのことができました!

    本当にありがとうございました。


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.