1

我有一个 ListView,当我单击一行时,我需要显示有关该行的更多信息。我的问题是信号 clicked() 不适用于 ListView。当我初始化我的应用程序时,我在控制台中得到以下输出

Object::connect: 没有这样的信号 QListView::clicked(index)

对象::连接:(发件人名称:'appointments_list')

当我连续单击时,什么也没发生。

class GUICustomerAppointmentDetail < Qt::Widget

    def initialize (parent = nil, customer = nil)
        super(parent)
        ...     
        @ui.appointments_list.connect(SIGNAL('clicked(index)'), self, SLOT('load_data()')) 
    end

end

约会列表是一个 Qt::ListView

我已经换了

@ui.appointments_list.connect(SIGNAL('clicked(index)'), self, SLOT('load_data()'))

经过

连接(appointments_list.connect, SIGNAL('clicked(index)'), self, SLOT('load_data()'))

我得到

Object::connect: 没有这样的信号 QListView::clicked(index)

对象::连接:(发件人名称:'appointments_list')

Object::connect: (接收方名称:'customerAppointmentDetail')

@ui.appointments_list.connect(SIGNAL('clicked(index)')){ load_data() }

我得到

Object::connect: 没有这样的信号 QListView::clicked(index)

对象::连接:(发件人名称:'appointments_list')

请问,谁能帮帮我?

4

2 回答 2

2

什么都没有发生,仍然无法正常工作,但我找到了一个很棒的宝石并且效果很好!

这个宝石允许我写:

appointments_list.clicked.connect { load_data() }
于 2012-06-11T17:45:18.130 回答
1

这个指数是多少?你用 Qmodelindex 对它进行 typedef 吗?

尝试

@ui.appointments_list.connect(SIGNAL('clicked(QModelIndex&)')){ load_data() }

代替

@ui.appointments_list.connect(SIGNAL('clicked(index)')){ load_data() }
于 2012-05-19T03:43:56.767 回答