August 16, 2012

Shiho Shiho
Lab Rat
5 posts

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

 

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

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

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

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

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

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

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

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

4 replies

August 16, 2012

takumiasaki takumiasaki
Lab Rat
7 posts

プロパティでの設定方法はありませんが、
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)で確認しました。

August 17, 2012

Shiho Shiho
Lab Rat
5 posts

shihoです。

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

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

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

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

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

August 17, 2012

takumiasaki takumiasaki
Lab Rat
7 posts

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

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

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

August 17, 2012

Shiho Shiho
Lab Rat
5 posts

shihoです。

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

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

 
  ‹‹ Wikiページ:Building_Qt_5_from_Git_Japanese作成のお知らせ      複数のオブジェクトから1つのSlotへの接続方法 ››

You must log in to post a reply. Not a member yet? Register here!