kullanırken Qt için Aslında ben yeniyim veri alabilirim nasıl QTableView: Belirli bir hücre üzerinde kullanıcı tıklama fare
adamlar bu sorunu çözmede yardım lütfen QTableview
ile QMouseEvent maç alamıyorum.kullanırken Qt için Aslında ben yeniyim veri alabilirim nasıl QTableView: Belirli bir hücre üzerinde kullanıcı tıklama fare
adamlar bu sorunu çözmede yardım lütfen QTableview
ile QMouseEvent maç alamıyorum.Aşağıda, tablo hücresinin metnini tıklattığınızda nasıl alabileceğinize dair bir örnek verilmiştir. Bazı MyClass
sınıfında tanımlanmış bir QTableView
varsayalım. Sen clicked
bağlanmasını yüklemeniz gerekir sinyali (eğer hedef bağlı olarak çok da doubleClicked
, pressed
ve diğer sinyalleri kullanabilirsiniz) ve aşağıda gösterildiği gibi, bunun için karşılık gelen onTableClicked()
yuvası uygulamak:
connect(tableView, SIGNAL(clicked(const QModelIndex &)), this, SLOT(onTableClicked(const QModelIndex &));
Yuvası uygulanması:
void MyClass::onTableClicked(const QModelIndex &index)
{
if (index.isValid()) {
QString cellText = index.data().toString();
}
}
Yukarıdaki örnek iyi çalışıyor. – ShivaPrasad
@vahancho çözümünü sağladığınız için teşekkür ederiz. Tıklayın (const QModelIndex &) ve cellClicked (int satır, int sütunu) arasındaki fark nedir? Neden tek bir API olamaz? –
@ XavierGeoffrey, fark şu ki bu sinyaller farklı sınıflarda bildirildi: Sırasıyla QAbstractItemView :: clicked() 've' QTableWidget :: cellClicked() '. İlk sinyal, ağaç görünümü, tablo görüntüleme, liste görüntüleme gibi tüm öğe görünümü sınıflarında, ikincisi ise yalnızca tablo widget'ları için kullanılabilir. Ayrıca argümanlar farklıdır: Bazen, bir ebeveynin de bulunduğu, özellikle ağaç resimleri için, satır ve sütuntan bir model endeksini geçmek çok daha uygundur. – vahancho
Bize neler denediniz ve sorunlarınız nelerdir? – RobbieE
[Tıklanan] (http://qt-project.org/doc/qt-5.0/qtwidgets/qabstractitemview.html#clicked) sinyalini kullanarak denediniz mi? – thuga