Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520

    QT QTableWidget tasto destro

    Ciao.
    Una volta creata una tabella come faccio a catturare l'evento del tasto destro su una cella di questa?

    tipo una cosa così

    codice:
    voidMainWindow::on_tableWidget_cellClicked(introw,intcolumn)
    

    ma con il tasto destro



    grazie

  2. #2
    Devi impostare la proprietà contextMenuPolicy a Qt::CustomContextMenu e gestire il segnale customContextMenuRequested.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    Quote Originariamente inviata da MItaly Visualizza il messaggio
    Devi impostare la proprietà contextMenuPolicy a Qt::CustomContextMenu e gestire il segnale customContextMenuRequested.
    Ciao e grazie mille, funziona tutto. Riporto sotto il codice

    codice:
    MainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(newUi::MainWindow)
    {      
          ui->setupUi(this);
          ui->tableWidget->setContextMenuPolicy(Qt::CustomContextMenu);
          connect(ui->tableWidget,SIGNAL(customContextMenuRequested(constQPoint&)),SLOT(ShowContextMenu(constQPoint&)));
    }
    
    
    
    voidMainWindow::ShowContextMenu(constQPoint&pos)
    {
          introw=ui->tableWidget->currentRow();intcolumn=ui->tableWidget->currentColumn();
          ui->lineEdit->setText(ui->tableWidget->item(row,column)->text());
    }
    


    Una domanda come faccio a sapere se ho cliccato in una cella o su un bordo o su uno spazio della tabella vuoto?

  4. #4
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    mi rispondo da solo e chiedo conferma ho fatto così
    codice:
    voidMainWindow::ShowContextMenu(constQPoint&pos)
    {
             if(ui->tableWidget->itemAt(pos)!=NULL)
             {
                     ui->lineEdit->setText(ui->tableWidget->itemAt(pos)->text());
             }
    }
    

  5. #5
    È esattamente così che si fa.
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    Quote Originariamente inviata da MItaly Visualizza il messaggio
    È esattamente così che si fa.
    Mi ero dimenticato di ringraziare

    grazie 1000++

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.