Seite 1 von 1

QT4 QTableWidget 3 Fragen:

Verfasst: 3. Juni 2006 18:32
von nando
Hallo,
ich versuche gerade folgende 3 Sachen zu implementierten:

1. QTableWidget ohne vertikale Headers
2. beim click in eine Zelle soll die ganze Zeile selektiert werden
3. ein bestimmte Zeile komplett selektieren.

Weiss einer wie das geht ?

Zu 1:
Habe schon probiert setVerticalTableHeaders mit einer leeren Liste... geht aber nicht.

Zu 2 und 3: Keine Ahnung.....

Gruss,
Nando

Re: QT4 QTableWidget 3 Fragen:

Verfasst: 3. Juni 2006 18:43
von patrik08
nando hat geschrieben:Hallo,
1. QTableWidget ohne vertikale Headers
2. beim click in eine Zelle soll die ganze Zeile selektiert werden
3. ein bestimmte Zeile komplett selektieren.
1- wass sind vertikale Headers?
3 click und doppelclick zuweisen

die 1/2 class aus meinem projekt der die excel tabelle aufuelt...

http://sourceforge.net/projects/qtexcel-xslt/ ...

2- signal umleiten von feld zu row .... oder doppelclick zuweisen

Code: Alles auswählen

void Include_Table::RefillTable( QString tablesql )
{
        noloop = 10;
        structuresql = GetStructureTable(tablesql);
        bool have_index = structuresql.contains("integer primary key", Qt::CaseInsensitive);
        tablename = tablesql; /*  save on class !*/
        QSqlQuery query;
        /* check if as INTEGER PRIMARY KEY */
    
        sqlmodel = new QSqlTableModel();
        sqlmodel->setTable( tablesql );
        sqlmodel->setEditStrategy(QSqlTableModel::OnRowChange);
        sqlmodel->select();
        tabella_core->setModel(sqlmodel);
        tabella_core->setItemDelegate(new QSqlRelationalDelegate(tabella_core));
        horizontalheader = new QHeaderView(Qt::Horizontal,this);
        horizontalheader = tabella_core->horizontalHeader();
        connect (horizontalheader,SIGNAL(sectionClicked(int)),this,SLOT(sortColumn(int)));
        if (have_index) {
        vertikalheader = new QHeaderView(Qt::Vertical,this);
        vertikalheader = tabella_core->verticalHeader();
        connect (vertikalheader,SIGNAL( sectionDoubleClicked(int)),this,SLOT(VertikalRow(int)));
        }
        /*  discovery total row/cools  register on class ..... start */
        summ_rows = sqlmodel->rowCount();  /*  save on class !*/
        summ_cools = sqlmodel->columnCount(); /*  save on class !*/
        /*  discovery total row/cools ..... end  */
        if (have_index) {
        insert_row->setEnabled(true);
        create_index_button->setEnabled(false);
        /* debugline->setText( QString( "%1 index ok" ).arg( int2char( summ_cools )  ) ); */
        row_total->display( QString( "%1" ).arg( int2char( summ_rows ) ) );   
        } else {
        insert_row->setEnabled(false);
        create_index_button->setEnabled(true);
        /* debugline->setText( QString( "%1 noindex" ).arg( int2char( summ_cools ) ) ); */
        row_total->display( QString( "%1" ).arg( int2char( summ_rows ) ) );  
        }            
}


Verfasst: 3. Juni 2006 18:54
von nando
vertical header sind die headers, die links standard maessig aufsteigende zahlen sind...

HH = Horizontale Header
VH = Vertikale Header

HH1 HH2 HH3 HHn
VH1 COL1 COL2 COL3 ... COLn
VH2
VH3
VH4
VHn

Bei den horizontalen headers funktioniert das..... aber die vertikalen brauche ich nciht...
wie bekomm ich die weg ??

Viele Gruesse,
Nando

Verfasst: 3. Juni 2006 20:19
von upsala
Es gibt nur einen vertikalen Header...

Code: Alles auswählen

verticalHeader()->hide();
Und dann könntest du dir das SelectionModel anschauen, da gibt's das was du suchst...

Verfasst: 3. Juni 2006 20:25
von nando
Hi,
ja das funktioniert aber nur bei QT3 ... oder ?
in QT4 habe ich die methode nicht gefunden....

Gruss,
Nando

Verfasst: 3. Juni 2006 20:33
von nando
Habs gefunden....
Du hattest recht...

das ding is ne methode von QTableView... und QTableWidget leitet ja davon ab.....
man muss dann nur QHeaderView includen und dann gehts...


Danke noch mal... Jetzt schau ich mir mal das Selection Model an..

Gruss,
Nando