2011-12-20 3 views
8

私は、単語と数字の2つの項目を持つリストを持っています。このリストは、テーブルウィジェットを使って表示されます。PyQt:個々のヘッダーごとに異なるヘッダーサイズを設定するにはどうすればよいですか?

私の目的は、2つの列と必要な行を持つ表を生成することですが、単語を持つ列のヘッダーは数値列より大きくする必要があります。

リサイズカラムをコンテンツに使用できますが、リサイズ後にテーブルの周りに空白の空白がないテーブルが必要です。

私はQtDesigner.Thanksを使用しているGUIコードを作成します。

答えて

14

QHeaderViewクラスには、おそらくあなたが望むことができるいくつかのメソッドがあります。最も簡単なものは次のとおりです。

table.horizontalHeader().setStretchLastSection(True) 

彼らは(そしてユーザーによるサイズ変更可能)ので、これは他の列の幅を残し、最後の列が自動的に表内の利用可能なスペースに合わせてサイズ変更されていることを確認します。

または、列のResizeModeを設定する方法があります。

Qt5について

:Qt4をについて

table.setColumnWidth(1, 80) 
table.horizontalHeader().setSectionResizeMode(0, QHeaderView.Stretch) 

:これは、第二列の幅を固定し、第1列は、自動的に残りの空間を充填するようにサイズ変更されていることを確認します

table.setColumnWidth(1, 80) 
table.horizontalHeader().setResizeMode(0, QHeaderView.Stretch) 

(しかし防止ユーザによるその他のサイズ変更)。 Qt5

+0

QtのDesginerを使用していることを達成する方法はありますか?オプションはありますか? – GiannisIordanou

+0

デザイナーには 'ResizeMode'のオプションはありませんが、' setStretchLastSection'(プロパティエディタの 'Header/horizo​​ntalHeaderStrechLastSection')があります。 – ekhumoro

4

このための最善の解決策は、あなたがsetResizeModeの代わりにsetSectionResizeModeを使用する必要があります。

tabv = QTableView() 
tabv.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) 

または

tabv.horizontalHeader().setSectionResizeMode(1) 
関連する問題