[Qt 4.7] QTableView reagiert nicht auf Maus?



  • Hi!

    Erste Experimente mit Qt... ich erstelle mit dem Designer ein QTableView. Und der Code (wild):

    int main(int argc, char *argv[])
    {
    	QApplication a(argc, argv);
    	QFormBuilder builder;
    	QFile file("test.ui");
    
    	file.open(QFile::ReadOnly);
    	QMainWindow* mainWindow = dynamic_cast<QMainWindow*>(builder.load(&file));
    	file.close();
    
    	QTableView* table = mainWindow->findChildren<QTableView*>("tableView").first();
    
    	MyModel myModel(0);
    	table->setModel(&myModel);
    
    	mainWindow->show();
    
    	return a.exec();
    }
    

    So, Fenster öffnet sich, aber das QTableView lässt sich nur per Tastatur bedienen. Auf die Maus reagiert es nicht. Warum ist das so? Andere Controls im Fenster reagieren aber auf die Maus.

    Für MyModel habe ich übrigens den Beispielcode von da genommen:

    http://doc.qt.nokia.com/4.7/modelview.html

    Also nix Besonderes.

    😕



  • Aha, das passiert, weil sich QTableView in einer QGroupBox befindet! Aber warum ist das so, und wie ändert man das?



  • versuch mal

    #include <QStringList> 
    #include <QStringListModel> 
    
    QStringListModel * m = new QStringListModel(QString("1,2,3,4,5,6,7").split(","), this);
    table->setModel(m);
    

    Dann hast du auch Daten im Model ...



  • Daten hat das View. Man kann aber nix anklicken, auch nicht mit deinem Code. Nur wenn das QTableView außerhalb der QGroupBox ist, geht es ...



  • Problem gelöst. Das view war nicht child der group box 🙄


Log in to reply