2

我一直在尝试将一个包含四个项目的简单组合框添加到一个愚蠢的表格小部件单元格中,但我仍然无法将它放置在正确的行和列中。我能得到的最好的方法是让它显示只有当我告诉组合框它的父是表格小部件时,问题是它位于表格小部件的 x 0 y 0 位置。我使用 setCellWidget 方法,无论我在那里指定什么行和列,它仍然不会填充正确的单元格。那我该怎么办?

我在PyQt中找到了这个示例,但是每当我尝试在 Ruby 上实现它的 ruby​​ 风格版本时,它就不起作用。

4

1 回答 1

0

此代码执行您要查找的操作:生成一个 xm 表,并在给定单元格处插入一个组合框,此处为第 4 行/第 2 列。

require 'Qt4'

qt_app = Qt::Application.new(ARGV)
win    = Qt::Dialog.new
win.show

table_widget   = Qt::TableWidget.new(win)
layout         = Qt::GridLayout.new(win)    # not required
layout.addWidget(table_widget)              # not required

rows    = table_widget.rowCount    = 7
columns = table_widget.columnCount = 4
(0..rows-1).each do |row|
  (0..columns-1).each do |column|
    text = "cell #{row}/#{column}"
    table_widget.setItem(row,column, Qt::TableWidgetItem.new(text))
  end
end

combo_box = Qt::ComboBox.new(table_widget)
combo_box.insertItems(0, ["one", "two", "three", "four", "five"])

table_widget.setCellWidget(4, 2, combo_box)
table_widget.show

qt_app.exec
于 2016-01-09T17:19:17.427 回答